GitHub 4.5 万+ Star!GitNexus 把代码仓库变成了 Claude Code / Codex 能查询的知识图谱

最近看 GitNexus,我差点被仓库首页那张关系图带偏,以为它只是一个代码可视化项目。

继续往下翻,发现它把调用关系接进了 MCP。用 Coding Agent 改接口时,可以先查调用方和影响范围,改完再对照当前 diff。代码分散在多个目录、多个仓库里,也不用每次从零拼调用链。

项目介绍

GitNexus 是一个基于 Node.js 的开源代码分析工具。它会在本地解析仓库,提取函数、类、导入、调用、继承和执行流程,再把这些关系存进知识图谱。Cursor、Claude Code、Codex 等编码 Agent 可以通过 MCP 查询这份索引。

目前,该项目在 GitHub 上有约 4.55 万 Star ,最新稳定版是 v1.6.9

除了 CLI,它还提供可以浏览依赖关系的 Web UI。npm 包采用 PolyForm Noncommercial 1.0.0,公司项目接入前需要先确认许可证要求。

亮点

Agent 动手前,可以先查影响范围

仓库首页的关系图主要用于展示索引结果。写代码时,我更关心 GitNexus 提供的 17 个 MCP 工具。

假设要修改登录接口,Agent 可以先用 context 查看相关符号被谁调用,再用 api_impact 找到接口消费者。代码改完后,detect_changes 会把当前 Git diff 对应到受影响的符号和流程;怀疑两段代码存在间接调用时,还可以用 trace 查最短路径。

这些关系已经在建索引时算好,模型不用每次重新找文件、记住搜索结果,再试着把调用链拼起来。返回结果里已经带着调用方和受影响流程,可以继续用于改接口、重命名方法和排查回归范围。

微服务项目可以把几套仓库放在一起查

单仓库内的调用关系,IDE 和文本搜索还能应付。前端、网关、后端分散在几套仓库以后,接口路径、请求参数和返回结构就很难靠一次搜索串起来。

v1.6.9 增加了仓库分组和跨仓库 API 追踪。可以把相关仓库放进同一个 group:

sql 复制代码
gitnexus group create my-system
gitnexus group add my-system frontend frontend-repo
gitnexus group add my-system backend backend-repo
gitnexus group sync my-system

同步时,GitNexus 会提取仓库之间的接口契约,把 HTTP 调用方和服务端路由连起来。需要继续追踪数据依赖,可以在分析阶段加上 --pdg,再查询跨仓库的最短调用路径。

以前端修改请求字段为例,Agent 可以沿着接口契约找到后端路由,再继续检查 Controller、Service 和返回结构,不用分别在几套仓库里搜索同一个字段名。

索引默认留在本机

CLI 会在本机解析源码,索引保存在仓库的 .gitnexus/ 目录中。官方隐私说明写明,CLI 建图和查询不会主动发起网络请求。

Web 版也在浏览器中解析和存图,代码不会上传到 GitNexus 的项目服务器。它比较适合临时查看中小型仓库,官方给出的参考量级约为 5000 个文件。仓库再大一些,可以先用 CLI 建索引,再交给本地 Web UI 浏览。

同一个 MCP Server 还能读取多个已经建好索引的仓库,记录保存在 ~/.gitnexus/registry.json,不需要为每个项目单独启动一套服务。

快速上手

GitNexus 需要 Node.js ^22.18.0>=24.11.0。进入一个自己熟悉的 Git 仓库,运行:

arduino 复制代码
npx gitnexus analyze
npx gitnexus setup

analyze 负责生成索引,setup 会识别本机的 Cursor、Claude Code、Codex 等工具,并配置 MCP、Skills 或 Hooks。

analyze 默认还可能生成或更新 AGENTS.mdCLAUDE.md。只想建索引,不希望它修改这些文件,可以加上:

css 复制代码
gitnexus analyze --skip-agents-md --skip-skills

只给 Codex 配置,使用 gitnexus setup -c codex。npm 11 安装原生依赖时如果遇到 Arborist 报错,官方建议换用 pnpm,或者先全局安装:

css 复制代码
npm install -g gitnexus@latest

索引完成后,先问一个自己知道答案的问题,例如"登录请求会经过哪些入口和 Service"。结果能和现有调用关系对上,再继续测试 impactdetect_changes

当前存在的限制

控制流图目前主要覆盖 TypeScript 和 JavaScript,Java、Python 的分析深度更保守,部分框架的路由提取也还在补充。gitnexus wiki 会调用用户配置的 LLM,请求是否出网取决于模型服务商。MCP 默认带写操作,只查询时建议设置 GITNEXUS_MCP_READ_ONLY=1。商用前还要确认 PolyForm Noncommercial 许可。

总结

如果你经常让编码 Agent 修改中大型项目,尤其需要排查跨文件、跨仓库调用关系,GitNexus 值得拿一个熟悉的仓库试试。建完索引后,先问几个自己知道答案的问题;结果可靠,再接进日常编码流程。

项目地址:github.com/abhigyanpat...

最新 Release:github.com/abhigyanpat...

相关推荐
小虎AI生活1 小时前
DeepSeek Harness 技术拆解:全插件架构、九项能力对比与本地实测
ai编程
子兮曰1 小时前
DeepSeek Harness 架构深潜:一个把 Agent 运行时做成纯插件树的开源 Harness
前端·后端·deepseek
ServBay1 小时前
DeepSeek Harness 实战:如何搭建完整的 AI Agent 本地开发环境
aigc·ai编程·deepseek
子兮曰2 小时前
AI Agent 完整入门指南:从 LLM 到生产落地的 30+ 个核心概念
前端·后端·agent
渔夫正在掘金2 小时前
Cordis 插件热插拔能力深度解析
后端·node.js
plainGeekDev2 小时前
从设计到实现:登录模块的 Loop 实战记录
ai编程·claude
不爱编程的小九九2 小时前
小九源码-springboot004-springboot智能阅读推荐系统
java·spring boot·后端
土豆12503 小时前
半年 20 万 Star 的「反 Vibe Coding」:Matt Pocock 是如何用一套 Skill 驯服 AI 编程代理的
人工智能·ai编程
码事漫谈3 小时前
为什么调试模式不崩溃,打包后却崩溃了?
后端