GitNexus 把任意代码仓库索引成知识图谱,再通过 MCP 把图谱暴露给 Cursor、Claude Code、Codex 等 AI 编程代理,让模型在改一个函数前就能拿到完整的调用链、依赖图和爆炸半径,而不是靠 RAG 摸瞎猜。CLI 走 Tree-sitter 原生绑定 + LadybugDB 本地索引;Web UI 走 Tree-sitter WASM + LadybugDB WASM 在浏览器里跑,代码不出本地。
来源: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.mdscan → structure → markdown/cobol → parse → routes/tools/orm → crossFile → mro → communities → processes,每一段在 pipeline-phases/ 下是一个独立 phase 文件,runner.ts 用 Kahn 拓扑排序校验依赖、所有阶段共享同一个 KnowledgeGraph 累加器。新加阶段只要写一个 PipelinePhase
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 语言矩阵query 是 BM25 + 向量 + RRF 融合的进程分组搜索;impact 给上下游影响 + depth 分组 + 置信度;context 给某个符号的 360° 视图;detect_changes 把 git diff 映射到受影响进程;rename 是图辅助多文件改名带 dry_run;cypher 直接对底层图跑查询。多仓时通过 @groupName 路由 + Contract Bridge 跨服务追执行流。
来源:README + ARCHITECTURE.md每个 gitnexus analyze 把索引存进 .gitnexus/(仓库本地,gitignored),并在 ~/.gitnexus/registry.json 里注册路径指针。MCP 服务启动时读 registry,连接池里 LadybugDB 连接按需懒打开、5 分钟无活动驱逐、最多 5 个并发。Cursor / Claude Code 一次 setup 就能在所有项目用,单仓时 repo 参数可省略。
来源:README + ARCHITECTURE.mdCall-Resolution DAG(6 阶段、有 LanguageProvider hook)是 legacy 路径;Scope-Resolution Pipeline(registry-primary、加一种语言只需实现 ScopeResolver 接口 + 两处注册)是新路径。当前 Python、C# 走新路径,其余语言走旧路径,CI 跑 ci-scope-parity.yml 强制两条路径在节点 id、edge reason、confidence 三个维度等价。
来源:ARCHITECTURE.mdcommunities 阶段用 Graphology 跑 Leiden 算法把符号聚类成功能模块;processes 阶段从 entry point 出发追执行流。query 工具返回结果时按进程分组,配合 cohesion 分数和 step_count,让 AI 代理直接拿到「这是哪个流程的第几步」而不是一堆散乱的符号。--skills 还会按社区生成 .claude/skills/generated/ 下的 SKILL.md 给 Claude Code。
来源:README + ARCHITECTURE.mdGHCR 和 Docker Hub 双发布、同一 build digest,每个 stable 镜像由 docker.yml 工作流的 GitHub OIDC 身份做 Cosign 无密钥签名并附 SLSA provenance + SBOM。仓库直接给出 cosign verify 的正则模式锁定 tag ref,并提供 Sigstore policy-controller 的 ClusterImagePolicy 让 K8s 管理员在 admission 阶段拒绝未签名镜像。
来源:READMECLI 端整套链路(解析、向量库、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.mdMonorepo 三包: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中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
tree-sitter(14 种语言原生绑定 + WASM 双形态)@ladybugdb/core 0.15(嵌入式图数据库 + 向量扩展,…graphology + graphology-indices(Leid…@huggingface/transformers + onnxrunt…@modelcontextprotocol/sdk(双 framing …Sigma.js + Graphology(WebGL 大图渲染,Web…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.mdpackage.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.mdGitNexus 是目前少见的「真正把代码理解做成图、再把图做成 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 的迁移完成度——双解析器并行只是过渡期,等所有语言迁完,新加语言的成本会明显降低。
来源:综合分析