Show HN: Sverklo – repo memory for coding agents

nike-171 pts0 comments

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...

sverklo code project claude install repo

Related Articles