sverklo 0.10.0 → 0.10.2

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 CHANGED
@@ -1,24 +1,14 @@
1
1
  # Sverklo
2
2
 
3
- _Sverklo_ (Russian: **сверкло**, _SVERK-lo_) archaic past tense of "сверкнуть," to flash or gleam. Code intelligence that illuminates your repo so your AI assistant stops guessing.
3
+ Local-first code intelligence MCP server. Semantic search, symbol graph, blast-radius analysis, diff-aware PR review, and git-pinned memory for Claude Code, Cursor, Windsurf, and any MCP client.
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/sverklo.svg?color=E85A2A)](https://www.npmjs.com/package/sverklo)
6
6
  [![npm downloads](https://img.shields.io/npm/dw/sverklo.svg?color=E85A2A)](https://www.npmjs.com/package/sverklo)
7
- [![GitHub stars](https://img.shields.io/github/stars/sverklo/sverklo?style=flat&color=E85A2A)](https://github.com/sverklo/sverklo)
8
7
  [![License: MIT](https://img.shields.io/badge/license-MIT-E85A2A.svg)](LICENSE)
9
- [![Local-first](https://img.shields.io/badge/local--first-no%20cloud-E85A2A)](#)
10
-
11
- > **MIT Licensed** — the only fully open-source code intelligence MCP. Free for commercial use, no restrictions. [Compare with alternatives →](#why-not-as-of-2026-04)
12
-
13
- [![Star History Chart](https://api.star-history.com/svg?repos=sverklo/sverklo&type=Date)](https://star-history.com/#sverklo/sverklo&Date)
14
8
 
15
9
  ![Sverklo demo — audit and badge](./docs/demo.gif)
16
10
 
17
- ## Stop re-explaining your codebase to your AI.
18
-
19
- Sverklo is a local-first code intelligence MCP server that gives **Claude Code, Cursor, Windsurf, VS Code, JetBrains, and Google Antigravity** the same mental model of your repo that a senior engineer has. Hybrid semantic search, symbol-level blast-radius analysis, diff-aware PR review, and memory pinned to git state — running entirely on your laptop.
20
-
21
- ### The problem
11
+ ## The problem
22
12
 
23
13
  Your AI agent edits `UserService.validate()`. It doesn't know that 47 other functions call it. Breaking changes ship. Tests pass because they mock the dependency.
24
14
 
@@ -39,21 +29,6 @@ cd your-project && sverklo init
39
29
 
40
30
  `sverklo init` auto-detects your installed AI coding agents, writes the right MCP config files, appends sverklo instructions to your `CLAUDE.md`, and runs `sverklo doctor` to verify the setup. MIT licensed. Zero config. No API keys.
41
31
 
42
- ### Works with every MCP editor
43
-
44
- | Editor | MCP | Skills | Hooks | Auto-setup |
45
- |--------|:---:|:------:|:-----:|:----------:|
46
- | Claude Code | ✓ | ✓ | ✓ | `sverklo init` |
47
- | Cursor | ✓ | — | — | `sverklo init` |
48
- | Windsurf | ✓ | — | — | `sverklo init` |
49
- | Zed | ✓ | — | — | `sverklo init` |
50
- | VS Code | ✓ | — | — | manual |
51
- | JetBrains | ✓ | — | — | manual |
52
- | Antigravity | ✓ | — | — | `sverklo init` |
53
- | OpenCode | ✓ | — | — | manual |
54
-
55
- > **First 5 minutes:** see [`FIRST_RUN.md`](FIRST_RUN.md) for three scripted prompts that demonstrate the tools sverklo adds that grep can't replace.
56
-
57
32
  ---
58
33
 
59
34
  ## Grep vs Sverklo — the same question, side by side
@@ -62,44 +37,44 @@ Every one of these is a query a real engineer asked a real AI assistant last wee
62
37
 
63
38
  | The question | With Grep | With Sverklo |
64
39
  |---|---|---|
65
- | "Where is auth handled in this repo?" | `grep -r 'auth' .` 847 matches across tests, comments, unrelated vars, and one 2021 TODO | `sverklo_search "authentication flow"` top 5 files ranked by PageRank: middleware, JWT verifier, session store, login route, logout route |
66
- | "Can I safely rename `BillingAccount.charge`?" | `grep '\.charge('` 312 matches polluted by `recharge`, `discharge`, `Battery.charge` fixtures | `sverklo_impact BillingAccount.charge` 14 real callers, depth-ranked, with file paths and line numbers |
67
- | "Is this helper actually used anywhere?" | `grep -r 'parseFoo' .` 4 matches in 3 files. Are any real, or just string mentions? Read each one. | `sverklo_refs parseFoo` 0 real callers. Zero. Walk the symbol graph, not the text. Delete the function. |
68
- | "What's load-bearing in this codebase?" | `find . -name '*.ts' \| xargs wc -l \| sort` the biggest files. Not the most important ones. | `sverklo_overview` PageRank over the dep graph. The files the rest of the repo depends on, not the ones someone wrote too much code in. |
69
- | "Review this 40-file PR — what should I read first?" | Read them in the order git diff printed them | `sverklo_review_diff` risk-scored per file (touched-symbol importance × coverage × churn), prioritized order, flagged production files with no test changes |
40
+ | "Where is auth handled in this repo?" | `grep -r 'auth' .` -- 847 matches across tests, comments, unrelated vars, and one 2021 TODO | `sverklo_search "authentication flow"` -- top 5 files ranked by PageRank: middleware, JWT verifier, session store, login route, logout route |
41
+ | "Can I safely rename `BillingAccount.charge`?" | `grep '\.charge('` -- 312 matches polluted by `recharge`, `discharge`, `Battery.charge` fixtures | `sverklo_impact BillingAccount.charge` -- 14 real callers, depth-ranked, with file paths and line numbers |
42
+ | "Is this helper actually used anywhere?" | `grep -r 'parseFoo' .` -- 4 matches in 3 files. Are any real, or just string mentions? Read each one. | `sverklo_refs parseFoo` -- 0 real callers. Zero. Walk the symbol graph, not the text. Delete the function. |
43
+ | "What's load-bearing in this codebase?" | `find . -name '*.ts' \| xargs wc -l \| sort` -- the biggest files. Not the most important ones. | `sverklo_overview` -- PageRank over the dep graph. The files the rest of the repo depends on, not the ones someone wrote too much code in. |
44
+ | "Review this 40-file PR — what should I read first?" | Read them in the order git diff printed them | `sverklo_review_diff` -- risk-scored per file (touched-symbol importance x coverage x churn), prioritized order, flagged production files with no test changes |
70
45
 
71
46
  If the answer to your question is "exact string X exists somewhere," grep wins. Use grep. If the answer is "which 5 files actually matter here, ranked by the graph," you need sverklo.
72
47
 
73
48
  ---
74
49
 
75
- ## When to reach for sverklo — and when not to
76
-
77
- We're honest about this. Sverklo isn't a magic 5× speedup and it doesn't replace grep. It's a sharper tool for specific jobs.
78
-
79
- ### The two tools that earn their keep every time
50
+ ## Works with every MCP editor
80
51
 
81
- If you only remember two, remember these. They deliver value that plain text search structurally cannot:
82
-
83
- 1. **`sverklo_refs`** proves dead code with certainty (zero references across the whole symbol graph, not just the files grep happened to scan) and answers "is this actually used anywhere?" in one call.
84
- 2. **`sverklo_audit`** one structural pass that surfaces god classes, hub files, and suspicious concentrations of complexity without you having to guess the right regex.
52
+ | Editor | MCP | Skills | Hooks | Auto-setup |
53
+ |--------|:---:|:------:|:-----:|:----------:|
54
+ | Claude Code | yes | yes | yes | `sverklo init` |
55
+ | Cursor | yes | | | `sverklo init` |
56
+ | Windsurf | yes | — | — | `sverklo init` |
57
+ | Zed | yes | — | — | `sverklo init` |
58
+ | VS Code | yes | — | — | manual |
59
+ | JetBrains | yes | — | — | manual |
60
+ | Antigravity | yes | — | — | `sverklo init` |
61
+ | Any MCP client | yes | — | — | `npx sverklo /path` |
85
62
 
86
- ### When grep is still the right tool
63
+ ---
87
64
 
88
- Sverklo shines when **you don't know exactly what to search for**. When you do, grep is fine and we'll tell you so:
65
+ ## Hero tools
89
66
 
90
- - **Exact string matching** "does this literal string exist anywhere?" → `Grep` is faster and more reliable.
91
- - **Reading file contents** — only `Read` does this. Sverklo isn't a file reader.
92
- - **Build and test verification** only `Bash` runs `npm test` or `gradle check`.
93
- - **Focused single-file diffs** for a signature change in one file, `git diff` + `Read` is hard to beat.
94
- - **Small codebases (under ~50 source files)** — the indexing and MCP roundtrip overhead doesn't pay off at that size. Just read everything. Sverklo starts earning its keep around 100+ files and really shines above 500.
67
+ | Tool | What it does |
68
+ |------|-------------|
69
+ | `sverklo_search` | Hybrid BM25 + vector + PageRank search. Find code without knowing the literal string. |
70
+ | `sverklo_refs` | All references to a symbol, with caller context. Proves dead code with certainty. |
71
+ | `sverklo_impact` | Walk the symbol graph, return ranked transitive callers the real blast radius. |
72
+ | `sverklo_review_diff` | Risk-scored review of `git diff`: touched-symbol importance x coverage x churn. |
95
73
 
96
- If a launch post tells you a tool is great for everything, close the tab.
74
+ [See all 20 tools below.](#full-tool-reference)
97
75
 
98
- ---
99
-
100
- ## Twenty tools your agent actually uses
101
-
102
- Grouped by job. Every tool runs locally, every tool is free.
76
+ <details>
77
+ <summary><h2>Full tool reference</h2></summary>
103
78
 
104
79
  ### Search — find code without knowing the literal string
105
80
  | Tool | What |
@@ -118,30 +93,10 @@ Grouped by job. Every tool runs locally, every tool is free.
118
93
  | `sverklo_deps` | File dependency graph — both directions, importers and imports |
119
94
  | `sverklo_audit` | Surface god nodes, hub files, dead code candidates in one call |
120
95
 
121
- ### Cross-repo impact analysis (v0.4.0+)
122
-
123
- Link multiple projects into a workspace and trace symbol impact across repo boundaries:
124
-
125
- ```bash
126
- # Link multiple projects into a workspace
127
- sverklo workspace init myapp ./api ./frontend ./cms
128
-
129
- # Index cross-repo relationships
130
- sverklo workspace index myapp
131
- ```
132
-
133
- Then ask your agent:
134
-
135
- ```
136
- sverklo_impact symbol:"User.email" cross_repo:true
137
- ```
138
-
139
- This walks the symbol graph across all linked repos and returns the full blast radius — which API routes, frontend components, and CMS templates touch `User.email`, ranked by depth. Currently GraphQL-first (schema stitching and federation are resolved automatically). REST/OpenAPI support is next.
140
-
141
96
  ### Review — diff-aware MR review with risk scoring
142
97
  | Tool | What |
143
98
  |------|------|
144
- | `sverklo_review_diff` | Risk-scored review of `git diff` — touched-symbol importance × coverage × churn |
99
+ | `sverklo_review_diff` | Risk-scored review of `git diff` — touched-symbol importance x coverage x churn |
145
100
  | `sverklo_test_map` | Which tests cover which changed symbols; flag untested production changes |
146
101
  | `sverklo_diff_search` | Semantic search restricted to the changed surface of a diff |
147
102
 
@@ -160,36 +115,35 @@ This walks the symbol graph across all linked repos and returns the full blast r
160
115
  | `sverklo_status` | Index health check, file counts, last update |
161
116
  | `sverklo_wakeup` | Warm the index after a long pause; incremental refresh |
162
117
 
163
- ## Example prompts that showcase sverklo
118
+ </details>
164
119
 
165
- Copy-paste these into Claude Code, Cursor, or Windsurf on any indexed project. Each one exercises a tool that plain text search can't replicate.
120
+ ---
166
121
 
167
- - **"Find everything that would break if I rename `UserRepository.findActive`. Rank by depth, show me the riskiest 5 callers first."**
168
- - **"Is `parseFoo` actually used anywhere in this repo, or is it dead code I can delete?"**
169
- - **"What are the top 10 most structurally important files in this codebase? Don't count test files."**
170
- - **"Review the current git diff. What should I read first? Which changes touch untested production code?"**
171
- - **"I'm onboarding to this repo. Give me a 5-minute mental model: what are the god classes, what are the hub files, what's dead?"**
172
- - **"Save a decision: we use Postgres advisory locks instead of Redis for cross-worker mutexes because of our existing operational familiarity. Pin it to the current SHA."**
173
- - **"What did we decide about rate limiting the public API? Check saved memories first, then the actual code."**
122
+ ## When to reach for sverklo and when not to
174
123
 
175
- If your agent isn't reaching for sverklo tools on prompts like these, check `sverklo doctor` or verify your CLAUDE.md has the sverklo section (re-run `sverklo init` — it's safe).
124
+ We're honest about this. Sverklo isn't a magic 5x speedup and it doesn't replace grep. It's a sharper tool for specific jobs.
176
125
 
177
- ## Two ready-to-paste workflow prompts
126
+ **When sverklo earns its keep:**
127
+ - You don't know exactly what to search for
128
+ - You need to prove dead code (zero references across the whole symbol graph)
129
+ - You need the blast radius of a refactor before you start
130
+ - You're reviewing a large PR and need to know what to read first
178
131
 
179
- For deeper hybrid workflows, sverklo ships two battle-tested prompt templates you can paste into any agent. They encode the "prefer sverklo for discovery, fall back to grep for exact patterns" approach that consistently produces the best results:
132
+ **When grep is still the right tool:**
133
+ - Exact string matching — "does this literal string exist?"
134
+ - Small codebases under ~50 source files — just read everything
135
+ - Single-file diffs — `git diff` + `Read` is hard to beat
136
+ - Build and test verification — only `Bash` runs `npm test`
180
137
 
181
- ```bash
182
- sverklo audit-prompt # full codebase audit — 4-phase workflow
183
- sverklo review-prompt # pull/merge request review with blast-radius analysis
184
- ```
138
+ If a launch post tells you a tool is great for everything, close the tab.
185
139
 
186
- Pipe the output into `pbcopy` / `xclip` and paste into Claude Code, or save it to a file your agent can load.
140
+ ---
187
141
 
188
142
  ## How It Works
189
143
 
190
144
  ```mermaid
191
145
  graph LR
192
- A[Your Code] --> B[Parse<br/>20+ languages]
146
+ A[Your Code] --> B[Parse<br/>10 languages]
193
147
  B --> C[Embed<br/>ONNX/Ollama]
194
148
  B --> D[Build Graph<br/>imports/exports]
195
149
  D --> E[PageRank<br/>importance]
@@ -210,24 +164,39 @@ graph LR
210
164
  5. **Remembers** decisions and patterns across sessions, linked to git state
211
165
  6. **Watches** for file changes and updates incrementally
212
166
 
167
+ ---
168
+
169
+ ## Performance
170
+
171
+ Real measurements on real codebases. Reproducible via `npm run bench` ([methodology](./BENCHMARKS.md)).
172
+
173
+ | Repo | Files | Cold index | Search p95 | Impact analysis | DB size |
174
+ |---|---:|---:|---:|---:|---:|
175
+ | [gin-gonic/gin](https://github.com/gin-gonic/gin) | 99 | 10 s | 12 ms | 0.75 ms | 4 MB |
176
+ | [nestjs/nest](https://github.com/nestjs/nest) | 1,709 | 22 s | 14 ms | 0.88 ms | 11 MB |
177
+ | [facebook/react](https://github.com/facebook/react) | 4,368 | 152 s | 26 ms | 1.18 ms | 67 MB |
178
+
179
+ - **Search p95 stays under 26 ms** even on a 4k-file monorepo
180
+ - **Impact analysis is sub-millisecond** — indexed SQL join, not a string scan
181
+ - **10 languages:** TS, JS, Python, Go, Rust, Java, C, C++, Ruby, PHP
182
+
183
+ ---
184
+
213
185
  ## Quick Start
214
186
 
187
+ ### Claude Code
188
+
215
189
  ```bash
216
190
  npm install -g sverklo
217
- cd your-project
218
- sverklo init
191
+ cd your-project && sverklo init
219
192
  ```
220
193
 
221
- This creates `.mcp.json` at your project root (the only file Claude Code reads for project-scoped MCP servers) and appends sverklo instructions to your `CLAUDE.md`. Safe to re-run.
194
+ Creates `.mcp.json` at your project root and appends sverklo instructions to `CLAUDE.md`. Safe to re-run. If sverklo doesn't appear in `/mcp` after restart, run `sverklo doctor`.
222
195
 
223
- If sverklo doesn't appear in Claude Code's `/mcp` list after restart, run:
224
- ```bash
225
- sverklo doctor
226
- ```
227
- This diagnoses MCP setup issues — checks the binary, the model, the config file location, the handshake, and tells you exactly what's wrong.
196
+ ### Cursor / Windsurf / VS Code / JetBrains
197
+
198
+ Use the full binary path (`which sverklo`) to avoid PATH issues in spawned subprocesses:
228
199
 
229
- ### Cursor / Windsurf / VS Code
230
- These IDEs use their own MCP config locations. Use the **full binary path** to avoid PATH resolution issues in spawned subprocesses:
231
200
  ```json
232
201
  {
233
202
  "mcpServers": {
@@ -238,293 +207,72 @@ These IDEs use their own MCP config locations. Use the **full binary path** to a
238
207
  }
239
208
  }
240
209
  ```
241
- Find the path with `which sverklo`. Add to:
242
- - **Cursor:** `.cursor/mcp.json`
243
- - **Windsurf:** `~/.windsurf/mcp.json`
244
- - **VS Code:** `.vscode/mcp.json`
245
- - **JetBrains:** Settings → Tools → MCP Servers
246
210
 
247
- ### Google Antigravity
248
- Antigravity uses a **global** MCP config file (no per-project config — known limitation, see [Google forum](https://discuss.ai.google.dev/t/support-for-per-workspace-mcp-config-on-antigravity/111952)). `sverklo init` writes it for you if Antigravity is installed, otherwise edit the file by hand:
211
+ Config locations: `.cursor/mcp.json`, `~/.windsurf/mcp.json`, `.vscode/mcp.json`, or JetBrains Settings -> Tools -> MCP Servers.
249
212
 
250
- `~/.gemini/antigravity/mcp_config.json` (Windows: `C:\Users\<USER>\.gemini\antigravity\mcp_config.json`)
213
+ ### Antigravity
251
214
 
252
- ```json
253
- {
254
- "mcpServers": {
255
- "sverklo": {
256
- "command": "/full/path/to/sverklo",
257
- "args": ["/absolute/path/to/your/project"]
258
- }
259
- }
260
- }
261
- ```
215
+ `sverklo init` writes the global config at `~/.gemini/antigravity/mcp_config.json`. Because Antigravity lacks per-project MCP config, you'll need to re-run `sverklo init` from each project or use separate keys (`sverklo-projA`, `sverklo-projB`).
262
216
 
263
- Restart Antigravity after editing. To verify, open the side panel → **MCP Servers** → **Manage MCP Servers** — sverklo should appear in the list. Because the config is global, if you work on multiple projects you'll need to either re-run `sverklo init` from each (it rewrites the path) or run a separate sverklo instance per project under different keys (`sverklo-projA`, `sverklo-projB`).
217
+ ### Any MCP client
264
218
 
265
- ### Any MCP Client
266
219
  ```bash
267
220
  npx sverklo /path/to/your/project
268
221
  ```
269
222
 
270
- ### Dashboard
271
- ```bash
272
- npx sverklo ui .
273
- ```
274
- Opens a web dashboard at `localhost:3847` — browse indexed files, search playground, memory viewer, dependency graph.
275
-
276
- > **First run:** The ONNX embedding model (~90MB) downloads automatically. Takes ~30 seconds on first launch, then instant.
277
-
278
- ## The web dashboard (`sverklo ui`)
279
-
280
- Sverklo ships with a local web dashboard that gives you a visual window into the index the MCP tools work against. It's the fastest way to verify the index looks right, explore the structural graph of an unfamiliar codebase, or audit saved memories.
223
+ > **First run:** The ONNX embedding model (~90 MB) downloads automatically. Takes ~30 seconds on first launch, then instant.
281
224
 
282
- ```bash
283
- sverklo ui .
284
- ```
285
-
286
- Opens `http://localhost:3847` in your browser. Everything runs locally — the dashboard reads straight from the SQLite index file at `~/.sverklo/<project-hash>/index.db`. No cloud, no network calls, no server to stand up.
287
-
288
- ![Sverklo dashboard showing the dependency graph view](./docs/dashboard.png)
289
-
290
- What you can see:
291
-
292
- - **Overview** — PageRank-ranked file list, language breakdown, chunk count, memory health
293
- - **File browser** — every indexed file with its chunks (functions, classes, types), import graph (both directions), and PageRank score
294
- - **Search playground** — run `sverklo_search` queries interactively and see the ranked hits, scores, and PageRank contribution side-by-side. Faster than typing queries into your agent when you're debugging a failing search.
295
- - **Dependency graph** — the whole repo's file-level dependency graph, nodes colored by language, sized by PageRank. Pan and zoom. The fastest way to find "the files that matter" in a repo you've never seen.
296
- - **Memory viewer** — all saved memories, grouped by tier (core / archive), with their git SHAs, tags, and staleness flags
297
- - **Memory timeline** — bi-temporal view showing invalidated memories alongside active ones, with the SHAs where each one was superseded. Click through to see which memory replaced which.
298
-
299
- The dashboard is read-only — nothing you do here changes the index. Use the MCP tools from your AI agent for that. Think of the dashboard as the "inspect" view of the tools you're already using.
300
-
301
- Keep it open in a tab alongside Claude Code or Cursor while you work. When a tool call returns a confusing result, click through to see exactly what the index thinks the codebase looks like.
302
-
303
- ## Performance
304
-
305
- Real measurements on real codebases. Every number below is reproducible with one command:
306
-
307
- ```bash
308
- git clone https://github.com/sverklo/sverklo && cd sverklo
309
- npm install && npm run build
310
- npm run bench # clones gin/nestjs/react, runs the full suite
311
- ```
312
-
313
- Full methodology in [`BENCHMARKS.md`](./BENCHMARKS.md). The detailed on-disk format is documented in [`docs/index-format.md`](./docs/index-format.md).
314
-
315
- | Repo | Files | Cold index | Search p95 | Impact analysis | DB size |
316
- |---|---:|---:|---:|---:|---:|
317
- | [gin-gonic/gin](https://github.com/gin-gonic/gin) | 99 | 10 s | 12 ms | 0.75 ms | 4 MB |
318
- | [nestjs/nest](https://github.com/nestjs/nest) | 1,709 | 22 s | 14 ms | 0.88 ms | 11 MB |
319
- | [facebook/react](https://github.com/facebook/react) | 4,368 | 152 s | 26 ms | 1.18 ms | 67 MB |
320
-
321
- - **Search latency stays under 26 ms p95** even on a 4k-file React monorepo
322
- - **Impact analysis is sub-millisecond** on every repo we tested — it's an indexed SQL join, not a string scan
323
- - **Cold-start indexing is linear in chunks** (~7 ms/chunk on Apple Silicon). Pay it once per project; incremental refresh after that only re-processes changed files
324
- - **Steady-state RAM is ~200 MB** after indexing finishes. Peak during indexing is 400–700 MB while the embedder batches chunks
325
- - **Languages:** 10 (TS, JS, Python, Go, Rust, Java, C, C++, Ruby, PHP)
326
- - **Dependencies:** zero config, zero API keys, zero cloud calls (after the one-time ~90 MB ONNX model download)
327
-
328
- ### Cost
329
-
330
- Sverklo itself is free and runs entirely locally. **It does not call any paid APIs.** The only cost is the disk space for the ONNX model (~90 MB) and the SQLite index (~4–67 MB depending on repo size). Your AI coding agent's normal token usage applies when it calls sverklo tools — but sverklo's token-budgeted responses are designed to minimize this (typically 2–8k tokens per tool call vs 20–50k for raw file reads).
331
-
332
- ## Troubleshooting
333
-
334
- Most setup issues fall into one of five buckets. Run `sverklo doctor` first — it diagnoses 90 % of them automatically. If you still need to dig, here's the manual playbook:
335
-
336
- **Sverklo doesn't appear in Claude Code's `/mcp` list after restart.**
337
- 1. Confirm the binary is on PATH: `which sverklo` (should print an absolute path)
338
- 2. Confirm `.mcp.json` exists at the project root: `cat .mcp.json`
339
- 3. Fully quit and restart Claude Code (not just reload the window) — MCP configs are read once on startup
340
- 4. Check the sverklo MCP log in Claude Code: `View → Output → Model Context Protocol`
341
-
342
- **`sverklo init` wrote a config but the agent still can't find it.**
343
- - Cursor / Windsurf / VS Code use their own MCP config paths. See [Cursor / Windsurf / VS Code](#cursor--windsurf--vs-code) below — the config goes in `.cursor/mcp.json`, `~/.windsurf/mcp.json`, or `.vscode/mcp.json` respectively, not `.mcp.json`.
344
- - Antigravity uses a **global** config at `~/.gemini/antigravity/mcp_config.json`. See [Google Antigravity](#google-antigravity).
345
-
346
- **"Failed to start sverklo" / the handshake fails.**
347
- - Confirm Node ≥ 20: `node --version`
348
- - Try running the server manually to see the error directly: `sverklo .`
349
- - Enable debug logging: `SVERKLO_DEBUG=1 sverklo .`
350
- - If the ONNX model download failed, re-run it: `sverklo setup`
351
-
352
- **Index feels wrong or stale.**
353
- - Check status: `sverklo doctor` or call `sverklo_status` in your agent
354
- - Force a rescan: delete the index at `~/.sverklo/<project-hash>/` and restart the server
355
- - Large binary files are skipped by default (>1 MB). If you need them indexed, override via `.sverkloignore`
356
-
357
- **Slow queries.**
358
- - `npm run bench:latency` runs the MCP roundtrip profiler against your current build and prints per-tool p50/p95. Use it to confirm whether the slowdown is in a specific tool or a system-wide cost.
359
- - Large codebases take time to cold-index — but after that, incremental updates should be <10 ms per file event.
360
-
361
- Still stuck? File an issue with the output of `sverklo doctor` attached. We triage within a couple days.
225
+ ---
362
226
 
363
227
  ## Why not... (as of 2026-04)
364
228
 
365
229
  | Alternative | Local | OSS | Code search | Symbol graph | Memory | MR review | License | Cost |
366
230
  |---|---|---|---|---|---|---|---|---|
367
- | **Sverklo** | | MIT | hybrid + PageRank | | git-aware | risk-scored | MIT | $0 |
368
- | Built-in grep / Read | | | text only | | | | varies | $0 |
369
- | [Cursor's @codebase](https://docs.cursor.com/context/codebase-indexing) | cloud | | | partial | | | proprietary | with Cursor sub |
370
- | [Sourcegraph Cody](https://sourcegraph.com/cody) | cloud | source-available | | | | partial | source-available | $919/dev/mo |
371
- | [Continue.dev](https://continue.dev) | partial | | basic | | | | Apache 2.0 | $0 |
372
- | [Claude Context (Zilliz)](https://github.com/zilliztech/claude-context) | Milvus | | vector only | | | | MIT | $0 + Milvus |
373
- | [Aider repo-map](https://aider.chat/docs/repomap.html) | | | | basic | | | Apache 2.0 | $0 |
374
- | [Greptile](https://greptile.com) | ✗ cloud | ✗ | ✓ | ✓ | ✗ | ✓ | proprietary | $30/dev/mo |
375
- | [Augment](https://augmentcode.com) | ✗ cloud | ✗ | ✓ | ✓ | ✗ | partial | proprietary | $20–200/mo |
376
- | [Serena](https://github.com/oraios/serena) | ✓ | ✓ MIT | ✓ LSP-based | ✓ | ✗ | ✗ | MIT | $0 |
377
- | [GitNexus](https://github.com/AkonLabs/gitnexus) | ✓ | ✗ **NonCommercial** | ✓ | ✓ graph | ✗ | ✗ | PolyForm NC | $0 personal only |
378
- | [codebase-memory-mcp](https://github.com/DeusData/codebase-memory-mcp) | ✓ | ✓ MIT | ✓ AST | ✓ knowledge graph | ✗ | ✗ | MIT | $0 |
379
- | [CodeGraphContext](https://github.com/CodeGraphContext/CodeGraphContext) | ✓ | ✓ MIT | ✗ | ✓ graph DB | ✗ | ✗ | MIT | $0 |
380
- | [Repomix](https://github.com/yamadashy/repomix) | ✓ | ✓ MIT | ✗ dump only | ✗ | ✗ | ✗ | MIT | $0 |
381
- | [claude-mem](https://github.com/themanojdesai/claude-mem) | ✓ | ✓ | ✗ | ✗ | ✓ ChromaDB | ✗ | MIT | $0 |
382
-
383
- Sverklo is the only tool that combines **hybrid code search + symbol graph + memory + diff-aware review** in one local-first MCP server. GitNexus has the most stars (27.6k) but its **PolyForm Noncommercial license** prohibits commercial use — Sverklo is MIT, no restrictions.
384
-
385
- ## Configuration
386
-
387
- | Setting | Location |
388
- |---------|----------|
389
- | Model files | `~/.sverklo/models/` (auto-downloaded) |
390
- | Index database | `~/.sverklo/<project>/index.db` |
391
- | Project config | `.sverklo.yaml` in project root |
392
- | Custom ignores | `.sverkloignore` in project root |
393
- | Debug logging | `SVERKLO_DEBUG=1` |
394
-
395
- ### `.sverklo.yaml` (v0.3.0+)
396
-
397
- Drop a `.sverklo.yaml` in your project root to tune indexing and search behavior per-repo:
398
-
399
- ```yaml
400
- # .sverklo.yaml — customize Sverklo's behavior
401
- weights:
402
- - glob: "src/core/**"
403
- weight: 2.0 # boost core modules in search ranking
404
- - glob: "src/generated/**"
405
- weight: 0.1 # suppress generated code
406
- - glob: "vendor/**"
407
- weight: 0.2
408
-
409
- ignore:
410
- - "*.generated.ts"
411
- - ".next/**"
412
-
413
- search:
414
- defaultTokenBudget: 6000
415
- budgets:
416
- search: 8000
417
- audit: 5000
418
- ```
419
-
420
- **Weights** are multiplicative on PageRank only — they don't affect BM25 or embedding scores. Range is 0.0 to 10.0, last matching glob wins. Use them to boost code you care about and suppress generated or vendored files without fully ignoring them.
231
+ | **Sverklo** | yes | yes MIT | hybrid + PageRank | yes | git-aware | risk-scored | MIT | $0 |
232
+ | Built-in grep / Read | yes | yes | text only | no | no | no | varies | $0 |
233
+ | [Cursor @codebase](https://docs.cursor.com/context/codebase-indexing) | no (cloud) | no | yes | partial | no | no | proprietary | with Cursor sub |
234
+ | [Sourcegraph Cody](https://sourcegraph.com/cody) | no (cloud) | no | yes | yes | no | partial | source-available | $9-19/dev/mo |
235
+ | [Claude Context (Zilliz)](https://github.com/zilliztech/claude-context) | no (Milvus) | yes | vector only | no | no | no | MIT | $0 + Milvus |
236
+ | [Aider repo-map](https://aider.chat/docs/repomap.html) | yes | yes | no | basic | no | no | Apache 2.0 | $0 |
237
+ | [Greptile](https://greptile.com) | no (cloud) | no | yes | yes | no | yes | proprietary | $30/dev/mo |
421
238
 
422
- **Token budgets** control how much context each tool returns per call. The defaults were raised in v0.3.0 (search: 8000, audit: 5000). Override them here or per-call via the `budget` parameter on any search tool.
423
-
424
- ### Pluggable embeddings (v0.5.0+)
425
-
426
- Swap the default MiniLM-L6-v2 for any Ollama embedding model:
427
-
428
- ```yaml
429
- # .sverklo.yaml
430
- embeddings:
431
- provider: ollama
432
- ollama:
433
- model: nomic-embed-text
434
- baseUrl: http://localhost:11434
435
- ```
436
-
437
- Dimensions auto-detected from the first response. Falls back to bundled ONNX if Ollama isn't running.
438
-
439
- ## CLI tools (v0.5.0+)
440
-
441
- ### `sverklo review` — CI-friendly diff review
442
-
443
- ```bash
444
- sverklo review --ci --fail-on high
445
- ```
446
-
447
- Risk-scored diff review from the terminal. Auto-detects PR ref in GitHub Actions (`GITHUB_BASE_REF`). Exit code 1 when the threshold is exceeded — use as a CI quality gate.
448
-
449
- ### `sverklo audit` — codebase health report
450
-
451
- ```bash
452
- sverklo audit --format html --open
453
- ```
454
-
455
- Generates a self-contained HTML report: god nodes, hub files, orphan detection, coupling analysis, language distribution. Dark theme, shareable artifact.
456
-
457
- Formats: `markdown` (default), `html`, `json`.
458
-
459
- ### `sverklo audit --badge` — add a health grade to your README
460
-
461
- ```bash
462
- sverklo audit --badge
463
- ```
464
-
465
- Outputs a shields.io badge with your project's A–F health grade. Paste the markdown into your README:
239
+ ---
466
240
 
467
- [![Sverklo Health: B](https://img.shields.io/badge/sverklo-B-green)](https://sverklo.com)
241
+ ## Audit formats
468
242
 
469
- The grade combines four dimensions: dead code %, circular dependencies, coupling (max fan-in), and security issues. [Learn more →](https://sverklo.com/badge/)
243
+ `sverklo audit` generates codebase health reports in six formats: `markdown`, `html`, `json`, `sarif`, `csv`, and `badges`. Run `sverklo audit --format html --open` for a self-contained report with god nodes, hub files, orphan detection, coupling analysis, and language distribution. Use `sverklo audit --badge` to add an A-F health grade shield to your README.
470
244
 
471
- ### GitHub Action
245
+ ---
472
246
 
473
- Automated PR review on every pull request:
247
+ ## CLI tools
474
248
 
475
- ```yaml
476
- # .github/workflows/sverklo-review.yml
477
- name: Sverklo Review
478
- on: [pull_request]
479
- jobs:
480
- review:
481
- runs-on: ubuntu-latest
482
- steps:
483
- - uses: actions/checkout@v4
484
- with:
485
- fetch-depth: 0
486
- - uses: sverklo/sverklo/action@main
487
- with:
488
- github-token: ${{ secrets.GITHUB_TOKEN }}
489
- fail-on: high
490
- ```
249
+ Sverklo ships a CLI for CI and local use: `sverklo review --ci --fail-on high` for risk-scored diff review (auto-detects PR ref in GitHub Actions), `sverklo audit` for codebase health reports, and a [GitHub Action](./action) that posts review comments on PRs. Run `sverklo audit-prompt` or `sverklo review-prompt` to get battle-tested workflow prompts you can paste into any agent.
491
250
 
492
- Posts risk-scored review comments directly on PRs. Updates existing comments on subsequent pushes.
251
+ ---
493
252
 
494
253
  ## Telemetry
495
254
 
496
- **Off by default.** Sverklo ships zero telemetry until you explicitly run `sverklo telemetry enable`. If you never run that command, sverklo never makes a network call beyond the one-time embedding model download on first run.
255
+ **Off by default.** Sverklo makes zero network calls unless you explicitly run `sverklo telemetry enable`. If you opt in, we collect only anonymous usage metrics (no code, no queries, no file paths). Full schema and implementation details in [`TELEMETRY.md`](./TELEMETRY.md).
497
256
 
498
- If you do opt in, we collect 9 fields per event: a random install ID (generated locally), sverklo version, OS, Node major version, the event type (one of 17 fixed enum values), the tool name when applicable, the outcome (ok/error/timeout), and the duration in ms. Server-side we add a Unix timestamp.
499
-
500
- **We never collect:** code, queries, file paths, symbol names, memory contents, git SHAs, branches, repo URLs, IP addresses, hostnames, error messages, language breakdowns, or anything else that could identify you or your codebase.
501
-
502
- Every event is mirrored to `~/.sverklo/telemetry.log` **before** the network call so you can `tail -f` it and see exactly what gets sent. The endpoint is a Cloudflare Worker we own at `t.sverklo.com`, the source lives in [`telemetry-endpoint/`](./telemetry-endpoint/), retention is 90 days, and the entire client implementation is one file under 250 lines at [`src/telemetry/index.ts`](./src/telemetry/index.ts).
503
-
504
- Read [`TELEMETRY.md`](./TELEMETRY.md) for the full schema, the 17 event types, what we deliberately don't collect, and how to verify it. The design rationale and locked decisions are in [`TELEMETRY_DESIGN.md`](./TELEMETRY_DESIGN.md).
505
-
506
- ```bash
507
- sverklo telemetry status # show current state
508
- sverklo telemetry enable # opt in (interactive, prints schema first)
509
- sverklo telemetry disable # opt out, permanent per machine
510
- sverklo telemetry log # show every event that was sent
511
- ```
257
+ ---
512
258
 
513
259
  ## Open Source, Open Core
514
260
 
515
261
  The full MCP server is **free and open source** (MIT). All 20 tools, no limits, no telemetry, no "free tier" — that's not where the line is.
516
262
 
517
- **Sverklo Pro** (later this year) adds smart auto-capture of decisions, cross-project pattern learning, and larger embedding models.
263
+ **Sverklo Pro** (later this year) adds smart auto-capture of decisions, cross-project pattern learning, and larger embedding models. **Sverklo Team** adds shared team memory and on-prem deployment.
518
264
 
519
- **Sverklo Team** (later this year) adds shared team memory and on-prem deployment.
265
+ The open-core line: **Pro adds new things, never gates current things.** Anything in the OSS server today stays in the OSS server forever.
520
266
 
521
- The open-core line is **"Pro adds new things, never gates current things."** Anything in the OSS server today stays in the OSS server forever.
267
+ ---
522
268
 
523
269
  ## Links
524
270
 
525
271
  - [Website](https://sverklo.com)
526
272
  - [npm](https://www.npmjs.com/package/sverklo)
527
273
  - [Issues](https://github.com/sverklo/sverklo/issues)
274
+ - [First Run Guide](FIRST_RUN.md)
275
+ - [Benchmarks](BENCHMARKS.md)
528
276
 
529
277
  ## License
530
278
 
@@ -44,24 +44,25 @@ function couplingGrade(maxFanIn) {
44
44
  return "D";
45
45
  return "F";
46
46
  }
47
- function securityGrade(issueCount) {
48
- if (issueCount === 0)
47
+ function securityGrade(issues) {
48
+ const weights = { critical: 10, high: 5, medium: 2, low: 1 };
49
+ const score = issues.reduce((sum, i) => sum + (weights[i.severity] || 1), 0);
50
+ if (score === 0)
49
51
  return "A";
50
- if (issueCount <= 2)
52
+ if (score <= 5)
51
53
  return "B";
52
- if (issueCount <= 5)
54
+ if (score <= 15)
53
55
  return "C";
54
- if (issueCount <= 10)
56
+ if (score <= 30)
55
57
  return "D";
56
58
  return "F";
57
59
  }
58
60
  const SECURITY_PATTERNS = [
59
- // Hardcoded secrets
61
+ // Hardcoded secrets — narrowed keywords to reduce false positives
60
62
  {
61
63
  name: "Hardcoded secret",
62
- regex: /(password|secret|api_key|apikey|token|auth)\s*[:=]\s*['"][^'"]{8,}['"]/i,
64
+ regex: /(password|secret|api_key|apikey|api_secret|token|auth_token|auth_key|private_key|access_key)\s*[:=]\s*['"][^'"]{8,}['"]/i,
63
65
  severity: "critical",
64
- // Post-filter: skip common false positives like config descriptions, placeholders
65
66
  },
66
67
  {
67
68
  name: "Private key",
@@ -70,9 +71,21 @@ const SECURITY_PATTERNS = [
70
71
  },
71
72
  {
72
73
  name: "API token",
73
- regex: /(ghp_|gho_|github_pat_|sk-|pk_live_|pk_test_|sk_live_|sk_test_)[a-zA-Z0-9]{20,}/,
74
+ regex: /(ghp_|gho_|github_pat_|sk-|pk_live_|pk_test_|sk_live_|sk_test_|AKIA|xoxb-|xoxp-|xoxs-|npm_|pypi-|SG\.|sk-ant-)[a-zA-Z0-9_\-]{16,}/,
74
75
  severity: "critical",
75
76
  },
77
+ // Command injection — critical for Node.js
78
+ {
79
+ name: "Command injection risk",
80
+ regex: /(?:child_process|exec|execSync|execFile|spawn|spawnSync)\s*\(\s*(?:`[^`]*\$\{|['"][^'"]*['"]\s*\+)/,
81
+ severity: "critical",
82
+ },
83
+ // Path traversal — common in file-serving endpoints
84
+ {
85
+ name: "Path traversal risk",
86
+ regex: /(?:readFile|readFileSync|createReadStream|writeFile|writeFileSync|access|accessSync|unlink|unlinkSync)\s*\(\s*(?:[^)]*\+|[^)]*\$\{)/,
87
+ severity: "high",
88
+ },
76
89
  // SQL injection
77
90
  {
78
91
  name: "SQL injection (template literal)",
@@ -82,12 +95,13 @@ const SECURITY_PATTERNS = [
82
95
  {
83
96
  name: "SQL injection (string concat)",
84
97
  regex: /(?:SELECT|INSERT|UPDATE|DELETE|DROP|WHERE).*['"]\s*\+/i,
85
- severity: "high",
98
+ severity: "medium",
86
99
  },
87
- // Dangerous eval
100
+ // Dangerous eval — word boundary fix to avoid matching evalResult(), evalTemplate()
101
+ // NOTE: do not add /g flag to these regexes — test() is called multiple times per line
88
102
  {
89
103
  name: "eval() usage",
90
- regex: /(?<!\.)eval\s*\(/,
104
+ regex: /(?<![.\w])eval\s*\(/,
91
105
  severity: "high",
92
106
  },
93
107
  {
@@ -98,14 +112,14 @@ const SECURITY_PATTERNS = [
98
112
  {
99
113
  name: "setTimeout with string",
100
114
  regex: /setTimeout\s*\(\s*['"`]/,
101
- severity: "high",
115
+ severity: "medium",
102
116
  },
103
117
  {
104
118
  name: "setInterval with string",
105
119
  regex: /setInterval\s*\(\s*['"`]/,
106
- severity: "high",
120
+ severity: "medium",
107
121
  },
108
- // Debug statements — debugger is always flagged
122
+ // Debug statements
109
123
  {
110
124
  name: "debugger statement",
111
125
  regex: /\bdebugger\s*;/,
@@ -156,8 +170,8 @@ export function scanSecurity(indexer) {
156
170
  continue;
157
171
  if (/must be|should be|at least|characters|required/i.test(val))
158
172
  continue;
159
- // Skip process.env references
160
- if (/process\.env\b/.test(line))
173
+ // Skip environment variable references
174
+ if (/(?:process\.env|import\.meta\.env|os\.environ|Deno\.env|System\.getenv|ENV\[)\b/.test(line))
161
175
  continue;
162
176
  }
163
177
  const key = `${filePath}:${absoluteLine}:${pattern.name}`;
@@ -335,6 +349,10 @@ function computeMaxFanIn(files, edges) {
335
349
  function computeDeadCodePct(indexer) {
336
350
  const allChunks = indexer.chunkStore.getAllWithFile();
337
351
  const allRefs = indexer.symbolRefStore.getAll();
352
+ const allFiles = indexer.fileStore.getAll();
353
+ // Build set of high-PageRank file paths — symbols in heavily-imported files
354
+ // are clearly being used even if the symbol extractor can't trace the exact pattern
355
+ const highPrFiles = new Set(allFiles.filter((f) => f.pagerank > 0.05).map((f) => f.path));
338
356
  const refsByName = new Map();
339
357
  for (const r of allRefs) {
340
358
  refsByName.set(r.target_name, (refsByName.get(r.target_name) || 0) + 1);
@@ -370,6 +388,10 @@ function computeDeadCodePct(indexer) {
370
388
  // `import X from './file'` which uses arbitrary names
371
389
  if (c.content && /export\s+default\s/.test(c.content))
372
390
  continue;
391
+ // Skip symbols in high-PageRank files — the file is heavily imported,
392
+ // so its symbols are used even if we can't trace the exact reference
393
+ if (highPrFiles.has(c.filePath))
394
+ continue;
373
395
  const fullName = c.name;
374
396
  const dot = fullName.lastIndexOf(".");
375
397
  const bareName = dot >= 0 ? fullName.slice(dot + 1) : fullName;
@@ -401,7 +423,7 @@ export function analyzeCodebase(indexer) {
401
423
  const dcGrade = deadCodeGrade(deadCodePct);
402
424
  const cdGrade = circularDepsGrade(circularDeps.length);
403
425
  const cpGrade = couplingGrade(maxFanIn);
404
- const scGrade = securityGrade(securityIssues.length);
426
+ const scGrade = securityGrade(securityIssues);
405
427
  const dimensions = [
406
428
  {
407
429
  name: "Dead code",
@@ -427,7 +449,7 @@ export function analyzeCodebase(indexer) {
427
449
  name: "Security",
428
450
  grade: scGrade,
429
451
  score: GRADE_VALUES[scGrade],
430
- detail: `${securityIssues.length} issue${securityIssues.length === 1 ? "" : "s"} found`,
452
+ detail: `${securityIssues.length} concern${securityIssues.length === 1 ? "" : "s"} found`,
431
453
  },
432
454
  ];
433
455
  // 6. Weighted average (equal 25% each)
@@ -1 +1 @@
1
- {"version":3,"file":"audit-analysis.js","sourceRoot":"","sources":["../../../src/server/audit-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit-analysis.js","sourceRoot":"","sources":["../../../src/server/audit-analysis.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,9 @@ export function handleAudit(indexer, args) {
58
58
  const namedChunks = allChunks.filter((c) => c.name &&
59
59
  (c.type === "function" || c.type === "class" || c.type === "method") &&
60
60
  !NON_SHIPPING.test(c.filePath));
61
+ // Build set of high-PageRank file paths — symbols in heavily-imported files
62
+ // are clearly being used even if the symbol extractor misses the reference pattern
63
+ const highPrFiles = new Set(files.filter((f) => f.pagerank > 0.05).map((f) => f.path));
61
64
  const orphans = [];
62
65
  const MAX_ORPHANS = 15;
63
66
  for (const c of namedChunks) {
@@ -66,6 +69,10 @@ export function handleAudit(indexer, args) {
66
69
  // Skip common exports like main, default, index, __init__
67
70
  if (["main", "default", "index", "__init__", "constructor"].includes(c.name))
68
71
  continue;
72
+ // Skip symbols in high-PageRank files — the file is heavily imported,
73
+ // so its symbols are clearly used even if we can't trace the exact reference
74
+ if (highPrFiles.has(c.filePath))
75
+ continue;
69
76
  const fullName = c.name;
70
77
  const dot = fullName.lastIndexOf(".");
71
78
  const bareName = dot >= 0 ? fullName.slice(dot + 1) : fullName;
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../src/server/tools/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../../src/server/tools/audit.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "sverklo",
3
3
  "mcpName": "io.github.sverklo/sverklo",
4
- "version": "0.10.0",
4
+ "version": "0.10.2",
5
5
  "description": "Sverklo — local-first code intelligence MCP server. Diff-aware MR review, risk scoring, hybrid semantic search, PageRank ranking, persistent memory. Zero config.",
6
6
  "type": "module",
7
7
  "bin": {