You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -180,14 +180,17 @@ Ranked by weighted score across 6 dimensions (each 1–5):
180
180
181
181
| Strength | Details |
182
182
|----------|---------|
183
-
|**Always-fresh graph (incremental rebuilds)**| File-level MD5 hashing means only changed files are re-parsed. Change 1 file in a 3,000-file project → rebuild in under a second. No other tool in this space offers this. Competitors re-index everything from scratch — making them unusable in commit hooks, watch mode, or agent-driven loops |
183
+
|**Always-fresh graph (incremental rebuilds)**| Three-tier change detection (journal → mtime+size → hash) means only changed files are re-parsed. Change 1 file in a 3,000-file project → rebuild in under a second. No other tool in this space offers this. Competitors re-index everything from scratch — making them unusable in commit hooks, watch mode, or agent-driven loops |
184
+
|**Qualified call resolution**| Import-aware resolution distinguishes method calls (`obj.method()`) from standalone function calls, filters 28+ built-in receivers (`console`, `Math`, `JSON`, `Array`, `Promise`, etc.), deduplicates edges, and respects import scope. A call to `foo()` only resolves to functions actually imported or in-scope — eliminating the false positives that plague tree-sitter-based tools. Confidence scoring (1.0 → 0.5) on every edge lets agents trust the graph |
185
+
|**AI-optimized compound commands**|`context` returns source + deps + callers + signature + related tests for a function in one call. `explain` gives structural summaries of files (public API, internals, data flow) or functions without reading the source. These save AI agents 50-80% of the token budget they'd otherwise spend navigating code. No competitor offers purpose-built compound context commands |
184
186
|**Zero-cost core, LLM-enhanced when you choose**| The full graph pipeline (parse, resolve, query, impact analysis) runs with no API keys, no cloud, no cost. LLM features (richer embeddings, semantic search) are an optional layer on top — using whichever provider the user already works with. Competitors either require cloud APIs for core features (code-graph-rag, autodev-codebase, mcp-code-graph) or offer no AI enhancement at all (CKB, axon). Nobody else offers both modes in one tool |
185
187
|**Data goes only where you send it**| Your code reaches exactly one place: the AI agent you already chose (via MCP). No additional third-party services, no surprise cloud calls. Competitors like code-graph-rag, autodev-codebase, mcp-code-graph, and Claude-code-memory send your code to additional AI providers beyond the agent you're using |
186
188
|**Dual engine architecture**| Only project with native Rust (napi-rs) + automatic WASM fallback. Others are pure Rust (narsil-mcp, codegraph-rust) OR pure JS/Python — never both |
187
-
|**Standalone CLI + MCP**| Full CLI experience (`diff-impact`, `cycles`, `map`, `fn`, `deps`, `search`) alongside MCP server. Many competitors are MCP-only (narsil-mcp, code-graph-mcp, CodeGraphMCPServer) with no standalone query interface |
189
+
|**Standalone CLI + MCP**| Full CLI experience (`context`, `explain`, `where`, `fn`, `diff-impact`, `map`, `deps`, `search`, `structure`, `hotspots`) alongside 17-tool MCP server. Many competitors are MCP-only (narsil-mcp, code-graph-mcp, CodeGraphMCPServer) with no standalone query interface |
188
190
|**Single-repo MCP isolation**| Security-conscious default: tools have no `repo` property unless `--multi-repo` is explicitly enabled. Most competitors default to exposing everything |
189
191
|**Zero-dependency deployment**|`npm install` and done. No Docker, no external databases, no Python, no SCIP toolchains, no JVM. Published platform-specific binaries (`@optave/codegraph-{platform}-{arch}`) resolve automatically. Joern requires JDK 21, cpg requires Gradle + language-specific deps, codegraph-rust requires SurrealDB + LSP servers |
190
-
|**Import resolution depth**| 6-level priority system with confidence scoring — more sophisticated than most competitors' resolution |
192
+
|**Structure & quality analysis**|`structure` shows directory cohesion scores, `hotspots` finds files with extreme fan-in/fan-out/density, `stats` includes a graph quality score (0-100) with false-positive warnings. These give agents architectural awareness without requiring external tools |
193
+
|**Callback pattern extraction**| Extracts symbols from Commander `.command().action()` (as `command:build`), Express route handlers (as `route:GET /api/users`), and event emitter listeners (as `event:data`). No competitor extracts symbols from framework callback patterns |
191
194
192
195
---
193
196
@@ -201,7 +204,7 @@ Ranked by weighted score across 6 dimensions (each 1–5):
-**Feature breadth**: 90 MCP tools vs our ~10; covers taint analysis, SBOM, license compliance, control flow graphs, data flow analysis
207
+
-**Feature breadth**: 90 MCP tools vs our 17; covers taint analysis, SBOM, license compliance, control flow graphs, data flow analysis
205
208
-**Language count**: 32 languages (including Verilog, Fortran, PowerShell, Nix) vs our 11
206
209
-**Security analysis**: vulnerability scanning with OWASP/CWE coverage — we have no security features
207
210
-**Dead code detection**: built-in — we lack this
@@ -226,7 +229,7 @@ Ranked by weighted score across 6 dimensions (each 1–5):
226
229
227
230
### vs CKB (#6, 59 stars)
228
231
-**Indexing accuracy**: SCIP provides compiler-grade cross-file references (type-aware), fundamentally more accurate than tree-sitter for supported languages
229
-
-**Compound operations**: `explore`/`understand`/`prepareChange` batch multiple queries into one call — 83% token reduction, 60-70% fewer tool calls
232
+
-**Compound operations**: `explore`/`understand`/`prepareChange` batch multiple queries into one call — 83% token reduction. *(Gap narrowed: our `context` and `explain` commands now serve the same purpose, returning full function context or file summaries in one call)*
230
233
-**CODEOWNERS + secret scanning**: enterprise features we lack entirely
231
234
232
235
### vs GitNexus (#7)
@@ -255,41 +258,41 @@ Ranked by weighted score across 6 dimensions (each 1–5):
255
258
256
259
### vs colbymchenry/codegraph (#20, 165 stars)
257
260
-**Naming competitor**: same name, same tech stack (tree-sitter + SQLite + MCP + Node.js) — marketplace confusion risk
258
-
-**Published benchmarks**: 67% fewer tool calls and measurable Claude Code token reduction — compelling marketing angle we lack
261
+
-**Published benchmarks**: 67% fewer tool calls and measurable Claude Code token reduction — compelling marketing angle we lack. *(Gap narrowed: our `context` and `explain` compound commands now provide similar token savings by batching multiple queries into one call)*
259
262
-**One-liner setup**: `npx @colbymchenry/codegraph` with interactive installer auto-configures Claude Code
260
263
261
264
---
262
265
263
266
## Features to Adopt — Priority Roadmap
264
267
265
268
### Tier 1: High impact, low effort
266
-
| Feature | Inspired by | Why |
267
-
|---------|------------|-----|
268
-
|**Dead code detection**| narsil-mcp, axon, codexray, CKB | We have the graph — find nodes with zero incoming edges (minus entry points/exports). Agents constantly ask "is this used?" |
269
-
|**Fuzzy symbol search**| arbor | Add Levenshtein/Jaro-Winkler to `fn` command. Currently requires exact match |
270
-
|**Expose confidence scores**| arbor | Already computed internally in import resolution — just surface them |
271
-
|**Shortest path A→B**| codexray, arbor | BFS on existing edges table. We have `fn` for single chains but no A→B pathfinding |
269
+
| Feature | Inspired by | Why | Status |
270
+
|---------|------------|-----|--------|
271
+
|**Dead code detection**| narsil-mcp, axon, codexray, CKB | We have the graph — find nodes with zero incoming edges (minus entry points/exports). Agents constantly ask "is this used?" | TODO |
272
+
|~~**Fuzzy symbol search**~~| arbor |~~Add Levenshtein/Jaro-Winkler to `fn` command. Currently requires exact match~~|**DONE** — `fn` now has relevance scoring (exact > prefix > word-boundary > substring) with fan-in tiebreaker, plus `--file` and `--kind` filters|
273
+
|~~**Expose confidence scores**~~| arbor |~~Already computed internally in import resolution — just surface them~~|**DONE** — confidence scores stored on every call edge, surfaced in `stats` graph quality score|
274
+
|**Shortest path A→B**| codexray, arbor | BFS on existing edges table. We have `fn` for single chains but no A→B pathfinding | TODO |
272
275
273
276
### Tier 2: High impact, medium effort
274
-
| Feature | Inspired by | Why |
275
-
|---------|------------|-----|
276
-
|**Optional LLM provider integration**| code-graph-rag, autodev-codebase | Bring-your-own provider (OpenAI, etc.) for richer embeddings and AI-powered search. Enhancement layer only — core graph never depends on it. No other tool offers both zero-cost local and LLM-enhanced modes in one package |
277
-
|**Compound MCP tools**| CKB, colbymchenry/codegraph |`explore`/`understand` meta-tools that batch deps + fn + map into single responses. Biggest token-savings opportunity. colbymchenry shows 67% fewer tool calls|
278
-
|**Token counting on responses**| glimpse, arbor | tiktoken-based counts so agents know context budget consumed |
279
-
|**Node classification**| arbor | Auto-tag Entry Point / Core / Utility / Adapter from in-degree/out-degree patterns |
280
-
|**TF-IDF lightweight search**| codexray | SQLite FTS5 + TF-IDF as a middle tier (~50MB) between "no search" and full transformers (~500MB) |
|**Formal code health metrics**| code-health-meter | Cyclomatic complexity, Maintainability Index, Halstead metrics per function — we already parse the AST |
277
+
| Feature | Inspired by | Why | Status |
278
+
|---------|------------|-----|--------|
279
+
|**Optional LLM provider integration**| code-graph-rag, autodev-codebase | Bring-your-own provider (OpenAI, etc.) for richer embeddings and AI-powered search. Enhancement layer only — core graph never depends on it. No other tool offers both zero-cost local and LLM-enhanced modes in one package | TODO |
280
+
|~~**Compound MCP tools**~~| CKB, colbymchenry/codegraph |~~`explore`/`understand` meta-tools that batch deps + fn + map into single responses~~|**DONE** — `context` returns source + deps + callers + signature + tests in one call; `explain` returns structural summaries of files or functions|
281
+
|**Token counting on responses**| glimpse, arbor | tiktoken-based counts so agents know context budget consumed | TODO |
282
+
|**Node classification**| arbor | Auto-tag Entry Point / Core / Utility / Adapter from in-degree/out-degree patterns | TODO |
283
+
|**TF-IDF lightweight search**| codexray | SQLite FTS5 + TF-IDF as a middle tier (~50MB) between "no search" and full transformers (~500MB) | TODO |
284
+
|**OWASP/CWE pattern detection**| narsil-mcp, CKB | Security pattern scanning on the existing AST — hardcoded secrets, SQL injection patterns, XSS | TODO |
285
+
|**Formal code health metrics**| code-health-meter | Cyclomatic complexity, Maintainability Index, Halstead metrics per function — we already parse the AST | TODO |
283
286
284
287
### Tier 3: High impact, high effort
285
-
| Feature | Inspired by | Why |
286
-
|---------|------------|-----|
287
-
|**Interactive HTML visualization**| autodev-codebase, CodeVisualizer |`codegraph viz` → opens interactive vis.js/Cytoscape.js graph in browser |
288
-
|**Git change coupling**| axon | Analyze git history for files that always change together — enhances `diff-impact`|
289
-
|**Community detection**| axon, GitNexus, CodeGraphMCPServer | Leiden/Louvain algorithm to discover natural module boundaries vs actual file organization |
|**Dataflow analysis**| codegraph-rust | Define/use chains and flows_to/returns/mutates edges — major analysis depth increase |
292
-
|**Architecture boundary rules**| codegraph-rust, stratify | User-defined rules for allowed/forbidden dependencies between modules |
288
+
| Feature | Inspired by | Why | Status |
289
+
|---------|------------|-----|--------|
290
+
|**Interactive HTML visualization**| autodev-codebase, CodeVisualizer |`codegraph viz` → opens interactive vis.js/Cytoscape.js graph in browser | TODO |
291
+
|**Git change coupling**| axon | Analyze git history for files that always change together — enhances `diff-impact`| TODO |
292
+
|**Community detection**| axon, GitNexus, CodeGraphMCPServer | Leiden/Louvain algorithm to discover natural module boundaries vs actual file organization | TODO |
293
+
|**Execution flow tracing**| axon, GitNexus, code-context-mcp | Framework-aware entry point detection + BFS flow tracing | TODO |
294
+
|**Dataflow analysis**| codegraph-rust | Define/use chains and flows_to/returns/mutates edges — major analysis depth increase | TODO |
295
+
|**Architecture boundary rules**| codegraph-rust, stratify | User-defined rules for allowed/forbidden dependencies between modules | TODO |
0 commit comments