fossel 1.0.6 → 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 +125 -35
- package/dist/cli.js +1020 -0
- package/dist/index.js +469 -60
- package/package.json +26 -3
package/README.md
CHANGED
|
@@ -1,60 +1,135 @@
|
|
|
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
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick start (~2 minutes)
|
|
8
|
+
|
|
9
|
+
1. **Onboard** (prints copy-paste MCP config + creates a sample memory):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx -y fossel init
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
2. **Add the JSON** from the output to **Cursor** (`~/.cursor/mcp.json`) or **Claude Desktop** MCP settings, then restart the app.
|
|
16
|
+
|
|
17
|
+
3. **Run the server** (what the IDE launches, or for testing):
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx -y fossel
|
|
21
|
+
```
|
|
22
|
+
|
|
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
|
+
---
|
|
4
39
|
|
|
5
40
|
## Features
|
|
6
41
|
|
|
7
|
-
- Persistent
|
|
8
|
-
- Full-text search
|
|
9
|
-
- Repo-aware context
|
|
10
|
-
-
|
|
11
|
-
-
|
|
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
|
|
12
50
|
|
|
13
|
-
## Memory
|
|
51
|
+
## Memory types
|
|
14
52
|
|
|
15
|
-
- `convention`
|
|
16
|
-
- `bug_fix`
|
|
17
|
-
- `reviewer_pattern`
|
|
18
|
-
- `decision`
|
|
19
|
-
- `issue`
|
|
20
|
-
- `general`
|
|
53
|
+
- `convention`, `bug_fix`, `reviewer_pattern`, `decision`, `issue`, `general`
|
|
21
54
|
|
|
22
|
-
##
|
|
55
|
+
## Commands
|
|
23
56
|
|
|
24
57
|
```bash
|
|
25
|
-
|
|
58
|
+
npx -y fossel # MCP server over stdio
|
|
59
|
+
npx -y fossel init # onboarding + config snippets + sample memory
|
|
26
60
|
```
|
|
27
61
|
|
|
28
|
-
##
|
|
62
|
+
## `fossel init`
|
|
29
63
|
|
|
30
|
-
|
|
31
|
-
|
|
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.
|
|
65
|
+
|
|
66
|
+
## MCP tools
|
|
67
|
+
|
|
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 |
|
|
77
|
+
|
|
78
|
+
## Tool examples
|
|
79
|
+
|
|
80
|
+
### `update_memory`
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"id": 12,
|
|
85
|
+
"content": "Use `pnpm` workspaces for all package scripts.",
|
|
86
|
+
"memory_type": "convention"
|
|
87
|
+
}
|
|
32
88
|
```
|
|
33
89
|
|
|
34
|
-
|
|
90
|
+
### `pin_memory`
|
|
35
91
|
|
|
36
|
-
|
|
92
|
+
```json
|
|
93
|
+
{ "id": 12 }
|
|
94
|
+
```
|
|
37
95
|
|
|
38
|
-
|
|
39
|
-
|
|
96
|
+
### `summarize_repo_context`
|
|
97
|
+
|
|
98
|
+
```json
|
|
99
|
+
{ "repo": "RocketChat" }
|
|
40
100
|
```
|
|
41
101
|
|
|
42
|
-
|
|
102
|
+
Example output shape:
|
|
43
103
|
|
|
44
|
-
```
|
|
45
|
-
|
|
104
|
+
```md
|
|
105
|
+
Fossel Context Summary: RocketChat
|
|
106
|
+
|
|
107
|
+
📌 Pinned
|
|
108
|
+
- (12) Always run test matrix before merge.
|
|
109
|
+
|
|
110
|
+
Conventions
|
|
111
|
+
- (3) Use feature flags for UI experiments.
|
|
112
|
+
|
|
113
|
+
Bug Fixes
|
|
114
|
+
- (5) Fixed webhook retries by making queue idempotent.
|
|
46
115
|
```
|
|
47
116
|
|
|
48
|
-
## MCP
|
|
117
|
+
## Cursor MCP config
|
|
49
118
|
|
|
50
|
-
|
|
51
|
-
- `get_repo_context`: Fetch recent memories for a repository, grouped by type.
|
|
52
|
-
- `search_memory`: Full-text search memories across all repos or a single repo.
|
|
53
|
-
- `delete_memory`: Delete a memory by id.
|
|
119
|
+
`~/.cursor/mcp.json`:
|
|
54
120
|
|
|
55
|
-
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"mcpServers": {
|
|
124
|
+
"fossel": {
|
|
125
|
+
"command": "npx",
|
|
126
|
+
"args": ["-y", "fossel"]
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
56
131
|
|
|
57
|
-
|
|
132
|
+
## Claude Desktop MCP config
|
|
58
133
|
|
|
59
134
|
```json
|
|
60
135
|
{
|
|
@@ -67,8 +142,23 @@ Add this to your Cursor MCP configuration:
|
|
|
67
142
|
}
|
|
68
143
|
```
|
|
69
144
|
|
|
145
|
+
## Development (from source)
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
npm install
|
|
149
|
+
npm run dev # MCP server over stdio
|
|
150
|
+
npm run build
|
|
151
|
+
npm run start # node dist/index.js
|
|
152
|
+
npm run ci # typecheck + build + smoke
|
|
153
|
+
```
|
|
154
|
+
|
|
70
155
|
## Notes
|
|
71
156
|
|
|
72
|
-
-
|
|
73
|
-
- FTS5
|
|
74
|
-
-
|
|
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`.
|
|
161
|
+
|
|
162
|
+
## Community
|
|
163
|
+
|
|
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.
|