GitNexus 是什么?

GitNexus 把任意代码仓库索引成知识图谱,再通过 MCP 把图谱暴露给 Cursor、Claude Code、Codex 等 AI 编程代理,让模型在改一个函数前就能拿到完整的调用链、依赖图和爆炸半径,而不是靠 RAG 摸瞎猜。CLI 走 Tree-sitter 原生绑定 + LadybugDB 本地索引;Web UI 走 Tree-sitter WASM + LadybugDB WASM 在浏览器里跑,代码不出本地。

⭐ 40,459 Stars 🍴 4,605 Forks TypeScript 作者: abhigyanpatwari
来源:README + ARCHITECTURE.md 查看 GitHub 仓库 →

为什么值得关注

AI 编程代理目前最大的痛点是「知道这个文件,但不知道它在系统里的位置」——改 UserService.validate() 时不知道有 47 个调用方依赖它的返回类型。GitNexus 用「在索引时预计算结构」的思路解决这件事:Tree-sitter 解析 14 种语言、跨文件解析导入和构造函数推断、Leiden 算法做社区聚类、追执行流,所有结果落到 LadybugDB(embedded 图数据库)里,MCP 工具一次调用就返回带置信度分级的完整影响分析。和 DeepWiki 一类「帮你读代码」工具的本质区别在于:它给的是可被代理直接执行的图查询接口,不是给人看的描述。CLI + MCP 是日常配 AI 编辑器用的、Web UI 是 ZIP 拖进去就能问的快速探索通道。

来源:README + ARCHITECTURE.md

核心功能

12 段 DAG 索引流水线

scan → structure → markdown/cobol → parse → routes/tools/orm → crossFile → mro → communities → processes,每一段在 pipeline-phases/ 下是一个独立 phase 文件,runner.ts 用 Kahn 拓扑排序校验依赖、所有阶段共享同一个 KnowledgeGraph 累加器。新加阶段只要写一个 PipelinePhase 实现,编译期类型安全。

来源:ARCHITECTURE.md
Tree-sitter + 三层名称解析的跨文件调用链

