Sverklo - Repo Memory for Coding Agents
Skip to content
v0.28.3
/* local-first repo memory ◦ symbol graph ◦ diff-aware review ◦ MIT */
Give your coding agent repo memory.
Sverklo is a local-first MCP server that gives Claude Code, Cursor, Windsurf, and Codex-style agents your repo's symbols, callers, diffs, blast radius, and git-pinned decisions before they edit.
Use grep when you know the exact string. Use Sverklo when the agent needs relationships: who calls this, what depends on it, what changed, and which project decisions still apply. Your code stays on your machine.
$ npm install -g sverklocopy
watch 90s demo →<br>share your proof →<br>star on GitHub →
Run the copied commands, then use the markdown receipt and paste it into the proof thread. Takes about 2 minutes; no API keys, no code upload, first run downloads a local ONNX model.
3knpm downloads / week
180public bench tasks
26mssearch p95
0code upload
MITlicensed
~/your-project<br>claude code
Claude Code<br>Cursor<br>Antigravity<br>Other
# install sverklo and set it up in your project<br>$ npm install -g sverklo<br>$ cd your-project && sverklo init<br>$ sverklo prove
✓ .mcp.json ← project-scoped MCP server<br>✓ .claude/settings.local.json ← auto-allow sverklo tools<br>✓ AGENTS.md / CLAUDE.md ← prefer-sverklo instructions (auto-detected)<br>✓ repo memory proof ← central files + real caller graph<br>✓ markdown receipt ← paste into GitHub, Discord, Reddit
# paste the proof prompt into Claude/Cursor/Codex<br>> Use sverklo impact on validateToken and tell me what would break if I changed its signature.
› impact symbol="validateToken"<br>─ src/routes/auth.ts:18 requireAuth() direct caller<br>─ src/middleware/auth.ts:42 authMiddleware() direct caller<br>─ src/tests/auth.test.ts:31 login flow test coverage<br>✓ caller graph in 23ms — signature change is not local
# install sverklo<br>$ npm install -g sverklo
# add to .cursor/mcp.json (or Cursor Settings → MCP)<br>$ cat .cursor/mcp.json<br>"mcpServers": {<br>"sverklo": {<br>"command": "sverklo",<br>"args": ["mcp", "."]
# Cursor agent picks up sverklo on next session<br>> where do we handle stripe webhooks?
› context task="stripe webhook handling"<br>─ src/api/webhooks/stripe.ts:14 handleStripeEvent() score: 0.92<br>─ src/billing/events.ts:31 processCharge() score: 0.78<br>✓ bundle: 4 files, 2 memories — 1,840 tokens
# install sverklo and run init — Antigravity is auto-detected<br>$ npm install -g sverklo<br>$ cd your-project && sverklo init
✓ ~/.gemini/antigravity/mcp_config.json ← global MCP config<br>✓ added sverklo (project: ~/your-project)<br>Restart Antigravity to pick up the new MCP server.
# Gemini in Antigravity uses sverklo via MCP<br>> review my branch before I merge to main
› review_diff ref="main..HEAD"<br>─ ◆ risk 52 src/api/billing.ts<br>2 removed symbols still referenced; 8 importers<br>› test_map ref="main..HEAD"<br>─ 5 covered · 1 uncovered (risk 78)<br>verdict: BLOCKED — fix dangling refs in 3 files
# one server, all your repos — no per-project config needed<br>$ npm install -g sverklo<br>$ cd ~/api && sverklo init # auto-registers<br>$ cd ~/frontend && sverklo init # auto-registers<br>$ sverklo setup --global # one-time global MCP config
# now every AI editor has access to all your repos<br>$ sverklo list<br>api ~/api 37 tools fresh<br>frontend ~/frontend 37 tools fresh
/* 90-second walkthrough — terminal then live Claude Code MCP integration */
1:36 · sverklo init → audit → compact default profile (37 tools available) → Claude Code
/* what happened when we published the bench */
A public benchmark, two competitors, fixes shipped on both sides in 36 hours.
Apr 28<br>Published 180-task bench across 6 codebases with two competing local-first MCP code-intel servers (jcodemunch-mcp, GitNexus) and the slices where sverklo lost — including FastAPI P5 dead-code (0.00 vs grep's 1.00).
May 2 → 3<br>jcodemunch maintainer @jgravelle shipped v1.80.7 / 1.80.8 / 1.80.9 against specific bench findings. P5 recall 0.00 → 1.00 ; lodash P1 0/10 → 9/10 .
May 4<br>Adding lodash to the bench exposed the symmetric blind spot in sverklo's parser. sverklo v0.20.2 ships the fix. Sverklo P1 0.30 → 0.73 ; overall F1 0.45 → 0.56 (now leader).
"the bigger opportunity here is the potential genesis of an 'MCP Server Arena' on par with what the leading AI/LLM/Chatbot arenas provide…"
— Jake Gravelle, jcodemunch-mcp maintainer, on r/mcp
26ms
search p95
react · 4 368 files indexed
ms
impact analysis
indexed graph join, no scan
+29%
F1 vs Claude alone
on real merge requests
2-4×
fewer tokens
per agent review pass
methodology + reproducer →<br>npm run bench:swecross-repo recall, v0.17<br>preprint · Zenodo · CC BY 4.0 →
/* honest about when this helps */
Sverklo doesn't replace grep. It complements it.
SVERKLO WINS
✓ Exploratory questions ("how does the auth flow work?")
✓ Refactor blast radius (impact)
✓ Large interconnected codebases
✓ Memory across sessions, tied to git SHAs
✓ Project audits — god nodes, dead code
VS
GREP WINS
— Focused diff review
— Exact string matching
— Reading file contents
— Build...