sverklo 0.2.9 → 0.2.10
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 +82 -35
- package/package.json +25 -4
package/README.md
CHANGED
|
@@ -1,53 +1,94 @@
|
|
|
1
1
|
# Sverklo
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/sverklo)
|
|
4
|
+
[](https://www.npmjs.com/package/sverklo)
|
|
5
|
+
[](https://github.com/sverklo/sverklo)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](#)
|
|
8
|
+
|
|
3
9
|
**Other tools remember your conversations. Sverklo understands your code.**
|
|
4
10
|
|
|
5
|
-
Local-first code intelligence MCP
|
|
11
|
+
Local-first code intelligence MCP for **Claude Code, Cursor, Windsurf, VS Code, JetBrains, and Google Antigravity**. Hybrid semantic search, symbol-level impact analysis, diff-aware MR review with risk scoring, and bi-temporal memory tied to git state. Runs entirely on your machine. No API keys. No cloud. No data leaves your laptop.
|
|
6
12
|
|
|
7
13
|
```bash
|
|
8
14
|
npm install -g sverklo
|
|
9
15
|
cd your-project && sverklo init
|
|
10
16
|
```
|
|
11
17
|
|
|
12
|
-
That's it. `sverklo init` writes
|
|
18
|
+
That's it. `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.
|
|
19
|
+
|
|
20
|
+
> **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.
|
|
13
21
|
|
|
14
22
|
---
|
|
15
23
|
|
|
16
|
-
## When
|
|
24
|
+
## When to reach for sverklo
|
|
25
|
+
|
|
26
|
+
We're honest about this — sverklo isn't a magic 5× speedup. It's a sharper tool for specific jobs. Three concrete moments where it earns its keep:
|
|
27
|
+
|
|
28
|
+
### "I'm renaming a public method on a billing-critical class"
|
|
29
|
+
Grep `\.charge(` returns 312 matches polluted by `recharge`, `discharge`, an unrelated `Battery.charge` test fixture, and a 2021 comment. `sverklo_impact BillingAccount.charge` walks the symbol graph and returns the **14 real callers** with file paths and line numbers, ranked by depth. Paste that into your agent as a checklist and the rename is mechanical.
|
|
30
|
+
|
|
31
|
+
### "I'm reviewing a 40-file PR and don't know what to read first"
|
|
32
|
+
`sverklo_review_diff` analyzes the diff, computes a risk score per file (touched-symbol importance × test coverage × historical churn), flags files with no test changes against modified production code, and gives your agent a prioritized review order. `sverklo_test_map` shows which tests cover which changed symbols. The agent reviews like a senior dev because it's reading in the order a senior dev would.
|
|
17
33
|
|
|
18
|
-
|
|
34
|
+
### "I'm onboarding to a new repo and need to know what's load-bearing"
|
|
35
|
+
`sverklo_overview` runs PageRank over the dependency graph and surfaces the structurally important files — not the ones with the most lines, the ones the rest of the codebase depends on. `sverklo_audit` flags god nodes, hub files, and dead code candidates in one call. Five minutes to a real mental model instead of two hours of clicking around.
|
|
19
36
|
|
|
20
|
-
###
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- **Large interconnected codebases** — when grep returns 200 matches and you don't know which are relevant, semantic ranking + PageRank surfaces the load-bearing code first.
|
|
24
|
-
- **Memory across sessions** — `sverklo_remember`/`sverklo_recall` keeps decisions and patterns alive after context compaction. Tied to git SHA so you know what the code looked like when the decision was made.
|
|
25
|
-
- **Project audits** — `sverklo_audit` surfaces god nodes, hub files, dead code candidates in one call.
|
|
37
|
+
### When grep is still the right tool
|
|
38
|
+
|
|
39
|
+
Sverklo is the right tool when **you don't know exactly what to search for**. When you do, grep is fine and we tell you so:
|
|
26
40
|
|
|
27
|
-
### Built-in tools win on
|
|
28
|
-
- **Focused diff review** — for a signature change or a single-file refactor, `git diff` + `Read` + targeted `Grep` is hard to beat.
|
|
29
41
|
- **Exact string matching** — "does this literal string exist anywhere?" → `Grep` is faster and more reliable.
|
|
30
42
|
- **Reading file contents** — only `Read` does this. Sverklo isn't a file reader.
|
|
31
43
|
- **Build and test verification** — only `Bash` runs `npm test` or `gradle check`.
|
|
44
|
+
- **Focused single-file diffs** — for a signature change in one file, `git diff` + `Read` is hard to beat.
|
|
32
45
|
|
|
33
|
-
|
|
46
|
+
If a launch post tells you a tool is great for everything, close the tab.
|
|
34
47
|
|
|
35
48
|
---
|
|
36
49
|
|
|
37
|
-
##
|
|
50
|
+
## Twenty tools your agent actually uses
|
|
51
|
+
|
|
52
|
+
Grouped by job. Every tool runs locally, every tool is free.
|
|
38
53
|
|
|
54
|
+
### Search — find code without knowing the literal string
|
|
39
55
|
| Tool | What |
|
|
40
56
|
|------|------|
|
|
41
|
-
| `sverklo_search` | Hybrid
|
|
57
|
+
| `sverklo_search` | Hybrid BM25 + ONNX vector + PageRank, fused with Reciprocal Rank Fusion |
|
|
42
58
|
| `sverklo_overview` | Structural codebase map ranked by PageRank importance |
|
|
43
|
-
| `sverklo_lookup` | Find any function, class, or type by name |
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
|
59
|
+
| `sverklo_lookup` | Find any function, class, or type by name (typo-tolerant) |
|
|
60
|
+
| `sverklo_context` | One-call onboarding — combines overview, code, and saved memories |
|
|
61
|
+
| `sverklo_ast_grep` | Structural pattern matching across the AST, not just text |
|
|
62
|
+
|
|
63
|
+
### Impact — refactor without the regression
|
|
64
|
+
| Tool | What |
|
|
65
|
+
|------|------|
|
|
66
|
+
| `sverklo_impact` | Walk the symbol graph, return ranked transitive callers (the real blast radius) |
|
|
67
|
+
| `sverklo_refs` | Find all references to a symbol, with caller context |
|
|
68
|
+
| `sverklo_deps` | File dependency graph — both directions, importers and imports |
|
|
69
|
+
| `sverklo_audit` | Surface god nodes, hub files, dead code candidates in one call |
|
|
70
|
+
|
|
71
|
+
### Review — diff-aware MR review with risk scoring
|
|
72
|
+
| Tool | What |
|
|
73
|
+
|------|------|
|
|
74
|
+
| `sverklo_review_diff` | Risk-scored review of `git diff` — touched-symbol importance × coverage × churn |
|
|
75
|
+
| `sverklo_test_map` | Which tests cover which changed symbols; flag untested production changes |
|
|
76
|
+
| `sverklo_diff_search` | Semantic search restricted to the changed surface of a diff |
|
|
77
|
+
|
|
78
|
+
### Memory — bi-temporal, git-aware, never stale
|
|
79
|
+
| Tool | What |
|
|
80
|
+
|------|------|
|
|
81
|
+
| `sverklo_remember` | Save decisions, patterns, invariants — pinned to the current git SHA |
|
|
82
|
+
| `sverklo_recall` | Semantic search over saved memories with staleness detection |
|
|
83
|
+
| `sverklo_memories` | List all memories with health metrics (still valid / stale / orphaned) |
|
|
49
84
|
| `sverklo_forget` | Delete a memory |
|
|
50
|
-
| `
|
|
85
|
+
| `sverklo_promote` / `sverklo_demote` | Move memories between tiers (project / global / archived) |
|
|
86
|
+
|
|
87
|
+
### Index health
|
|
88
|
+
| Tool | What |
|
|
89
|
+
|------|------|
|
|
90
|
+
| `sverklo_status` | Index health check, file counts, last update |
|
|
91
|
+
| `sverklo_wakeup` | Warm the index after a long pause; incremental refresh |
|
|
51
92
|
|
|
52
93
|
## How It Works
|
|
53
94
|
|
|
@@ -143,18 +184,22 @@ Opens a web dashboard at `localhost:3847` — browse indexed files, search playg
|
|
|
143
184
|
| Languages | 10 |
|
|
144
185
|
| Dependencies | zero config |
|
|
145
186
|
|
|
146
|
-
## Why
|
|
187
|
+
## Why not... (as of 2026-04)
|
|
147
188
|
|
|
148
|
-
| Alternative |
|
|
149
|
-
|
|
150
|
-
| **
|
|
151
|
-
|
|
|
152
|
-
|
|
|
153
|
-
|
|
|
154
|
-
|
|
|
155
|
-
|
|
|
189
|
+
| Alternative | Local | OSS | Code search | Symbol graph | Memory | MR review | Cost |
|
|
190
|
+
|---|---|---|---|---|---|---|---|
|
|
191
|
+
| **Sverklo** | ✓ | ✓ MIT | ✓ hybrid + PageRank | ✓ | ✓ git-aware | ✓ risk-scored | $0 |
|
|
192
|
+
| Built-in grep / Read | ✓ | ✓ | text only | ✗ | ✗ | ✗ | $0 |
|
|
193
|
+
| [Cursor's @codebase](https://docs.cursor.com/context/codebase-indexing) | ✗ cloud | ✗ | ✓ | partial | ✗ | ✗ | with Cursor sub |
|
|
194
|
+
| [Sourcegraph Cody](https://sourcegraph.com/cody) | ✗ cloud | ✗ source-available | ✓ | ✓ | ✗ | partial | $9–19/dev/mo |
|
|
195
|
+
| [Continue.dev](https://continue.dev) | partial | ✓ | ✓ basic | ✗ | ✗ | ✗ | $0 |
|
|
196
|
+
| [Claude Context (Zilliz)](https://github.com/zilliztech/claude-context) | ✗ Milvus | ✓ | ✓ vector only | ✗ | ✗ | ✗ | $0 + Milvus |
|
|
197
|
+
| [Aider repo-map](https://aider.chat/docs/repomap.html) | ✓ | ✓ | ✗ | ✓ basic | ✗ | ✗ | $0 |
|
|
198
|
+
| [Greptile](https://greptile.com) | ✗ cloud | ✗ | ✓ | ✓ | ✗ | ✓ | $30/dev/mo |
|
|
199
|
+
| [Augment](https://augmentcode.com) | ✗ cloud | ✗ | ✓ | ✓ | ✗ | partial | $20–200/mo |
|
|
200
|
+
| [claude-mem](https://github.com/themanojdesai/claude-mem) | ✓ | ✓ | ✗ | ✗ | ✓ ChromaDB | ✗ | $0 |
|
|
156
201
|
|
|
157
|
-
Sverklo is the only tool that combines **code search + memory +
|
|
202
|
+
Sverklo is the only tool that combines **hybrid code search + symbol graph + memory + diff-aware review** in one local-first MCP server.
|
|
158
203
|
|
|
159
204
|
## Configuration
|
|
160
205
|
|
|
@@ -167,11 +212,13 @@ Sverklo is the only tool that combines **code search + memory + dependency graph
|
|
|
167
212
|
|
|
168
213
|
## Open Source, Open Core
|
|
169
214
|
|
|
170
|
-
The full MCP server is **free and open source** (MIT). All
|
|
215
|
+
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.
|
|
216
|
+
|
|
217
|
+
**Sverklo Pro** (later this year) adds smart auto-capture of decisions, cross-project pattern learning, and larger embedding models.
|
|
171
218
|
|
|
172
|
-
**Sverklo
|
|
219
|
+
**Sverklo Team** (later this year) adds shared team memory and on-prem deployment.
|
|
173
220
|
|
|
174
|
-
**
|
|
221
|
+
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.
|
|
175
222
|
|
|
176
223
|
## Links
|
|
177
224
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sverklo",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.10",
|
|
4
4
|
"description": "Sverklo — local-first code intelligence MCP server. Diff-aware MR review, risk scoring, hybrid semantic search, PageRank ranking, persistent memory. Zero config.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -26,21 +26,42 @@
|
|
|
26
26
|
"keywords": [
|
|
27
27
|
"sverklo",
|
|
28
28
|
"mcp",
|
|
29
|
+
"mcp-server",
|
|
30
|
+
"model-context-protocol",
|
|
29
31
|
"code-search",
|
|
30
32
|
"semantic-search",
|
|
33
|
+
"code-intelligence",
|
|
31
34
|
"codebase-indexing",
|
|
32
|
-
"pagerank",
|
|
33
35
|
"claude-code",
|
|
34
36
|
"cursor",
|
|
37
|
+
"antigravity",
|
|
38
|
+
"windsurf",
|
|
35
39
|
"ai-coding",
|
|
40
|
+
"ai-agents",
|
|
41
|
+
"local-first",
|
|
42
|
+
"embeddings",
|
|
43
|
+
"onnx",
|
|
44
|
+
"ast",
|
|
45
|
+
"pagerank",
|
|
46
|
+
"bm25",
|
|
47
|
+
"rag",
|
|
36
48
|
"developer-tools",
|
|
37
|
-
"
|
|
49
|
+
"diff-review",
|
|
50
|
+
"risk-scoring",
|
|
51
|
+
"refactor",
|
|
52
|
+
"impact-analysis",
|
|
53
|
+
"memory",
|
|
54
|
+
"git-aware"
|
|
38
55
|
],
|
|
39
|
-
"homepage": "https://
|
|
56
|
+
"homepage": "https://sverklo.com",
|
|
40
57
|
"repository": {
|
|
41
58
|
"type": "git",
|
|
42
59
|
"url": "git+https://github.com/sverklo/sverklo.git"
|
|
43
60
|
},
|
|
61
|
+
"bugs": {
|
|
62
|
+
"url": "https://github.com/sverklo/sverklo/issues"
|
|
63
|
+
},
|
|
64
|
+
"author": "Sverklo (https://sverklo.com)",
|
|
44
65
|
"license": "MIT",
|
|
45
66
|
"engines": {
|
|
46
67
|
"node": ">=20"
|