14 种语言(TS/JS/Python/Java/Kotlin/C#/Go/Rust/PHP/Ruby/Swift/C/C++/Dart)走统一的 capture tag(@definition.class、@call.name 等),下游提取代码完全不感知语言。命中按三层置信度:同文件 0.95、import 范围 0.9、全局兜底 0.5;构造函数推断和 self/this 接收者解析在所有语言里都做。

来源:ARCHITECTURE.md + README 语言矩阵
MCP 16 个工具(11 单仓 + 5 跨仓)

query 是 BM25 + 向量 + RRF 融合的进程分组搜索;impact 给上下游影响 + depth 分组 + 置信度;context 给某个符号的 360° 视图;detect_changes 把 git diff 映射到受影响进程;rename 是图辅助多文件改名带 dry_run;cypher 直接对底层图跑查询。多仓时通过 @groupName 路由 + Contract Bridge 跨服务追执行流。

来源:README + ARCHITECTURE.md
全局 registry 让一个 MCP 服务多仓

每个 gitnexus analyze 把索引存进 .gitnexus/(仓库本地,gitignored),并在 ~/.gitnexus/registry.json 里注册路径指针。MCP 服务启动时读 registry,连接池里 LadybugDB 连接按需懒打开、5 分钟无活动驱逐、最多 5 个并发。Cursor / Claude Code 一次 setup 就能在所有项目用,单仓时 repo 参数可省略。

来源:README + ARCHITECTURE.md
RFC #909 双解析器并行(合法 fallback)

Call-Resolution DAG(6 阶段、有 LanguageProvider hook)是 legacy 路径;Scope-Resolution Pipeline(registry-primary、加一种语言只需实现 ScopeResolver 接口 + 两处注册)是新路径。当前 Python、C# 走新路径,其余语言走旧路径,CI 跑 ci-scope-parity.yml 强制两条路径在节点 id、edge reason、confidence 三个维度等价。

来源:ARCHITECTURE.md
Leiden 社区检测 + 进程检测做语义分组

communities 阶段用 Graphology 跑 Leiden 算法把符号聚类成功能模块;processes 阶段从 entry point 出发追执行流。query 工具返回结果时按进程分组,配合 cohesion 分数和 step_count,让 AI 代理直接拿到「这是哪个流程的第几步」而不是一堆散乱的符号。--skills 还会按社区生成 .claude/skills/generated/ 下的 SKILL.md 给 Claude Code。

来源:README + ARCHITECTURE.md
签名容器 + Cosign keyless + Kubernetes Admission 策略

GHCR 和 Docker Hub 双发布、同一 build digest,每个 stable 镜像由 docker.yml 工作流的 GitHub OIDC 身份做 Cosign 无密钥签名并附 SLSA provenance + SBOM。仓库直接给出 cosign verify 的正则模式锁定 tag ref,并提供 Sigstore policy-controller 的 ClusterImagePolicy 让 K8s 管理员在 admission 阶段拒绝未签名镜像。

来源:README
本地优先 + 浏览器内 WASM 双部署

CLI 端整套链路(解析、向量库、embedding)都在本地跑,无网络外发;Web UI 是纯客户端 Vite + React,Tree-sitter 编译成 WASM、LadybugDB 编译成 WASM、HuggingFace transformers.js 跑 WebGPU/WASM 在浏览器内做 Snowflake arctic-embed-xs (384D) embedding,代码不上传服务器,最大约 5k 文件受浏览器内存限制。gitnexus serve 起本地 HTTP 后 Web UI 自动检测、可访问 CLI 已索引的所有仓库。

来源:README + ARCHITECTURE.md

技术架构

Monorepo 三包:gitnexus/(npm 包,CLI + MCP + HTTP API + 索引流水线 + LadybugDB),gitnexus-web/(Vite + React 瘦客户端,所有图查询经由 gitnexus serve 的 HTTP API),gitnexus-shared/(共享 TypeScript 类型)。索引侧是 12 段 DAG 流水线(runner.ts 拓扑排序),每段输出 typed PhaseResult、共写一个 KnowledgeGraph,最后通过 CSV streaming 一次性灌进 .gitnexus/lbug。查询侧三个入口(MCP stdio、Express HTTP、CLI 直读)共用 LocalBackend → lbug-adapter.ts。语言抽象是四层叠加:Tree-sitter S-expression 查询 → LanguageProvider(importSemantics、mroStrategy 等)→ 三层统一名称解析 → 44 节点 / 21 关系类型的统一图 schema。值得注意的两件设计:① SemanticModel 的 write/read 阶段契约用类型系统强制——三阶段写完后 MutableSemanticModel 被收窄成 SemanticModel,所有下游解析在编译期就不可能写入;② 跨文件返回类型沿 SCC 反拓扑序传播(PR #1050),多跳 alias 链如 models.User → service.user → app.user 在一次线性 pass 内塌缩到终态,循环 SCC 在一次 pass 内达到部分不动点而不强行迭代收敛。整体偏复杂——12 阶段流水线 + 双解析器并行 + 三层 cache(chunk-local astCache、cross-phase scopeTreeCache、worker pool 失效)— 但每个复杂度都对应一个真实约束(节点 id 稳定性、worker 不能跨 MessageChannel 传 Tree、解析顺序),不是过度抽象。

来源:ARCHITECTURE.md

项目知识图谱

知识图谱:项目核心节点(中心)+ 核心功能(内环六边形)+ 关键技术依赖(外环 chip) tree-sitter(14 种语言原生绑定 + WASM 双形态)tree-sitter(1… @ladybugdb/core 0.15(嵌入式图数据库 + 向量扩展,前身 KuzuDB)@ladybugdb/cor… graphology + graphology-indices(Leiden 社区检测、图算法)graphology + g… @huggingface/transformers + onnxruntime-node(Snowflake arctic-embed-xs 384D embedding,CLI 走 ONNX、Web 走 WebGPU/WASM)@huggingface/t… @modelcontextprotocol/sdk(双 framing 自适应:Content-Length 给 Codex/OpenCode,newline-delimited 给 Cursor/Claude Code)@modelcontextp… 12 段 DAG 索引流水线 Tree-sitter + 三层名称解析的跨文件调用链Tree-sitter + 三层… MCP 16 个工具(11 单仓 + 5 跨仓)MCP 16 个工具(11 单… 全局 registry 让一个 MCP 服务多仓全局 registry 让一个… RFC #909 双解析器并行(合法 fallback)RFC #909 双解析器并… Leiden 社区检测 + 进程检测做语义分组Leiden 社区检测 + 进… 签名容器 + Cosign keyless + Kubernetes Admission 策略签名容器 + Cosign ke… 本地优先 + 浏览器内 WASM 双部署本地优先 + 浏览器内 W… GitNexus 项目本体 核心功能 关键依赖

中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成

技术栈

语言TypeScript(CLI 与 Web 同源)+ Node.js ≥20 运行时;浏览器侧编译成 WASM框架CLI:Commander + Express + @modelcontextprotocol/sdk + tree-sitter 原生绑定 + @ladybugdb/core;Web:Vite + React 18 + Tailwind v4 + Sigma.js(WebGL 图渲染)+ LangChain ReAct agent(@langchain/openai/anthropic/google-genai/ollama)
tree-sitter(14 种语言原生绑定 + WASM 双形态)@ladybugdb/core 0.15(嵌入式图数据库 + 向量扩展,…graphology + graphology-indices(Leid…@huggingface/transformers + onnxrunt…@modelcontextprotocol/sdk(双 framing …Sigma.js + Graphology(WebGL 大图渲染,Web…
GitHub Actions(docker.yml + release-candidate.yml + ci-scope-parity.yml);GHCR + Docker Hub 双注册表同 digest;Cosign keyless 签名 + SBOM + SLSA provenance;docker-compose 起 gitnexus-server (4747) + gitnexus-web (4173) 两镜像,命名 volume gitnexus-data 持久化全局注册表与索引;Sigstore policy-controller 给 K8s 做 admission enforcement;Vitest 单元 + 集成、Playwright E2E;npm 包按 vX.Y.Z tag 发布、镜像 digest 与 npm 版本字节级一致
来源:package.json + ARCHITECTURE.md + README docker 段

快速上手

# 推荐:一条命令把当前仓库索引、装 skills、注册 Claude Code hooks、生成 AGENTS.md/CLAUDE.md npx gitnexus analyze # 一次性给所有支持的编辑器写 MCP 配置 npx gitnexus setup # 手动配 Claude Code(macOS / Linux) claude mcp add gitnexus -- npx -y gitnexus@latest mcp # 手动配 Cursor(~/.cursor/mcp.json) { "mcpServers": { "gitnexus": { "command": "npx", "args": ["-y", "gitnexus@latest", "mcp"] } } } # 启动 MCP(stdio)—— 一个进程服务所有已索引仓库 gitnexus mcp # 起 HTTP server 给 Web UI(多仓桥接模式) gitnexus serve # Docker 一键起整套(server :4747 + web :4173) docker compose up -d # 让容器能索引宿主机代码 WORKSPACE_DIR=$HOME/code docker compose up -d docker compose exec gitnexus-server gitnexus index /workspace/my-repo # 拉签名验证(防止供应链攻击) cosign verify ghcr.io/abhigyanpatwari/gitnexus:1.6.2 \ --certificate-identity-regexp '^https://github\.com/abhigyanpatwari/GitNexus/\.github/workflows/docker\.yml@refs/tags/v[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$' \ --certificate-oidc-issuer https://token.actions.githubusercontent.com # Web UI 本地开发 git clone https://github.com/abhigyanpatwari/gitnexus.git cd gitnexus/gitnexus-shared && npm install && npm run build cd ../gitnexus-web && npm install npm run dev
来源:README

使用场景

1. 配 Cursor / Claude Code / Codex 做日常开发:改一个共用方法前先 npx gitnexus analyze 一次,让 AI 代理通过 impact 工具拿到爆炸半径,不再发生「改一个 validate 顺手把 47 个调用方搞挂」的事故;适合中大型 TypeScript / Python / Go / Java 团队。 2. PR 预提交评审:用 detect_changes 把 git diff 映射到受影响进程和符号、用 prompt detect_impact 出风险等级,CI 里跑一次比纯文本 diff 评论更可解释;企业版 PR Review 把这块自动化。 3. 多仓 / monorepo 服务调用追踪:gitnexus group create / group sync 抽出 Contract Registry,让跨 repo 的 API → handler → consumer 链路在一张图里查询,单体微服务架构特别值。 4. 不开放代码的快速探索:把 ZIP 拖进 gitnexus.vercel.app(≤5k 文件),代码完全在浏览器内跑 Tree-sitter WASM + LadybugDB WASM,适合开源项目调研、简历项目讲解、新人 onboarding 的 demo 场景。

来源:README + ARCHITECTURE.md

优势与局限

优势

  • 工程完成度极高:14 种语言索引 + 12 段 DAG + 16 个 MCP 工具 + Cosign 签名链 + K8s admission policy + 双注册表零漂移发布,每一块都做到能直接搬到企业生产用。
  • 可扩展性显式做在类型系统里:加一个语言只需实现 ScopeResolver + 两处注册(CI 自动发现),加一段流水线只需新建一个 PipelinePhase(runner 拓扑排序自动接入),不需要改任何共享代码。
  • 稳定性靠双重保险:RFC #909 把新旧解析器并行跑、CI ci-scope-parity.yml 强制节点 id / edge reason / confidence 三个维度等价;MCP 双 framing 适配 Codex 与 Cursor、10MB buffer cap 防 OOM 攻击;overload 用 arity + type-hash 后缀做稳定 id。
  • 性能架构有据可查:~20MB chunk 字节预算控解析峰值内存、Worker Pool + Comlink 并行解析、跨 phase scopeTreeCache 跳过二次解析、SCC 反拓扑序的跨文件类型传播 O(n) 一次塌缩多跳 alias、O(1) WorkspaceResolutionIndex 替换枚举查找。
  • 可测试性明确:单元 + 集成 + Playwright E2E 三层、CHANGELOG 显示 1146+ 测试规模、coverage 自动 ratchet、KuzuDB 时代踩过的 worker 崩溃 / native cleanup hang 都补了 regression。
  • 供应链透明:PolyForm Noncommercial 协议、镜像 digest 与 npm 版本字节级对齐、SBOM + SLSA provenance 全部上链,cosign verify 正则锁到 v* tag ref,被典型供应链攻击的概率压到很低。

局限

  • 可维护性:架构文档把 12 段 DAG + 双解析器 + 4 层语言抽象写得很清楚,但代码量级很大(call-processor、import-processor、scope-resolution 三大块加起来几千行),新贡献者要分清「往 Call-Resolution DAG 加 hook」还是「实现 ScopeResolver」需要先读懂 RFC #909 的迁移状态——上手成本很高。
  • 可扩展性:双解析器并行虽然合理,但是临时态——CHANGELOG 写明「最终所有语言都迁到 scope-resolution 后 reconcileOwnership 变成 no-op」。在迁移完成前,新加语言要在两套体系里同时表现一致,CI parity 才能过。
  • 可测试性:跨语言行为差异(Ruby implicit-self、C# namespace siblings、Python C3 linearization、C++ const 重载)每一种都靠 fixture 校准,CHANGELOG 反复出现某语言 heuristic 跑偏到错误语言、某资源 IDs 因加重载而变化的修复。语言矩阵越大、回归面越大。
  • 稳定性:LadybugDB 是 embedded 单写者,分析进程和 MCP 同时跑会触发数据库 busy(GUARDRAILS.md 列为 Sign);Web UI 受浏览器内存限制约 5k 文件,超过这个量级要切到 backend 模式;overload 节点 id 因 arity + type-hash 后缀变化导致 id 不稳定,重命名场景需要 caller 注意。
  • 性能:CLI 嵌入向量在 50k 节点以上会被自动跳过、首次启用 --embeddings 明显更慢更吃内存;Tree 不能跨 MessageChannel 传,开 worker pool 时 scopeTreeCache 命中率会掉、PROF_SCOPE_RESOLUTION=1 会发 worker-engaged 警告,作者把这条限制写进性能注释里了。
  • 商业可见性:核心代码 PolyForm Noncommercial(不能商用),PR Review、自动重索引、多仓、OCaml 等明显有用的能力都在 akonlabs.com 的企业版里——把 OSS 版当作免费 IDE 助手没问题,做内部代码扫描平台需要单独谈授权。
来源:综合分析(README + ARCHITECTURE.md + GUARDRAILS.md + CHANGELOG)

最新版本

package.json 当前版本 1.6.3(gitnexus npm 包)。GitHub Releases 接口返回空——作者用 git tag 直接发布,最新 tag 是 v1.6.4-rc.13(仓库 tag 列表)。CHANGELOG 最近一次稳定发布是 1.5.3 (2026-04-01):TypeScript / JavaScript MethodExtractor 的共享提取配置(覆盖 abstract、visibility、async/override、装饰器、rest/optional/destructured 参数、返回类型);Azure OpenAI 兼容(max_completion_tokens 替换 max_tokens、跳过部分模型不支持的 temperature);Wiki HTML 注入修复。Unreleased 段记录了把存储从 KuzuDB 迁到 LadybugDB v0.15 的工作(路径 .gitnexus/kuzu → .gitnexus/lbug、向量扩展显式加载)。

来源:package.json + GitHub Tags + CHANGELOG.md

总结评价

GitNexus 是目前少见的「真正把代码理解做成图、再把图做成 AI 代理可调用工具」的开源项目,定位清晰、架构成熟、测试完备、供应链透明,作者 Abhigyan Patwari 用 1.6.x 系列把项目从「能跑」推到「能在企业里部署」。如果你已经在用 Claude Code / Cursor / Codex 写代码、且项目规模超过几千文件,强烈建议先 npx gitnexus analyze 试一次,绝大多数情况下 AI 代理给出的 refactor 计划质量会显著上升;如果是个人小项目(< 500 文件),DeepWiki 之类轻量工具可能更合适,GitNexus 的 12 段流水线和 Leiden 聚类有点杀鸡用牛刀。商用要注意 PolyForm Noncommercial 协议——做内部代码扫描平台或对外 SaaS 都需要先和 akonlabs 谈授权,PR Review、自动重索引、多仓 graph、OCaml 支持都只在企业版。本地部署 / 私有化部署的开发者可以用 docker-compose.yaml 起整套(端口 4747 + 4173,cosign verify 正则锁 v* tag),不会有任何数据外发。中长期建议关注 RFC #909 的迁移完成度——双解析器并行只是过渡期,等所有语言迁完,新加语言的成本会明显降低。

来源:综合分析
透明度声明
本页内容由 AI(大语言模型)基于以下公开材料自动生成:GitHub README、代码目录结构、依赖文件、Release 信息。 分析时间: 2026-04-28 01:43. 质量评分: 100/100.

数据来源:README、GitHub API、依赖文件