跳到正文

CodeGraph谁调用了它,改动它会影响哪里

CodeGraph 用 tree-sitter 把代码仓库解析成本机的符号、调用和导入索引,并据此回答结构性问题:在命令行中,为编码 Agent 通过 MCP,也在浏览器查看器中。它不包含任何模型,同一个仓库在任何机器上都得到同样的答案。

运行平台
Linux、macOS 和 Windows,x86_64 与 ARM64。单个可执行文件,内置 SQLite。
你的代码
索引保存在项目的 .codegraph 目录中,建立索引和查询都不联网。
CodeGraph 查看器显示方法 IndexPaths::resolve:左侧是它的调用方,中间是源码,右侧是它调用的函数。查看器界面为英文。CodeGraph 查看器显示方法 IndexPaths::resolve:左侧是它的调用方,中间是源码,右侧是它调用的函数。查看器界面为英文。

CodeGraph 能做什么

浏览器查看器目前是预览功能,需要手动开启;其余功能都属于常规命令。

查询

  • 提一个问题或给出几个名称,按文件返回相关符号的源码、依赖它们的代码,以及它们之间的调用。

  • 符号的源码及其调用和被调用关系,或带行号的文件内容以及依赖它的文件。

  • 向上或向下一层,或沿调用方的调用方找出改动会影响的全部代码。

  • 根据改动的文件,列出依赖它们的文件以及其中的测试。

接入

  • 通过标准输入输出提供只读工具,一条命令即可写入每个已安装 Agent 的配置。

  • 在本机通过 streamable HTTP 提供同样的工具,适用于编辑器和远程开发。

  • Agent Skill已发布

    告诉 Agent 在什么情况下使用哪个工具的说明,安装到各 Agent 的 Skill 目录。

保持最新

  • 每个项目一个后台进程,由所有使用者共享,重新索引你修改过的文件。

  • 增量同步已发布

    只重新读取发生变化的文件,结果与完整重建一致。

查看

  • 符号、文件、调用路径、模块结构图、类型层级和未被到达的代码,支持浅色和深色主题。

语言

  • TypeScript、JavaScript、Python、Go、Rust、Java、C、C++、C#、PHP、Ruby、Swift、Kotlin 等。

  • Vue、Svelte、Astro、Razor 和 Liquid 文件,以及 MyBatis mapper XML。

  • Godot 项目已发布

    场景、资源、脚本、自动加载和信号处理函数,并提供资源审计。

从安装到第一个答案

  1. 安装

    curl -fsSL https://raw.githubusercontent.com/sunerpy/codegraph-rust/main/scripts/install.sh | sh

    Windows 上使用 PowerShell 脚本,也可以从发布页下载压缩包。

  2. 为项目建立索引

    codegraph init .

    在项目的 .codegraph 目录中建立索引,之后的更新只读取发生变化的文件。

  3. 提一个问题

    codegraph explore "how does checkout compute the total" -p .

    返回相关的源码、依赖它的代码,以及其中的调用关系。

  4. 接入你的 Agent

    codegraph install --yes

    把 MCP 服务写入它找到的每个 Agent 的配置。

面向编码 Agent ​

接入 CodeGraph 的 Agent 只需提出一个结构性问题,不必逐个搜索和读取文件,得到的回答直接包含相关源码以及它们之间的调用关系。答案来自解析出的代码,每次运行都相同。

codegraph install --yes 会把 MCP 服务写入 Claude Code、Cursor、Codex CLI、Kiro、Zed、VS Code 以及其他受支持 Agent 的配置。

接入编码 Agent · MCP 参考

问题命令行MCP 工具
这块代码是怎么工作的?codegraph explorecodegraph_explore
查看这个符号或文件codegraph nodecodegraph_node
它在哪里定义?codegraph searchcodegraph_search
谁调用了它?codegraph callerscodegraph_callers
改动它会影响哪里?codegraph impactcodegraph_impact

两侧运行的是同一个引擎,Agent 和你得到的答案相同。所有工具都是只读的。

