你的 AI 助手在代码里是盲人
你让 Claude Code 帮你修一个 bug,它改好了——然后你发现另外三个地方也用了同样的模式,全部悄悄坏掉了。AI 不是不聪明,而是它根本看不见代码之间的关系。GitNexus 就是为了解决这个问题而生的。
假设你按下"提交 PR"——幕后正在崩塌的东西
你修改了 userService.getProfile() 的返回值结构。看起来只是一个小改动。但在那个 3 万行的代码库里:
GitNexus 让 AI 在修改前就能看到这整张图,而不是等 CI 失败了才发现。
两种使用方式
GitNexus 就像一把瑞士军刀,根据你的需求选择不同的工具面:
gitnexus serve,Web UI 自动检测本地服务器——把两种模式的优点合并。三分钟上手:从安装到第一次查询
# 1. 安装 GitNexus CLI
npm install -g gitnexus
# 2. 索引你的代码库
cd /path/to/your/project
gitnexus analyze .
# 3. 查询:谁调用了这个函数?
gitnexus context getUserProfile
# 4. 影响分析:改这个函数会炸哪里?
gitnexus impact userService.ts
模块测验
知识图谱:
代码关系的地铁地图
每座城市的地铁线路图,用清晰的线条和节点,展示了成百上千个站点之间的关系。GitNexus 为你的代码库建造了同样的地图——每个函数是一个站,每次调用是一条线。
图谱里有什么:节点与边
GitNexus 用图数据库 LadybugDB 存储代码结构。理解它的两个核心概念:
代码实录:查询图谱的 context 工具
{
name: 'context',
description: `Callers, callees,
and processes for one symbol.
WHEN TO USE: Understanding how
code works together.
Returns:
- callers: who calls this symbol
- callees: what this symbol calls
- processes: execution flows
this symbol belongs to
`,
}
混合搜索:BM25 + 向量的强强联合
当 AI 问"找一下处理用户认证的代码",GitNexus 如何在 5 万行代码里精准定位?答案是两种搜索技术的融合:
模块测验
摄取管道:
代码库是如何被"读懂"的
当你运行 gitnexus analyze .,你的代码库经历了一次彻底的"CT 扫描"。12 个阶段组成的DAG 管道,把普通代码文件变成可查询的知识图谱。
12 阶段管道概览
Tree-sitter:代码的 CT 机
Tree-sitter 是 GitNexus 的核心解析引擎。它不把代码当普通文本读——它真正"理解"代码结构,就像 CT 机看到的不是皮肤表面而是内部骨骼:
// 你的源代码
async function getUserById(id: string) {
const user = await db.users.findOne(id);
return user;
}
// Tree-sitter 看到的(简化)
// function_declaration
// name: "getUserById"
// params: [{name: "id", type: "string"}]
// body: [
// await_expression → db.users.findOne
// ]
// async: true
新鲜度检测:图谱不会过期
代码每天都在变,知识图谱如何保持最新?GitNexus 有一个陈旧度检测机制:
模块测验
MCP 工具层:
给 AI 装上真正的代码眼睛
MCP 是 GitNexus 与 AI 工具通信的桥梁。GitNexus 暴露了 13 个 MCP 工具,覆盖从简单查询到复杂影响分析的所有场景。
13 个 MCP 工具:全面的代码视力
MCP 的工作架构
配置 MCP:让 Claude Code 认识 GitNexus
{
"mcpServers": {
"gitnexus": {
"command": "gitnexus",
"args": ["mcp"],
"env": {}
}
}
}
模块测验
当代码改变时:
知道"改这里会炸哪里"
最贵的 bug 不是你一按保存就报错的那种——而是悄悄在生产环境跑了三天,直到用户投诉才发现的那种。GitNexus 的影响分析让你在按下"提交"之前,就看到改动的全部后果。
爆炸半径分析:改动的多米诺效应
每次代码改动都像在池塘里扔石头——不只是落点激起涟漪,整个水面都会震动。GitNexus 的 impact 工具计算这个"爆炸半径":
detect_changes:把 Git Diff 翻译成业务影响
--- a/src/services/userService.ts
+++ b/src/services/userService.ts
@@ -24,7 +24,8 @@ export class UserService {
async getProfile(userId: string) {
const user = await this.db.findOne(userId);
- return { name: user.name, email: user.email };
+ return { name: user.name, email: user.email,
+ avatarUrl: user.profile?.avatarUrl };
}
}
Wiki 生成:代码自动写文档
GitNexus 还有一个隐藏能力:基于知识图谱自动生成代码 Wiki。不是人工写的 README——是从代码结构里提取出来的、永远与代码同步的文档。