* fix: recover missed test scenarios Run the full core test inventory and retrieve identical callback bodies across setup contexts. Separate assertion evidence from context and retain conservative input, path and runtime provenance checks. Restore prepared test inputs and report missing runtime collection. Add the audited recall corpus and inventory regressions. * Address PR review feedback (#3743) Correct counted nouns in the inventory report, document fully skipped modules, and include unhandled runner errors in the incomplete-collection warning. * Address PR review feedback (#3743) Force-stage explicit temporary fixtures despite inherited Git ignores, and isolate recorded-file collection-error accounting in the inventory tests. * fix(review): simplify selection and guard mixed artifacts * feat(test): detect fixture consolidation opportunities Capture source inputs used by integration tests and compare fixture clones, executed blocks, and assertion subjects and values. Report partial overlaps with the unique checks and fixture spans that consolidation must preserve. Keep cross-language structural suggestions separate from observed equality. Use pinned jscpd with direct pair verification when longer representatives hide partial clones. Retain capture gaps and native/worker limitations. Validate with 1,245 detector regressions, 28 pipeline pair controls, and 12 manually labeled comparisons. Scan 30,698 core cases and find 3,111 opportunity groups; exclude the capture's 103 failed and 89 skipped cases. * Fix scenario-map review findings (#3743) Resolve assertion aliases by lexical binding and normalize duplicate static object keys. Capture fixture files through checked descriptors with bounded reads and guaranteed cleanup. * fix: address test duplicate audit false signals * refactor(test): reuse assertion binding analysis Reuse lexical bindings within each evidence extraction while retaining assertion-specific offsets and expansion limits. Deduplicate fixture coverage endpoints numerically without string conversion. Preserve complete assertion evidence across 29,286 static instances and weighted coverage across 10,000 generated interval cases. * Fix scenario-map review findings (#3743) Bind consolidation evidence to the assertion call accepted by the check extractor, so unsupported same-line calls cannot supply incorrect subjects or expectations. Keep source provenance private and serialized checks intact. Exercise omitted plugins alongside instrumented Vitest runs. * fix: retain input-shaped scenario controls (#3743) Compare assertion subject structure separately from exact input-bearing assertion keys, so changing literal inputs retains table-row and boundary classification. Preserve selectors, callee identity and regex values. Keep the control expectations unchanged. Add regressions for literal inputs, queried subjects and nested regex arguments; bump the fingerprint engine version so reclassified findings resurface. * test: give scenario cases unique titles Include the parameterized case index so repeated input expressions and truncated audit paths cannot collide in the CI execution inventory. * fix: scope assertion subjects to their bindings Prevent same-named declarations in different files or scopes from becoming exact assertion matches. Preserve same-binding consolidation and advance the fingerprint engine to version 5. * fix: raise full-suite planning heap budget The 30,953-case replay aborts at the default 4 GiB heap. Give only the Plan step 8 GiB and document the same local invocation. The identical four coverage slices complete in 4m34s at 8.2 GiB peak RSS, retaining all 116,409 candidate pairs. * fix: stream full-suite scenario reports The full inventory produces a 663 MiB report, exceeding V8's single-string limit. Write records incrementally and stream only required fields when reading baselines and publishing issue updates. Replay preserves all 116,398 pairs from 30,953 collected cases. The report remains partial when the trace run fails. * fix: preserve test lifecycles during capture Forced test repeats changed cache and file state. Capture ordinary runs, retain runnable siblings during tracing, and keep retry-bearing files inconclusive. Preserve failure details and mark failed captures partial. Use the original JSON serializer so test mocks cannot break fixture reads. * fix: limit trace capture to candidates Keep sibling tests in both passes for suite state, while recording only candidate task IDs. This prevents unrelated timing checks and large corpus tests from failing under tracing. * ci: budget full-suite trace collection * fix: address scenario-map feedback (#3743) --------- Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com> |
||
|---|---|---|
| .agents/plugins | ||
| .claude | ||
| .claude-plugin | ||
| .cursor | ||
| .devcontainer | ||
| .factory-plugin | ||
| .gemini/commands | ||
| .github | ||
| .history/gitnexus | ||
| .husky | ||
| .sisyphus/drafts | ||
| deploy/kubernetes | ||
| docs | ||
| Documentation | ||
| eslint-rules | ||
| eval | ||
| gitnexus | ||
| gitnexus-claude-plugin | ||
| gitnexus-cursor-integration | ||
| gitnexus-factory-plugin | ||
| gitnexus-shared | ||
| gitnexus-test-setup | ||
| gitnexus-web | ||
| pr-swarm-review | ||
| .cursorrules | ||
| .dockerignore | ||
| .env.example | ||
| .git-blame-ignore-revs | ||
| .gitattributes | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .gitleaksignore | ||
| .mcp.json | ||
| .prettierignore | ||
| .prettierrc | ||
| .vercelignore | ||
| .windsurfrules | ||
| AGENTS.md | ||
| ARCHITECTURE.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| compound-engineering.local.md | ||
| CONTRIBUTING.md | ||
| docker-compose.yaml | ||
| docker-server.mjs | ||
| docker-server.test.mjs | ||
| Dockerfile.cli | ||
| Dockerfile.web | ||
| DoD.md | ||
| eslint.config.mjs | ||
| GUARDRAILS.md | ||
| LICENSE | ||
| llms.txt | ||
| MIGRATION.md | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| render.yaml | ||
| RUNBOOK.md | ||
| SECURITY.md | ||
| skills.mdm | ||
| TESTING.md | ||
| type-resolution-roadmap.md | ||
| type-resolution-system.md | ||
GitNexus
GitNexus indexes a codebase into a knowledge graph of symbols, calls, dependencies and execution flows. Use it through your coding agent's MCP tools, the CLI, or a web graph explorer.
Quick start · Documentation · Web UI · Discord
https://github.com/user-attachments/assets/172685ba-8e54-4ea7-9ad1-e31a3398da72
Quick start
Requires Node.js 22.18+ on 22.x, or 24.11+. See platform requirements for Linux and Windows native dependencies.
# Run from your repository root
npx gitnexus analyze
# Connect your editors once
npx gitnexus setup
analyze builds the index, installs agent skills, registers Claude Code hooks,
and writes AGENTS.md / CLAUDE.md context files. setup configures MCP for your
editors. Use gitnexus analyze --index-only to index without those repository
integration files.
For repeated use, install globally with npm install -g gitnexus.
If installation fails, see troubleshooting.
What you can do
| Task | Tool |
|---|---|
| Find code and related execution flows | query |
| Inspect a symbol's callers and dependencies | context |
| Check what a change could affect | impact |
| Trace a path between two symbols | trace |
| Review the impact of a Git diff | detect_changes |
| Preview and apply a semantic rename | rename |
Ask your agent questions such as “What calls this function?” or “What would this change affect?” Resolution depends on language support and available evidence; check reported ambiguity, index freshness and coverage limits.
Editor setup
gitnexus setup detects Claude Code, Cursor, Codex, Antigravity, Factory Droid,
OpenCode, CodeBuddy and Qoder. Windsurf requires manual MCP configuration.
To select editors:
gitnexus setup -c cursor,codex
See editor setup for the support matrix, manual MCP configuration, hooks and plugin installation.
Everyday commands
gitnexus analyze # Refresh the current repository's index
gitnexus analyze --watch # Reindex as local files change
gitnexus query "authentication" # Search the graph
gitnexus impact UserService --direction upstream
gitnexus status # Check index freshness
gitnexus list # List indexed repositories
gitnexus serve # Serve indexed repositories to the web UI
For multiple concurrent agents, use one gitnexus mcp --http --port 3111 server
and connect clients to http://127.0.0.1:3111/mcp. See the
shared-server instructions.
Web UI
Run gitnexus serve, then open gitnexus.vercel.app.
The UI connects to the backend to browse indexed repositories and use AI chat.
It uses the existing index; no re-upload or re-index is needed.
For Docker, hosted deployments, image verification, or a local frontend, see deployment.
Supported languages
C, C++, C#, COBOL, Dart, Go, Java, JavaScript, Kotlin, Objective-C, PHP, Python, Ruby, Rust, Swift, TypeScript, Vue and Zig have registered providers. Support varies by construct; see the language inventories for measured behavior, exclusions and remaining gaps.
Documentation
| Read | For |
|---|---|
| CLI reference | Commands, indexing flags, watch mode, configuration and shared stores |
| Environment variables · vector tuning | Runtime settings and search tuning |
| MCP reference | All tools, resources, examples, policies and response budgets |
| Editor setup | Supported integrations and manual configuration |
| Deployment | Docker, Render, image signatures and local frontend setup |
| Wiki generation | Model configuration and generated repository documentation |
| Runbook | Index recovery, embeddings and operational troubleshooting |
| Architecture · type resolution | How the indexer and resolution layers work |
| Type-resolution roadmap | Planned work and acceptance criteria |
Security and privacy
The CLI indexes code locally without an LLM. Optional remote embeddings, wiki generation and AI chat use the providers you configure. The web UI accesses the backend it connects to. Review security guidance and deployment authentication before exposing an index to other users.
Development
See CONTRIBUTING.md for setup and pull requests, TESTING.md for validation, and GUARDRAILS.md for repository rules.
Enterprise
GitNexus is available as an enterprise offering — fully managed SaaS or self-hosted deployment. Commercial use of the OSS version is also available with proper licensing.
Enterprise includes:
- PR Review — automated blast radius analysis on pull requests
- Auto-updating Code Wiki — always up-to-date documentation (Code Wiki is also available in OSS)
- Auto-reindexing — knowledge graph stays fresh automatically
- Multi-repo support — unified graph across repositories
- OCaml support — additional language coverage
- Priority feature/language support — request new languages or features
Upcoming: auto regression forensics · end-to-end test generation
👉 Learn more at akonlabs.com — for commercial licensing or enterprise inquiries, ping us on Discord or email founders@akonlabs.com
Community Integrations
Built by the community — not officially maintained, but worth checking out.
| Project | Author | Description |
|---|---|---|
| pi-gitnexus | @tintinweb | GitNexus plugin for pi — pi install npm:pi-gitnexus |
| gitnexus-stable-ops | @ShunsukeHayashi | Stable ops & deployment workflows (Miyabi ecosystem) |
| KiloCode MCP workflow | @oktanishq | Guide to connect GitNexus MCP to Kilo Code and verify tools. |
Have a project built on GitNexus? Open a PR to add it here!
License
PolyForm Noncommercial 1.0.0. Commercial licensing is available through akonlabs.com.
Acknowledgments
- Tree-sitter — AST parsing
- LadybugDB — embedded graph database with vector support (formerly KuzuDB)
- Sigma.js — WebGL graph rendering
- transformers.js — browser ML
- Graphology — graph data structures
- MCP — Model Context Protocol