codegraph
CodeGraph 是本地代码知识图谱工具,安装后连接 AI 代理、初始化项目索引即可使用,核心命令包括 query、callers、callees、impact 等
初始化
在claude中执行:
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")。
codegraph callers symbol="UserService.updateProfile"callees
callees命令
- 作用:解析目标符号的 AST(抽象语法树),提取其体内所有被调用者(Callees)列表。
- 适用场景:理解函数逻辑流程、排查底层依赖、评估修改某函数时可能波及的内部组件。
- 参数要求:必须提供
symbol参数,值为目标符号的全名或限定名(如"processOrder"或"Service.method")。
codegraph callees symbol = "processOrder"impact
impact命令:用于影响范围分析的核心命令,通过广度优先搜索(BFS)计算修改某个代码符号后波及的所有关联文件与函数,主要用于重构前的安全评估
# 基础用法:查询函数 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深入细节 。
codegraph context "修复登录失败后没有刷新用户信息的问题" \ --max-nodes 30 \ --max-code 8 \ --format markdown # 它会围绕任务描述,构建一段 Markdown 上下文,包含入口点、相关符号、调用关系和部分代码片段。其他命令
# 重建图谱 codegraph index --force # 查看当前状态 codegraph status #工具的增量同步命,用于在代码修改后只更新变更文件的索引,无需重新全量构建 codegraph syncUnderstand-Anything
Understand Anything是一个能帮你把整个代码库变成可交互知识图谱的开源插件,它原生支持Claude Code,让开发者不用一行行啃代码就能看清系统全貌 。
分析代码库
/understand多 Agent 流水线启动,扫描项目中所有文件、函数、类和依赖,构建知识图谱并保存到.understand-anything/knowledge-graph.json。
中文输出:加上--language zh参数,节点描述、Dashboard UI 和导览说明均以中文生成。
/understand --language zh打开交互仪表盘
/understand-dashboard浏览器中弹出交互式图谱:节点按架构层颜色区分(API / Service / Data / UI / Utility),支持缩放、平移、模糊搜索和语义搜索。点击任意节点可查看源码、依赖关系和 AI 生成的自然语言解释。
进阶用法
# 向图谱提问——比直接问 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:
gitlfsinstallgitlfs track".understand-anything/*.json"gitadd.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 文章中提取实体、关联和隐式关系 |