Fossel is a local-first MCP server. Your editor's AI just knows the conventions, bug fixes, reviewer patterns, and architectural decisions for every repo you contribute to. No cloud, no accounts, your data never leaves your laptop.
localStorage; 401 redirects to /loginhttp://localhost:5000/apinpm run ci before mergeEvery new chat starts from zero. You re-explain the conventions, the reviewer preferences, the bug you already solved last week. Now multiply that by every repo you contribute to.
remember this. Fossel infers type, tags, and repo.Fossel sits in ~/.fossel/memory.db. Migrations run on startup. Every tool is non-breaking; the simple ones are enough for 80% of cases.
One npx command sets up the local database, prints the MCP config snippet for Cursor and Claude Desktop, and runs migrations.
The remember tool auto-infers memory_type, generates 2–5 tags, resolves the repo, and merges near-duplicates instead of creating a second row.
get_context returns pinned first, then recent, then FTS matches when a query is provided. Default limit is tuned for direct LLM injection.
dedupe_repo merges near-duplicates with a changelog audit trail. fossel doctor --fix cleans repo-key sprawl, stale alias mentions, and exact duplicates in one shot.
Fossel auto-classifies into one of six types so retrieval can group by intent. Override the inferred type when you want — the tools still accept explicit values.
Uses Blaze, not React. Components live in client/. Avoid TypeScript generics in PR descriptions.
Reviewer A wants PRs under 200 lines. Reviewer B asks for edge-case tests. Don't merge without both.
Subscription calls in the toolbar fired 3× on re-render without debouncing. Fixed with a 200ms delay.
Decided NOT to use Prisma here — too much overhead for the read-heavy query pattern. Sticking with raw SQL.
Issue #892 — tried fixing in RoomHeader.js but conflicts with the i18n module. Try Toolbar.js next.
Notes that don't fit cleanly anywhere else still get FTS-searchable, repo-scoped, and pinnable.
Recent releases borrow the quality of heavyweight memory engines — by leaning on the LLM your editor already has, so Fossel stays local and dependency-free.
Ask "how does auth work?" and it surfaces the note about JWT in localStorage — even with no shared keywords. Semantic + keyword results, fused. Opt in with FOSSEL_EMBEDDINGS=1.
Say "we dropped Redis, now on Postgres" and Fossel flags the contradicted memory so your assistant can revise or remove it. Memory stops silently accumulating conflicts.
"Fixed it last week" is stored as last week = 2026-06-19, so a memory still makes sense six months later instead of rotting.
Point FOSSEL_EMBEDDER_CMD at any command that returns a vector to plug in a stronger model. Falls back gracefully; the default stays zero-dependency.
Node.js 18+ is the only requirement. Data lives in ~/.fossel/memory.db (override with FOSSEL_DB_PATH). Set FOSSEL_WORKSPACE in your MCP config to pin Fossel to the right project root.
No global install needed. Detects your canonical repo key, prints copy-paste MCP config, and inserts a starter memory if the DB is empty.
Drop the JSON into Cursor's ~/.cursor/mcp.json or Claude Desktop settings. Restart the client once.
Ask "what does Fossel remember about auth here?" or say "remember: API base is /api/v2." No type or tags required.
Run npx fossel doctor any time to spot duplicate clusters, repo-key sprawl, or stale alias mentions. Add --fix to auto-clean.
$ npx -y fossel init # Canonical repo key: 7vignesh/fossel # source: git-remote # git remote: https://github.com/7vignesh/fossel.git # # MCP config printed below — paste into your client. # DB path: ~/.fossel/memory.db
{
"mcpServers": {
"fossel": {
"command": "npx",
"args": ["-y", "fossel"],
"env": {
"FOSSEL_WORKSPACE": "${workspaceFolder}"
}
}
}
}
{
"mcpServers": {
"fossel": {
"command": "npx",
"args": ["-y", "fossel"],
"env": {
"FOSSEL_WORKSPACE": "/path/to/your/project"
}
}
}
}
# Just paste this into Cursor or Claude.
remember: API base URL is /api/v2
and 401 redirects to /login
remember and get_context are all you need. doctor keeps things clean. Advanced tools are documented in the README.
Save a memory using only a natural-language note. Fossel infers the memory type, generates 2–5 tags, resolves the repo, and merges near-duplicates instead of storing them twice.
Works in Cursor, Claude Desktop, and any stdio MCP client. Full tool reference →
Free, open-source, fully local. Your memories never leave your machine.