<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开源项目 on J.A</title><link>http://zongyanglaobiao.github.io/blog/categories/open-source-project-category/</link><description>Recent content in 开源项目 on J.A</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Tue, 02 Jun 2026 18:06:15 +0000</lastBuildDate><atom:link href="http://zongyanglaobiao.github.io/blog/categories/open-source-project-category/index.xml" rel="self" type="application/rss+xml"/><item><title>CodeGraph</title><link>http://zongyanglaobiao.github.io/blog/article/use-codegraph/</link><pubDate>Tue, 02 Jun 2026 18:06:15 +0000</pubDate><guid>http://zongyanglaobiao.github.io/blog/article/use-codegraph/</guid><description>&lt;h1 id="codegraph">CodeGraph
&lt;/h1>&lt;p>&lt;a class="link" href="https://github.com/colbymchenry/codegraph" target="_blank" rel="noopener"
>CodeGraph&lt;/a> 是一个面向 AI 编程 Agent 的本地代码知识图谱工具。它会提前为项目建立索引，让 Claude Code、Codex、Gemini、Cursor、opencode、Antigravity、Kiro、Hermes Agent 等工具通过 MCP 查询代码结构、符号关系和调用链，从而减少反复 &lt;code>grep&lt;/code>、&lt;code>find&lt;/code>、&lt;code>Read&lt;/code> 带来的令牌消耗和工具调用次数。&lt;/p>
&lt;h2 id="安装-codegraph-并配置-agent">安装 CodeGraph 并配置 Agent
&lt;/h2>&lt;p>我使用的是 macOS：&lt;/p>
&lt;ol>
&lt;li>安装 CLI：&lt;code>npm i -g @colbymchenry/codegraph&lt;/code>&lt;/li>
&lt;li>配置 Agent：&lt;code>codegraph install&lt;/code>，交互式检测并写入需要配置的 Agent。也可以使用 &lt;code>npx @colbymchenry/codegraph&lt;/code> 一次性下载并运行安装器。&lt;/li>
&lt;li>初始化项目并建立索引：在项目根目录执行 &lt;code>codegraph init -i&lt;/code>&lt;/li>
&lt;/ol>
&lt;p>完成以上步骤后，Agent 在分析项目结构、调用链或影响范围时，就可以通过 CodeGraph MCP 服务直接查询本地索引。&lt;/p>
&lt;h2 id="codegraph-常用命令">CodeGraph 常用命令
&lt;/h2>&lt;h3 id="安装与项目初始化">安装与项目初始化
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>命令&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>codegraph&lt;/code>&lt;/td>
&lt;td>启动交互式安装器。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph install&lt;/code>&lt;/td>
&lt;td>显式运行安装器，自动检测并配置支持的 Agent。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph install --yes&lt;/code>&lt;/td>
&lt;td>非交互式安装，适合脚本或 CI 环境。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph install --target=cursor,claude --yes&lt;/code>&lt;/td>
&lt;td>只为指定 Agent 配置 CodeGraph。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph install --print-config codex&lt;/code>&lt;/td>
&lt;td>输出指定 Agent 的 MCP 配置片段，不直接写入配置文件。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph uninstall&lt;/code>&lt;/td>
&lt;td>从已配置的 Agent 中移除 CodeGraph MCP 配置。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph init [path]&lt;/code>&lt;/td>
&lt;td>在项目中创建 &lt;code>.codegraph/&lt;/code> 索引目录。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph init -i [path]&lt;/code>&lt;/td>
&lt;td>初始化项目并立即建立索引。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph uninit [path]&lt;/code>&lt;/td>
&lt;td>移除项目中的 CodeGraph 初始化信息；如需跳过确认可加 &lt;code>--force&lt;/code>。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="索引与状态检查">索引与状态检查
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>命令&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>codegraph index [path]&lt;/code>&lt;/td>
&lt;td>对项目执行完整索引；常用参数有 &lt;code>--force&lt;/code>、&lt;code>--quiet&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph sync [path]&lt;/code>&lt;/td>
&lt;td>执行增量同步。MCP 服务启动后通常会自动监听文件变化，手动同步主要用于排查缺失符号等问题。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph status [path]&lt;/code>&lt;/td>
&lt;td>查看索引统计、健康状态和数据库信息。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph files [path]&lt;/code>&lt;/td>
&lt;td>查看已索引的文件结构；常用参数有 &lt;code>--format&lt;/code>、&lt;code>--filter&lt;/code>、&lt;code>--max-depth&lt;/code>、&lt;code>--json&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph serve --mcp&lt;/code>&lt;/td>
&lt;td>启动 MCP 服务。安装器通常会把这个命令写入 Agent 配置。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="代码查询与影响分析">代码查询与影响分析
&lt;/h3>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>命令&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;code>codegraph query &amp;lt;search&amp;gt;&lt;/code>&lt;/td>
&lt;td>按名称搜索符号；常用参数有 &lt;code>--kind&lt;/code>、&lt;code>--limit&lt;/code>、&lt;code>--json&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph callers &amp;lt;symbol&amp;gt;&lt;/code>&lt;/td>
&lt;td>查询某个函数或方法被哪些位置调用。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph callees &amp;lt;symbol&amp;gt;&lt;/code>&lt;/td>
&lt;td>查询某个函数或方法内部调用了哪些函数或方法。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph impact &amp;lt;symbol&amp;gt;&lt;/code>&lt;/td>
&lt;td>分析修改某个符号可能影响的代码范围；常用参数有 &lt;code>--depth&lt;/code>、&lt;code>--json&lt;/code>。&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;code>codegraph affected [files...]&lt;/code>&lt;/td>
&lt;td>根据变更文件推导可能受影响的测试文件。&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;code>affected&lt;/code> 也适合配合 Git 使用，例如：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">git diff --name-only &lt;span class="p">|&lt;/span> codegraph affected --stdin --quiet
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>这条命令会将 Git 变更文件通过标准输入传给 &lt;code>affected&lt;/code>，并只输出受影响的测试文件路径。&lt;/p>
&lt;p>除了 CLI 命令，Agent 通过 MCP 使用 CodeGraph 时还会调用 &lt;code>codegraph_explore&lt;/code>、&lt;code>codegraph_search&lt;/code>、&lt;code>codegraph_callers&lt;/code>、&lt;code>codegraph_callees&lt;/code>、&lt;code>codegraph_impact&lt;/code>、&lt;code>codegraph_node&lt;/code>、&lt;code>codegraph_files&lt;/code>、&lt;code>codegraph_status&lt;/code> 等工具。其中 &lt;code>codegraph_explore&lt;/code> 通常是最常用的入口，适合回答“某个功能如何工作”“某个流程如何到达另一个模块”等结构化问题。&lt;/p>
&lt;h2 id="总结">总结
&lt;/h2>&lt;p>从实际体验看，CodeGraph 对“理解项目结构、追踪调用链、分析影响范围”这类问题比较有帮助。同样的问题相比直接让 Agent 在文件系统中反复搜索，响应会更快，工具调用也更少。至于长期能节省多少 Token，还需要结合具体项目规模和使用场景继续观察。&lt;/p></description></item></channel></rss>