目录
一句话介绍
GitNexus 是一个零服务端的代码智能引擎,它把你的代码仓库变成一张可交互的知识图谱,让 AI Agent(Cursor、Claude Code、Windsurf 等)真正理解代码的依赖关系、调用链和执行流——而不是靠”猜”。
GitHub: https://github.com/abhigyanpatwari/GitNexus
⭐ 7.3k Stars · 🍴 756 Forks · TypeScript
1 它解决了什么问题?
我们每天都在用 Cursor、Claude Code 这类 AI 编程工具,但它们有一个隐藏的致命缺陷:
AI 修改了
UserService.validate(),却完全不知道有 47 个函数依赖它的返回值类型,于是 breaking change 就这样悄无声息地上线了。
这类工具本质上是在做”文本匹配”,依赖 grep 和向量搜索来拼凑上下文。它们没有调用图,追踪不了”谁调用了这个函数”,也无法在改动前评估影响范围。
GitNexus 的解法很直接:在索引阶段就把代码的结构关系全部预计算好——函数调用链、模块依赖、类继承、社区聚类——存进图数据库,让 AI 每次查询时一次性拿到完整上下文,而不是靠 10 次往返查询来拼凑答案。
2 两种使用方式
GitNexus 提供两套完全独立的运行模式,共享同一套索引流水线。
方式一:Web UI(零安装,即开即用)
直接访问 gitnexus.vercel.app,拖入一个代码仓库的 ZIP 文件,就能得到:
- 可交互的知识图谱可视化(WebGL 渲染)
- 内置 Graph RAG Agent,支持自然语言提问
- 带来源引用的 AI 回答(
[[file:line]]格式)
背后魔法:整套 parsing、图数据库、向量搜索全部跑在浏览器里,通过 WebAssembly 实现,代码从不离开你的电脑。
方式二:CLI + MCP Server(接入 AI 编辑器)
这是更强大的模式,把 GitNexus 变成你的 AI 编辑器的”神经系统”。
|
1 2 3 4 5 6 7 8 9 |
# 第一步:全局安装 npm install -g gitnexus # 第二步:配置编辑器(一次性,自动检测 Cursor/Claude Code/Windsurf) gitnexus setup # 第三步:进入你的项目目录,一键索引 cd your-project npx gitnexus analyze |
就这三步。analyze 命令会:
- 索引整个代码库并构建知识图谱
- 在
.gitnexus/目录存储持久化的 KuzuDB 数据库 - 自动生成
AGENTS.md/CLAUDE.md上下文文件 - 为你的编辑器注册 MCP 工具
之后 Cursor、Claude Code 等工具就能通过 MCP 协议查询这个知识图谱,获取结构化的代码上下文。
3 快速搭建本地 Demo
如果你想在本地跑起来 Web UI,只需:
|
1 2 3 4 |
git clone https://github.com/abhigyanpatwari/gitnexus.git cd gitnexus/gitnexus-web npm install npm run dev |
打开 http://localhost:5173,拖入任意项目的 ZIP 文件,等待索引完成(进度条会显示 7 个阶段),然后就可以:
- 在图谱上点击节点,查看函数的调用关系
- 在聊天框提问:”哪些模块依赖 AuthService?”
- 查看带精确文件行号引用的 AI 回答
本地 Backend 模式(处理大型仓库):
|
1 2 3 4 5 6 7 8 |
# 先用 CLI 索引本地项目 gitnexus analyze /path/to/your/project # 启动本地 HTTP 服务 gitnexus serve # 再打开 Web UI,它会自动检测到本地服务器 # 无需重新上传,直接浏览所有已索引的仓库 |
4 底层架构原理
4.1 整体架构
GitNexus 有两套运行时环境,但共享同一套核心逻辑:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
┌─────────────────────────────────────────────────────────┐ │ Web UI (浏览器) │ │ Tree-sitter WASM + KuzuDB WASM + In-browser 向量 │ │ React 18 / Sigma.js (WebGL) / Vite │ └────────────────────┬────────────────────────────────────┘ │ Bridge Mode (可选) ┌────────────────────▼────────────────────────────────────┐ │ CLI + MCP Server (Node.js) │ │ KuzuDB 本地存储 + MCP Protocol + HTTP API │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────────┐ │ │ │ Cursor │ │Claude Code│ │ Windsurf / OpenCode │ │ │ └──────────┘ └──────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────────────┘ |
4.2 七阶段索引流水线
这是 GitNexus 的核心——把源代码变成结构化知识图谱的过程:
| 阶段 | 进度 | 做什么 |
|---|---|---|
| Phase 1: Extract | 0–15% | 解压 ZIP,收集文件路径 |
| Phase 2: Structure | 15–30% | 构建目录树,创建 CONTAINS 边 |
| Phase 3: Parse | 30–55% | 加载 Tree-sitter WASM,生成 AST,提取符号表 |
| Phase 4: Imports | 55–65% | 分析 import 语句,解析路径,创建 IMPORTS 边 |
| Phase 5: Calls + Heritage | 65–80% | 解析函数调用和继承关系,创建带置信度的 CALLS / EXTENDS 边 |
| Phase 6: Communities | 80–90% | 用 Leiden 算法做社区检测,发现功能聚类 |
| Phase 7: Processes | 90–100% | 用 BFS 追踪入口点,识别执行流 |
最终产出一个 KuzuDB 图数据库,包含所有节点(文件、函数、类)和带权重的边。
4.3 核心技术选型
Tree-sitter(AST 解析)
传统的文本分割会破坏代码的语义结构。GitNexus 用 Tree-sitter 把每个文件解析成 AST,以函数声明、类定义、模块导出为单位切块,每个 chunk 携带完整的符号名、文件路径、行号元数据。目前支持 9 种语言:TypeScript、JavaScript、Python、Java、C、C++、C#、Go、Rust。
KuzuDB(图 + 向量一体化)
大多数 Graph RAG 系统需要两套数据库:向量库做语义搜索,图数据库做关系遍历。KuzuDB 原生支持 HNSW 向量索引,可以在一条 Cypher 查询里同时做语义检索和图遍历:
|
1 2 3 4 5 6 7 |
-- 语义搜索 + 图遍历,一次查询完成 CALL QUERY_VECTOR_INDEX('CodeEmbedding', 'code_embedding_idx', $queryVector, 20) YIELD node AS emb, distance WITH emb, distance WHERE distance < 0.4 MATCH (n:Function {id: emb.nodeId})<-[:CodeRelation {type: 'CALLS'}]-(caller:Function) RETURN n.name, caller.name, distance ORDER BY distance |
预计算 vs 实时探索
这是 GitNexus 和传统 Graph RAG 最本质的区别:
|
1 2 3 4 5 |
传统 Graph RAG: 问题 → LLM 收到原始图边 → Query1 → Query2 → Query3 → Query4 → 4次以上才有答案 GitNexus Smart Tools: 问题 → 工具查预计算结构 → 一次调用返回完整上下文(含依赖链、置信度、影响范围) |
索引时预计算的内容包括:
- CALLS 边置信度:0.7–0.95,直接调用置信高,动态调用置信低
- IMPORTS 边置信度:0.85–0.95
- 影响深度分层:Depth 1(必然 break)/ Depth 2(可能受影响)
- 功能聚类:Leiden 算法自动发现模块边界
混合检索(BM25 + 向量 + RRF)
查询时结合三种策略:关键词匹配(BM25)、语义相似度(向量)、图关系扩展(1-hop Cypher),用 Reciprocal Rank Fusion 融合排序,确保不遗漏上下文。
4.4 MCP 工具集
GitNexus 通过 MCP 协议向 AI 编辑器暴露这些工具:
overview— 获取仓库整体架构摘要explore— 360° 查看任意符号(调用者、被调用者、所在模块)impact— 计算修改某符号的”爆炸半径”(blast radius)search— 混合语义搜索cypher— 直接执行 Cypher 图查询rename— 协调多文件重命名
5 和同类工具的对比
| GitNexus | DeepWiki | Cursor/Cline | |
|---|---|---|---|
| 核心能力 | 代码分析(关系图) | 代码理解(文档化) | 代码编辑 |
| 数据隐私 | 本地/浏览器,零上传 | 云端处理 | 云端处理 |
| 调用图 | ✅ 完整追踪 | ❌ | ❌ |
| 影响分析 | ✅ 带置信度 | ❌ | ❌ |
| MCP 集成 | ✅ 原生支持 | ❌ | N/A |
| 成本 | 免费开源 | 免费 | 订阅制 |
6 适合哪些场景
接手陌生大型项目:拖入 ZIP,立刻可视化架构,找到核心模块和高耦合节点。
大规模重构前的风险评估:修改某个核心函数前,先跑一下 impact 工具,知道会影响哪些模块、哪些是高风险路径。
让 AI 编辑器更靠谱:接入 MCP 后,即使是较小的模型也能获得完整的架构上下文,减少幻觉和 breaking change。
代码安全审计:通过 Cypher 查询找到死代码、循环依赖、违规调用链。
7 总结
GitNexus 做了一件朴实但很有价值的事:它不是又一个 AI 聊天工具,而是在 AI 和代码库之间建了一个高质量的”中间层”。通过把代码结构预计算成图,它让 AI 从”文本搜索”升级到了”关系推理”。
对于任何在生产环境使用 AI 编程工具的团队来说,这个工具值得认真试一试。
项目地址:https://github.com/abhigyanpatwari/GitNexus
在线体验:https://gitnexus.vercel.app




