codegraph
CodeGraph 是本地代码知识图谱工具,安装后连接 AI 代理、初始化项目索引即可使用,核心命令包括 query、callers、callees、impact 等
初始化
在claude中执行:
cmd
codegraph init -i
# windows 可能会找不到codegraph命令,可以用codegraph.cmd
# codegraph.cmd init -i
初始化项目,生成索引。
创建本地的 .codegraph/ 目录,并生成知识图谱。之后 CodeGraph 会监听文件变化,自动增量更新索引,所以你不用每次改完代码都手动同步。
核心命令
query
codegraph query 是 CodeGraph CLI 中用于全文搜索符号的命令
基本格式 :codegraph query <搜索词>
典型示例:
codegraph query "validateToken":查找名称包含该字符串的所有符号。codegraph query "UserService" --kind class:仅搜索类型为class的符号。codegraph query "auth" --limit 10 --json:限制返回 10 条结果并以 JSON 格式输出。
关键参数:
--kind <type>:过滤符号类型(如function,class,method,variable等)。--limit <n>:限制返回结果数量,默认通常返回前若干条。--json:以结构化 JSON 格式输出,便于脚本处理或集成。--quiet:仅输出匹配项路径或名称,减少冗余信息。
callers
callers 命令:
- 作用:反向追踪调用链,回答"谁调用了这个函数"的问题。
- 参数 :需传入目标符号名称(
symbol),如函数名、方法名(例如"AuthService.login"或"getUserById")。
cmd
codegraph callers symbol="UserService.updateProfile"
callees
callees命令
- 作用:解析目标符号的 AST(抽象语法树),提取其体内所有被调用者(Callees)列表。
- 适用场景:理解函数逻辑流程、排查底层依赖、评估修改某函数时可能波及的内部组件。
- 参数要求 :必须提供
symbol参数,值为目标符号的全名或限定名(如"processOrder"或"Service.method")。
cmd
codegraph callees symbol = "processOrder"
impact
impact命令:用于影响范围分析的核心命令,通过广度优先搜索(BFS)计算修改某个代码符号后波及的所有关联文件与函数,主要用于重构前的安全评估
cmd
# 基础用法:查询函数 calculate_tax 的影响范围
codegraph impact symbol="calculate_tax"
search
search命令:
- 作用:基于 SQLite FTS5 全文索引,在已构建的代码图谱中搜索匹配符号名称的节点,返回符号类型、文件路径、行号及签名等信息 。
- 主要参数:
symbol(必填):要搜索的符号名称(如"UserService"或"validateToken")。kind(可选):字符串类型,过滤符号类型。可选值包括function,class,method,variable,interface,struct等,用于缩小搜索范围 。-
limit(可选):整数类型,限制返回结果数量,默认通常返回前 10-20 个匹配项,避免响应过大 。
- 返回内容:符号 ID、种类(function/class/method 等)、所在文件路径、起止行号、语言类型及代码片段摘要 。
- 适用场景 :已知符号确切或部分名称,需快速定位其定义位置;作为调用链分析(
callers/callees)的前置步骤 。
context
context命令:
- 智能映射 :输入任务描述(如"修改登录验证逻辑"),自动返回涉及的入口函数、相关类/方法及上下文代码 。
- 高效聚合:一次调用即可覆盖多个相关文件(通常返回约 3 个文件的源码片段),显著减少 Token 消耗和工具调用次数 。
- 调用链预览:自动列出目标功能的子方法调用路径,无需手动逐层推理 。
使用场景:
- 探索未知代码库:在开始修改或分析前,快速摸清架构和关键入口 。
- 精准定位 :替代传统的
search_content+read_file组合操作,直接获取高相关性代码 。 - 配合其他命令 :常作为第一步,后续结合
codegraph_explore或codegraph_trace深入细节 。
cmd
codegraph context "修复登录失败后没有刷新用户信息的问题" \
--max-nodes 30 \
--max-code 8 \
--format markdown
# 它会围绕任务描述,构建一段 Markdown 上下文,包含入口点、相关符号、调用关系和部分代码片段。
其他命令
cmd
# 重建图谱
codegraph index --force
# 查看当前状态
codegraph status
#工具的增量同步命,用于在代码修改后只更新变更文件的索引,无需重新全量构建
codegraph sync
Understand-Anything
Understand Anything 是一个能帮你把整个代码库变成可交互知识图谱的开源插件,它原生支持Claude Code,让开发者不用一行行啃代码就能看清系统全貌 。
分析代码库
cmd
/understand
多 Agent 流水线启动,扫描项目中所有文件、函数、类和依赖,构建知识图谱并保存到 .understand-anything/knowledge-graph.json。
中文输出: 加上 --language zh 参数,节点描述、Dashboard UI 和导览说明均以中文生成。
cmd
/understand --language zh
打开交互仪表盘
cmd
/understand-dashboard
浏览器中弹出交互式图谱:节点按架构层颜色区分(API / Service / Data / UI / Utility),支持缩放、平移、模糊搜索和语义搜索。点击任意节点可查看源码、依赖关系和 AI 生成的自然语言解释。
进阶用法
cmd
# 向图谱提问------比直接问 AI 更精准,因为已有结构化上下文
/understand-chat 支付流程是如何实现的?
# 查看当前改动影响哪些模块(提交前必用)
/understand-diff
# 深入分析某个文件或函数
/understand-explain src/auth/login.ts
# 生成新人 onboarding 指南
/understand-onboard
# 提取业务领域知识(domains、flows、steps)
/understand-domain
# 分析 Karpathy 式 LLM wiki,构建知识关系图
/understand-knowledge ~/path/to/wiki
# 只分析 monorepo 中的某个子目录
/understand src/frontend
# 每次 commit 后自动增量更新图谱
/understand --auto-update
大型图谱(10 MB 以上)建议配合 git-lfs:
bash
git lfs install
git lfs track ".understand-anything/*.json"
git add .gitattributes .understand-anything/
七个 Agent 分工协作
/understand 在底层编排 5 个专用 Agent,/understand-domain 再加入第 6 个,/understand-knowledge 加入第 7 个:
| Agent | 职责 |
|---|---|
project-scanner |
发现文件、识别语言和框架 |
file-analyzer |
提取函数/类/imports,生成节点和边(最多 5 路并行,每批 20-30 个文件) |
architecture-analyzer |
识别架构层级 |
tour-builder |
生成按依赖顺序排列的导览路径 |
graph-reviewer |
验证图的完整性和引用完整性 |
domain-analyzer |
提取业务领域、流程和步骤 |
article-analyzer |
从 wiki 文章中提取实体、关联和隐式关系 |