在浏览器中查看 ​

查看器读取同一份索引:一个符号的调用方和被调用方、一个函数到另一个函数的调用路径、按模块划分的仓库结构图、类型的继承层级,以及没有任何代码到达的代码。它在你的电脑上运行,只读取,不修改。

浏览器查看器

查看器的 Flow 视图,从 cmd_explore 到 explore_file_header,每次调用一张卡片,下方的表格列出每一步及其置信度。查看器界面为英文。查看器的 Flow 视图,从 cmd_explore 到 explore_file_header,每次调用一张卡片,下方的表格列出每一步及其置信度。查看器界面为英文。

支持多种语言,并如实说明深度 ​

大多数语言提供完整的符号提取;组件和模板提取其中嵌入的脚本和标记;少数格式只记录到文件级。表格分别列出,不用一个笼统的数字概括。

支持的语言 · Godot

深度提取内容语言
完整符号函数、类、方法、导入、调用和引用TypeScript、TSX、JavaScript、JSX、ArkTS、Python、Go、Rust、Java、C、C++、C#、PHP、Ruby、Swift、Kotlin、Dart、Scala、Lua、Luau、Objective-C、R、Solidity、Nix、Terraform、Erlang、GDScript、Pascal、CFML
嵌入内容宿主文件中嵌入的脚本和模板标记Vue、Svelte、Astro、Razor、Liquid、MyBatis XML
文件级文件以及文件之间的引用YAML、Twig、Properties,以及 Godot 的场景、资源和项目文件

表中没有的语言,其文件不会进入图中。可以在 .codegraph/codegraph.json 中把其他扩展名映射到这些语言。

平台

每个版本为每个平台提供一个压缩包,并附带 SHA256SUMS 文件和每个压缩包的构建来源证明。

平台Target压缩包
Linux x86_64已发布x86_64-unknown-linux-musl.tar.gz
Linux ARM64已发布aarch64-unknown-linux-musl.tar.gz
macOS Intel已发布x86_64-apple-darwin.tar.gz
macOS Apple Silicon已发布aarch64-apple-darwin.tar.gz
Windows x86_64已发布x86_64-pc-windows-msvc.zip
Windows ARM64已发布aarch64-pc-windows-msvc.zip

Linux 版本是静态链接的,不依赖任何系统库。从源码构建需要 Rust 工具链和 C 编译器。

哪些内容留在你的电脑上

CodeGraph 不依赖任何托管服务。

建立索引和查询

联网内容不联网

索引是项目中的一个 SQLite 数据库,解析、引用匹配和所有查询都在本机进行。

Agent、编辑器和查看器

联网内容不联网

MCP 服务只与启动它的程序通信,HTTP 服务和查看器只在本机监听。

安装和更新

联网内容从 GitHub 下载

安装脚本和 codegraph self-update 从 GitHub Releases 下载发布版本。

安装 ​

sh
curl -fsSL https://raw.githubusercontent.com/sunerpy/codegraph-rust/main/scripts/install.sh | sh
powershell
irm https://raw.githubusercontent.com/sunerpy/codegraph-rust/main/scripts/install.ps1 | iex
sh
cargo install --locked --git https://github.com/sunerpy/codegraph-rust codegraph-rs

安装脚本在安装前会用该版本的 SHA256SUMS 校验每个压缩包。安装指南介绍了如何安装指定版本、更新和卸载。

它不做什么

  • 不运行任何模型,没有 embedding,也没有向量检索;只根据解析出的结构作答。
  • 不评判代码。代码是否正确仍由编译器、lint 工具和测试判断。
  • 看不到运行时行为。反射、运行时回调和由字符串拼出的调用不会形成边。
  • 不会猜测它无法解析的语言。

交流与反馈 ​

问题报告和功能建议请提交到 GitHub Issues。使用微信扫码,可以关注公众号「六月水蓝」。CodeGraph 以 MIT 许可发布。

微信公众号「六月水蓝」的二维码
公众号「六月水蓝」