fossel 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +75 -80
- package/package.json +25 -2
package/README.md
CHANGED
|
@@ -1,73 +1,84 @@
|
|
|
1
1
|
# Fossel
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Local-first MCP memory for every repo you work on.** Store conventions, bug fixes, reviewer patterns, and decisions in **SQLite on your machine** (with FTS5 search). Works with **Cursor**, **Claude Desktop**, and any **stdio MCP** client. **No accounts, no cloud.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- Full-text search with SQLite FTS5
|
|
9
|
-
- Repo-aware context retrieval grouped by memory type
|
|
10
|
-
- Pinned memories that stay at the top of repo context
|
|
11
|
-
- Structured markdown summaries for PR and planning context
|
|
12
|
-
- Simple delete workflow by memory id
|
|
13
|
-
- Partial memory updates by numeric id
|
|
14
|
-
- CLI onboarding with `fossel init`
|
|
15
|
-
- Local `stdio` MCP server for tools such as Cursor and Claude Desktop
|
|
7
|
+
## Quick start (~2 minutes)
|
|
16
8
|
|
|
17
|
-
|
|
9
|
+
1. **Onboard** (prints copy-paste MCP config + creates a sample memory):
|
|
18
10
|
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
- `decision`
|
|
23
|
-
- `issue`
|
|
24
|
-
- `general`
|
|
11
|
+
```bash
|
|
12
|
+
npx -y fossel init
|
|
13
|
+
```
|
|
25
14
|
|
|
26
|
-
|
|
15
|
+
2. **Add the JSON** from the output to **Cursor** (`~/.cursor/mcp.json`) or **Claude Desktop** MCP settings, then restart the app.
|
|
27
16
|
|
|
28
|
-
|
|
29
|
-
npm install
|
|
30
|
-
```
|
|
17
|
+
3. **Run the server** (what the IDE launches, or for testing):
|
|
31
18
|
|
|
32
|
-
|
|
19
|
+
```bash
|
|
20
|
+
npx -y fossel
|
|
21
|
+
```
|
|
33
22
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
23
|
+
4. In chat, use tools like `store_context` and `get_repo_context` with your **repo** name (e.g. `org/repo` or your folder name).
|
|
24
|
+
|
|
25
|
+
**Database path:** `~/.fossel/memory.db` (override with `FOSSEL_DB_PATH`).
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Why Fossel?
|
|
30
|
+
|
|
31
|
+
| You get | Details |
|
|
32
|
+
|--------|---------|
|
|
33
|
+
| **Local data** | SQLite + migrations; nothing leaves your disk unless you share it. |
|
|
34
|
+
| **Repo-scoped memory** | Same patterns across Cursor, Claude, or any MCP client over stdio. |
|
|
35
|
+
| **Find anything** | FTS5 search across notes; pin what matters; summarize for PRs. |
|
|
36
|
+
| **Evolving schema** | Startup migrations keep upgrades safe for existing databases. |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
- Persistent memory in SQLite (`~/.fossel/memory.db`)
|
|
43
|
+
- Full-text search (FTS5)
|
|
44
|
+
- Repo-aware context, grouped by memory type
|
|
45
|
+
- Pinned memories at the top of `get_repo_context`
|
|
46
|
+
- `summarize_repo_context` for markdown briefs (PRs, planning)
|
|
47
|
+
- `update_memory`, `pin_memory`, `unpin_memory`
|
|
48
|
+
- CLI: `fossel init` for onboarding
|
|
49
|
+
- `stdio` MCP server for Cursor, Claude Desktop, and compatible tools
|
|
50
|
+
|
|
51
|
+
## Memory types
|
|
52
|
+
|
|
53
|
+
- `convention`, `bug_fix`, `reviewer_pattern`, `decision`, `issue`, `general`
|
|
37
54
|
|
|
38
55
|
## Commands
|
|
39
56
|
|
|
40
57
|
```bash
|
|
41
|
-
npx -y fossel #
|
|
42
|
-
npx -y fossel init # onboarding
|
|
58
|
+
npx -y fossel # MCP server over stdio
|
|
59
|
+
npx -y fossel init # onboarding + config snippets + sample memory
|
|
43
60
|
```
|
|
44
61
|
|
|
45
62
|
## `fossel init`
|
|
46
63
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
Starter memory inserted:
|
|
50
|
-
|
|
51
|
-
- Type: `convention`
|
|
52
|
-
- Content: `Fossel is active for this repo. Use store_context to save context.`
|
|
64
|
+
Detects the current git repo (or folder name), prints **Cursor** and **Claude Desktop** MCP snippets, inserts a starter **convention** memory (`Fossel is active for this repo…`), and shows DB path + memory count.
|
|
53
65
|
|
|
54
|
-
## MCP
|
|
66
|
+
## MCP tools
|
|
55
67
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
68
|
+
| Tool | Purpose |
|
|
69
|
+
|------|---------|
|
|
70
|
+
| `store_context` | Save memory for a repo |
|
|
71
|
+
| `get_repo_context` | Recent memories by type (pinned first) |
|
|
72
|
+
| `search_memory` | FTS search, optional repo filter |
|
|
73
|
+
| `delete_memory` | Delete by legacy string id |
|
|
74
|
+
| `update_memory` | Partial update by numeric id |
|
|
75
|
+
| `pin_memory` / `unpin_memory` | Pin important items |
|
|
76
|
+
| `summarize_repo_context` | Markdown summary for a repo |
|
|
64
77
|
|
|
65
|
-
## Tool
|
|
78
|
+
## Tool examples
|
|
66
79
|
|
|
67
80
|
### `update_memory`
|
|
68
81
|
|
|
69
|
-
Input:
|
|
70
|
-
|
|
71
82
|
```json
|
|
72
83
|
{
|
|
73
84
|
"id": 12,
|
|
@@ -78,25 +89,17 @@ Input:
|
|
|
78
89
|
|
|
79
90
|
### `pin_memory`
|
|
80
91
|
|
|
81
|
-
Input:
|
|
82
|
-
|
|
83
92
|
```json
|
|
84
|
-
{
|
|
85
|
-
"id": 12
|
|
86
|
-
}
|
|
93
|
+
{ "id": 12 }
|
|
87
94
|
```
|
|
88
95
|
|
|
89
96
|
### `summarize_repo_context`
|
|
90
97
|
|
|
91
|
-
Input:
|
|
92
|
-
|
|
93
98
|
```json
|
|
94
|
-
{
|
|
95
|
-
"repo": "RocketChat"
|
|
96
|
-
}
|
|
99
|
+
{ "repo": "RocketChat" }
|
|
97
100
|
```
|
|
98
101
|
|
|
99
|
-
|
|
102
|
+
Example output shape:
|
|
100
103
|
|
|
101
104
|
```md
|
|
102
105
|
Fossel Context Summary: RocketChat
|
|
@@ -111,9 +114,9 @@ Bug Fixes
|
|
|
111
114
|
- (5) Fixed webhook retries by making queue idempotent.
|
|
112
115
|
```
|
|
113
116
|
|
|
114
|
-
## Cursor MCP
|
|
117
|
+
## Cursor MCP config
|
|
115
118
|
|
|
116
|
-
|
|
119
|
+
`~/.cursor/mcp.json`:
|
|
117
120
|
|
|
118
121
|
```json
|
|
119
122
|
{
|
|
@@ -126,9 +129,7 @@ Add this to your Cursor MCP configuration:
|
|
|
126
129
|
}
|
|
127
130
|
```
|
|
128
131
|
|
|
129
|
-
## Claude Desktop MCP
|
|
130
|
-
|
|
131
|
-
Add this to your Claude Desktop MCP config:
|
|
132
|
+
## Claude Desktop MCP config
|
|
132
133
|
|
|
133
134
|
```json
|
|
134
135
|
{
|
|
@@ -141,29 +142,23 @@ Add this to your Claude Desktop MCP config:
|
|
|
141
142
|
}
|
|
142
143
|
```
|
|
143
144
|
|
|
144
|
-
## Development
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
npm run dev
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
This starts the local MCP server over stdio.
|
|
151
|
-
|
|
152
|
-
## Build
|
|
145
|
+
## Development (from source)
|
|
153
146
|
|
|
154
147
|
```bash
|
|
148
|
+
npm install
|
|
149
|
+
npm run dev # MCP server over stdio
|
|
155
150
|
npm run build
|
|
151
|
+
npm run start # node dist/index.js
|
|
152
|
+
npm run ci # typecheck + build + smoke
|
|
156
153
|
```
|
|
157
154
|
|
|
158
|
-
##
|
|
155
|
+
## Notes
|
|
159
156
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
157
|
+
- **Local-first:** data stays on your machine.
|
|
158
|
+
- **Search:** FTS5 (no `sqlite-vec` in v1).
|
|
159
|
+
- **`FOSSEL_DB_PATH`:** optional override for DB location (e.g. tests).
|
|
160
|
+
- **Schema:** migrations live in `src/db/migrate.ts`.
|
|
163
161
|
|
|
164
|
-
##
|
|
162
|
+
## Community
|
|
165
163
|
|
|
166
|
-
|
|
167
|
-
- FTS5 is used for V1 search (no `sqlite-vec`).
|
|
168
|
-
- Optional: set `FOSSEL_DB_PATH` to override the default database path for testing.
|
|
169
|
-
- DB schema changes are managed via startup migrations in `src/db/migrate.ts`.
|
|
164
|
+
If Fossel saves you time, **[star the repo](https://github.com/7vignesh/fossel)** and **[open an issue](https://github.com/7vignesh/fossel/issues)** for bugs or ideas—that helps others discover it too.
|
package/package.json
CHANGED
|
@@ -1,7 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fossel",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Local MCP memory
|
|
3
|
+
"version": "1.0.9",
|
|
4
|
+
"description": "Local-first MCP memory for Cursor & Claude: repo context in SQLite, FTS5 search, pins, PR summaries. No cloud.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mcp",
|
|
7
|
+
"model-context-protocol",
|
|
8
|
+
"cursor",
|
|
9
|
+
"claude",
|
|
10
|
+
"claude-desktop",
|
|
11
|
+
"memory",
|
|
12
|
+
"sqlite",
|
|
13
|
+
"fts5",
|
|
14
|
+
"open-source",
|
|
15
|
+
"contributors",
|
|
16
|
+
"local-first",
|
|
17
|
+
"ai",
|
|
18
|
+
"llm"
|
|
19
|
+
],
|
|
20
|
+
"homepage": "https://github.com/7vignesh/fossel#readme",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/7vignesh/fossel/issues"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/7vignesh/fossel.git"
|
|
27
|
+
},
|
|
5
28
|
"type": "module",
|
|
6
29
|
"files": [
|
|
7
30
|
"dist"
|