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.
Files changed (4) hide show
  1. package/README.md +125 -35
  2. package/dist/cli.js +1020 -0
  3. package/dist/index.js +469 -60
  4. package/package.json +26 -3
package/README.md CHANGED
@@ -1,60 +1,135 @@
1
1
  # Fossel
2
2
 
3
- Fossel is a local MCP (Model Context Protocol) memory server for open-source contributors. It stores project-specific context such as reviewer preferences, bug fixes, conventions, decisions, and issue notes in a local SQLite database with FTS5 search.
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 local memory in SQLite (`~/.fossyl/memory.db`)
8
- - Full-text search with SQLite FTS5
9
- - Repo-aware context retrieval grouped by memory type
10
- - Simple delete workflow by memory id
11
- - Local `stdio` MCP server for tools such as Cursor and Claude Desktop
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 Types
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
- ## Install
55
+ ## Commands
23
56
 
24
57
  ```bash
25
- npm install
58
+ npx -y fossel # MCP server over stdio
59
+ npx -y fossel init # onboarding + config snippets + sample memory
26
60
  ```
27
61
 
28
- ## Development
62
+ ## `fossel init`
29
63
 
30
- ```bash
31
- npm run dev
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
- This starts the local MCP server over stdio.
90
+ ### `pin_memory`
35
91
 
36
- ## Build
92
+ ```json
93
+ { "id": 12 }
94
+ ```
37
95
 
38
- ```bash
39
- npm run build
96
+ ### `summarize_repo_context`
97
+
98
+ ```json
99
+ { "repo": "RocketChat" }
40
100
  ```
41
101
 
42
- ## Run Built Server
102
+ Example output shape:
43
103
 
44
- ```bash
45
- npm run start
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 Tools
117
+ ## Cursor MCP config
49
118
 
50
- - `store_context`: Save a new memory for a repository.
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
- ## Cursor MCP Config
121
+ ```json
122
+ {
123
+ "mcpServers": {
124
+ "fossel": {
125
+ "command": "npx",
126
+ "args": ["-y", "fossel"]
127
+ }
128
+ }
129
+ }
130
+ ```
56
131
 
57
- Add this to your Cursor MCP configuration:
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
- - Fossel is local-first: data remains on your machine.
73
- - FTS5 is used for V1 search (no `sqlite-vec`).
74
- - Optional: set `FOSSYL_DB_PATH` to override the default database path for testing.
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.