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
|`queries.js`| Query functions: symbol search, file deps, impact analysis, diff-impact; `SYMBOL_KINDS` constant defines all node kinds|
46
46
|`embedder.js`| Semantic search with `@huggingface/transformers`; multi-query RRF ranking |
47
47
|`db.js`| SQLite schema and operations (`better-sqlite3`) |
48
48
|`mcp.js`| MCP server exposing graph queries to AI agents |
@@ -60,6 +60,7 @@ JS source is plain JavaScript (ES modules) in `src/`. No transpilation step. The
60
60
- Platform-specific prebuilt binaries published as optional npm packages (`@optave/codegraph-{platform}-{arch}`)
61
61
- WASM grammars are built from devDeps on `npm install` (via `prepare` script) and not committed to git — used as fallback when native addon is unavailable
62
62
-**Language parser registry:**`LANGUAGE_REGISTRY` in `parser.js` is the single source of truth for all supported languages — maps each language to `{ id, extensions, grammarFile, extractor, required }`. `EXTENSIONS` in `constants.js` is derived from the registry. Adding a new language requires one registry entry + extractor function
63
+
-**Node kinds:**`SYMBOL_KINDS` in `queries.js` lists all valid kinds: `function`, `method`, `class`, `interface`, `type`, `struct`, `enum`, `trait`, `record`, `module`. Language-specific types use their native kind (e.g. Go structs → `struct`, Rust traits → `trait`, Ruby modules → `module`) rather than mapping everything to `class`/`interface`
63
64
-`@huggingface/transformers` and `@modelcontextprotocol/sdk` are optional dependencies, lazy-loaded
64
65
- Non-required parsers (all except JS/TS/TSX) fail gracefully if their WASM grammar is unavailable
65
66
- Import resolution uses a 6-level priority system with confidence scoring (import-aware → same-file → directory → parent → global → method hierarchy)
| Fully local / no telemetry |**Yes**| Yes | Yes | Yes | Partial | Yes |**Yes**|
61
+
| Free & open source |**Yes**| Yes | Yes | Yes | Partial | Archived | No |
62
62
63
63
### What makes codegraph different
64
64
65
65
|| Differentiator | In practice |
66
66
|---|---|---|
67
67
|**🔬**|**Function-level, not just files**| Traces `handleAuth()` → `validateToken()` → `decryptJWT()` and shows 14 callers across 9 files break if `decryptJWT` changes |
68
-
|**🌐**|**Multi-language, one CLI**| JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + Terraform in a single graph — no juggling Madge, pyan, and cflow |
68
+
|**🌐**|**Multi-language, one CLI**| JS/TS + Python + Go + Rust + Java + C# + PHP + Ruby + HCL in a single graph — no juggling Madge, pyan, and cflow |
69
69
|**🤖**|**AI-agent ready**| Built-in [MCP server](https://modelcontextprotocol.io/) — AI assistants query your graph directly via `codegraph fn <name>`|
70
70
|**💥**|**Git diff impact**|`codegraph diff-impact` shows changed functions, their callers, and full blast radius — ships with a GitHub Actions workflow |
71
71
|**🔒**|**Fully local, zero telemetry**| No accounts, no API keys, no cloud, no data exfiltration — Apache-2.0, free forever |
@@ -88,6 +88,7 @@ Many tools in this space are cloud-based or SaaS — meaning your code leaves yo
88
88
|[Understand](https://scitools.com/)| Deep multi-language static analysis | $100+/month per seat, proprietary, GUI-only, no CI or AI integration |
89
89
|[Snyk Code](https://snyk.io/)| AI-powered security scanning | Cloud-based — code sent to Snyk servers for analysis, not a dependency graph tool |
90
90
|[pyan](https://github.com/Technologicat/pyan) / [cflow](https://www.gnu.org/software/cflow/)| Function-level call graphs | Single-language each (Python / C only), no persistence, no queries |
91
+
|[GitNexus](https://gitnexus.dev/)| Function-level graph with hybrid search and MCP | PolyForm Noncommercial license, no watch mode, no cycle detection, no CI workflow |
91
92
92
93
---
93
94
@@ -228,7 +229,7 @@ codegraph mcp # Start MCP server for AI assistants
0 commit comments