关于 Graphicle
Graphicle 是供编码 Agent 使用的本地代码图谱与项目记忆 MCP 服务。它整合仓库结构、文档、决策和已捕获会话,返回带来源引用的片段,工具本身无需调用模型。
主要功能
- 01从代码仓库构建代码图谱
- 02搜索项目文档和已审核记忆
- 03按令牌预算返回引用片段
- 04捕获 Agent 会话并同步变更
- 05通过 graphicle setup 连接已发现的客户端
- 06提供图谱浏览与影响分析
适用场景
- 01追踪代码变更影响的依赖项
- 02查找相关代码和项目决策
- 03为 Agent 提供带引用的任务上下文
- 04在不同会话间沿用已审核的项目记忆
MCP 相关
graphicle mcp 通过 MCP 提供代码图谱和记忆工具;可选的拉取请求工具使用 GitHub CLI。graphicle setup 会配置检测到的 MCP 客户端,工作区上下文也可跨仓库检索。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
为你的编码 Agent 提供代码图和记忆,集于一个 Rust 程序。
Graphicle 将你的代码库映射为代码图,记住项目的文档、决策和以往的 Agent 会话,
并为编码 Agent 提供来自这两者的引用摘录:精确到文件和行号。它在你的机器上运行:无需 API 密钥,无需账户,不收集遥测数据。
适用于 Claude Code · Cursor · Codex · VS Code · Claude Desktop · 任意 MCP 客户端
快速开始 · 工作原理 · 基准测试 · 文档 · 从 Graphify 迁移? · 讨论
Graphicle 0.1.8 与 0.1.7 在 kubernetes 上的对比(位于 ca8a2a9e4 的浅克隆),issue #8 的 22 个问题,在我们的 Linux 服务上:每次 graphicle context 调用的中位耗时为 1.34 s,对比 2.99 s;每次调用都启动新进程。方法和全部数据行
快速开始
brew install graphicle-ai/tap/graphicle
cd your-repo
graphicle setup
没有 Homebrew?curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | sh · 发行版压缩包 · 其他安装方式
Windows:适用于 x86-64 的预览版,尚未进行代码签名(Windows(预览版))。
graphicle setup 会为代码库建立索引、构建代码图,并连接它找到的编码 Agent。它还会启用会话捕获,在 AGENTS.md 中添加一个两行的部分(除非 Claude Code 是唯一的 Agent),并安装 Git 钩子以保持项目内容最新。它会列出所有修改的文件,并在修改前备份每个文件;graphicle disconnect 会撤销所有操作。
然后请你的 Agent “使用 graphicle 查找失败请求在哪里重试”,或者在终端中提问:
$ graphicle ask "where is tax added to prices?"
Evidence for "where is tax added to prices?"
4 excerpts · 606 of 3,000 tokens
[1] shop/pricing.py:1-7 price_with_tax()
"""Prices and tax."""
TAX_RATE = 0.2
def price_with_tax(price):
"""A price with the sales tax added."""
return round(price * (1 + TAX_RATE), 2)
真实输出,在第一个摘录后截断。未配置模型时,ask 会显示证据;graphicle config set model anthropic(或 openai、ollama)可生成文字回答。
让你的编码 Agent 安装它
将以下内容粘贴到 Claude Code、Codex 或 Cursor 中:
Install Graphicle with `brew install graphicle-ai/tap/graphicle` (or, without Homebrew,
`curl -fsSL https://github.com/graphicle-ai/graphicle/releases/latest/download/install.sh | sh`),
then run `graphicle setup --yes` in this repository and list every file it changed.
从这里开始
| 你想要 | 运行 |
|---|---|
| 为你的编码 Agent 提供代码图和项目记忆 | 在代码库中运行 graphicle setup |
| 在终端中提问 | graphicle ask "how are failed requests retried?" |
| 浏览代码图、源代码和记忆 | graphicle open |
| 查看对某个符号的更改会影响哪些内容 | graphicle graph extract . --code-only,然后运行 graphicle graph affected "retry()" |
| 检查一切是否正常 | graphicle doctor |
| 撤销 setup 执行的所有操作 | graphicle disconnect |
| 从 Graphify 迁移,或为团队运行服务 | 从 Graphify 迁移 · 团队服务 |
为什么选择 Graphicle
- 原生且快速。 一个 Rust 程序。在 13 个代码库上,Graphicle 0.1.1 的记忆引擎(预发布版本)在全部 39 项测量中耗时比 Graphify 0.9.91 少 3.0 至 22.7 倍(仅提取代码、预热更新和无变更更新;在同一台配备 3 个 CPU、每个 CPU 有 8 个工作线程的机器上进行)。图谱略有不同:节点数相差不超过 4.7%,边数相差不超过 2.0%(速度对比表)。后续一个包含 0.1.1 记忆改动的预发布版本,其图谱也与 Graphify 的略有不同;在全部 39 项测量中,它的峰值内存都低于 Graphify 0.9.91,为 Graphify 数值的 0.29 至 0.97 倍(内存对比表)。
- 提供引用上下文,且不超出你设定的预算。 你的 Agent 向 Graphicle 发起查询,它会在你设定的令牌预算内返回相关代码、文档和决策的引用摘录。在我们的测试中,它查找代码的表现与 grep 持平;我们不声称它能节省令牌(我们的测量结果)。
- 答案可供核查。 每段摘录都会注明文件和行号。Agent 提出的记忆须经你批准后才会生效。
- 一个程序,而非一整套组件。 代码图谱、记忆、一个 MCP 服务、Web 应用和命令行都包含在一个安装包中,使用一个 SQLite 文件。无需 Python、Docker 或数据库服务。
- 本地且私密。 无需账户,也没有遥测。只有在你提出请求时,你的代码和数据才会离开你的机器。唯一的自动请求是每天检查是否有新版本;设置
GRAPHICLE_NO_UPDATE_NOTIFIER=1可将其关闭。
功能
- 代码图谱。 文件、函数、类、调用和导入均由 tree-sitter 解析,无需模型。
graphicle graph可搜索图谱、解释符号、追踪路径并导出交互式 HTML 图谱。运行graphicle graph extract . --code-only后,graphicle graph affected "retry()"会列出依赖该符号的内容。 - 项目记忆。 文档(Markdown、PDF、Office、HTML)、经审核的决策和流程,以及 Claude Code 和 Codex 的过往会话,均可与代码一同搜索。
- 预算内的引用上下文。
graphicle context和 MCP 工具会在令牌预算内返回带有来源的摘录,无需调用模型。 - 一个 MCP 服务。
graphicle mcp提供代码图谱工具,使用 Graphify 的工具名称,例如query_graph、get_neighbors和shortest_path,并同时提供记忆工具。使用--pull-requests时,它还会提供拉取请求工具list_prs、get_pr_impact和triage_prs,这些工具使用 GitHub CLI(MCP)。 - 与代码关联的记忆。 经审核的记忆会关联到其所涉及的函数:代码变更时,记忆会过时;文件其他位置的编辑通常不会影响记忆的有效性(具体规则)。文档中提及的代码会关联到其提及的定义(运行
graphicle call graph.doc_links可查看列表)。 - 跨仓库。 回忆内容可以涵盖工作区中的多个仓库:使用
graphicle context --workspace,或工作区 MCP 端点。 - 始终保持最新。 每次回答前,Graphicle 都会同步你修改过的少量文件;Git hooks 会在每次提交、合并和检出后同步。
- 会话延续。 会话捕获会保存每个已完成的轮次;审核过记忆后,每个新会话都会以这些记忆和最新轮次为起点。
- 应用。
graphicle open会在浏览器中显示图谱、来源和记忆,也是你批准记忆的地方。
与你的 Agent 配合使用
graphicle setup 会通过 MCP 连接找到的每个客户端。每个文件只备份一次,备份文件名为 <file>.graphicle-bak;graphicle disconnect 会移除它添加的内容。
| 客户端 | setup 连接位置 | 会话捕获 |
|---|---|---|
| Claude Code | 仓库中的 .mcp.json | .claude/settings.local.json 中的钩子 |
| Codex | ~/.codex/config.toml | ~/.codex/hooks.json 中的钩子(Codex 会要求你信任这些钩子) |
| Cursor | ~/.cursor/mcp.json | |
| VS Code | 仓库中的 .vscode/mcp.json | |
| Claude Desktop | Claude 设置文件夹中的 claude_desktop_config.json | |
| 任何其他 MCP 客户端 | 一条简短的 JSON 配置(MCP) |
工作原理
- 同步。 Graphicle 会读取文件夹(遵循
.gitignore并跳过机密内容),为每个源文件保留带版本的副本,并构建代码图谱。 - 回忆。 当你的 Agent 调用工具时,Graphicle 会同步已更改的内容,从代码、文档、会话和已审核的记忆中对摘录进行排序,并连同引用一起返回。工具不会调用模型;你的 Agent 使用自己的模型读取这些摘录。
- 记忆。 捕获的会话会成为源。Agent 提出的记忆会在应用中等待你批准。
Graphicle,或代码图谱工具加记忆服务
左栏介绍的是代码图谱工具(例如 Graphify 的开源引擎)加上单独的记忆服务。这不是与 Graphify Cloud 的比较;Graphify Cloud 是一项包含记忆功能的托管服务。
| 代码图谱工具 + 记忆服务 | Graphicle | |
|---|---|---|
| 安装 | 两个工具,通常使用不同的运行时,且通常还需要数据库服务 | 一次安装 |
| 连接你的 Agent | 在每个 Agent 中配置每个工具 | graphicle setup 会连接找到的 Agent;graphicle disconnect 会撤销连接 |
| Agent 中的 MCP 服务 | 两个,分别配置 | 一个,包含图谱和记忆工具 |
| 存储 | 图谱文件加上记忆服务的数据库 | 一个数据文件夹中的一个 SQLite 文件 |
| 代码结构:调用、导入、影响 | 图谱工具 | graphicle graph |
| 文档、决策、过往会话 | 记忆服务 | 内置 |
| 引用和审核 | 各不相同 | 每段摘录都附有文件及行号;Agent 记忆需等待批准 |
基准测试
每项数据都标明了来源,docs/benchmarks.md 中列出了完整表格、方法和限制。在 Agent 测试中,只有当 95% 置信区间不包含 0 时,差异才算显著;否则视为平局。目前尚未测试长会话以及在多个编码会话中逐步积累的记忆。
- 每个问题耗时(0.1.8,顶部的图表)。在 kubernetes 的
ca8a2a9e4提交上(浅克隆,共 30,315 个文件),针对 issue #8 的 22 个问题,在我们的 Linux 服务端使用 16 个核心时,0.1.8 的graphicle context调用耗时中位数为 1.34 s,0.1.7 为 2.99 s;使用 4 个核心时分别为 1.38 s 和 3.89 s;每次调用前清除文件缓存、使用 4 个核心时分别为 1.90 s 和 4.55 s。16 个核心上,8 次查询耗时为 0.96 s,对比 2.52 s。每次调用都会启动一个新进程,因为提示词钩子会以这种方式运行它。在同一个存储上,两个版本对每个问题都生成了相同的数据包;单次调用的峰值内存从 3.5 GB 降到了 0.6 GB(方法和测试轮次)。
查找修复会更改的文件
离线排序测试,使用 100 个从未用于调优的 SWE-bench Verified 问题。 对于 75 个问题,Graphicle 0.1.8 将修复更改的文件排在前 5 个文件中,而 BM25(SWE-bench 风格)为 61 个,差异显著(McNemar 精确检验 p = 0.013);对于第一个文件(43 对 35)和前 10 个文件(81 对 77),差异不显著。这衡量的是排序效果,而不是编码 Agent 能否修复更多问题;目前尚未针对这种排序进行 Agent 测试(方法、任务列表和限制)。
0.1.0 和 0.1.1 的速度、内存和 Agent 测试
- 速度。 上方的 13 个代码库图表和四面板图表的第一个面板:在 13 个代码库上,每个代码库执行 3 项操作,Graphicle 0.1.1 的内存引擎(预发布版本)在全部 39 次测量中所用时间均比 Graphify 0.9.91 少 3.0 至 22.7 倍;测试使用同一台机器,每次运行使用 3 个 CPU 和 8 个工作线程(每个程序各运行一个会话;取 3 次运行的中位数,Kubernetes 和 VS Code 各运行 1 次)。两者生成的图略有差异:节点数相差不超过 4.7%,边数相差不超过 2.0%(每次测量及两个图的大小)。docs/benchmarks.md 还记录了早期测试,当时两个程序生成的是同一个图:在 Kubernetes 上测试 0.1.0 引擎与 Graphify 0.9.88(Kubernetes 测试);在 Django 上测试一个预发布版本,该版本仅提取代码用时 7.5 秒,而 Graphify 0.9.77 用时 72.8 秒(交替运行 5 次取中位数,使用同一台 Linux 主机和 8 个工作线程;10 月 8 日的记录)。
- 更新。 在 prometheus、tokio 和 poetry 上各提交 30 次后,Graphicle 0.1.0 的
graph update用时比 Graphify 0.9.91 少 6 至 8 倍(每次运行使用一个 Linux 节点和 4 个 CPU);除两款程序共有的三种键值差异外,增量更新结果均与全新构建一致。在抽取的 30 条记录中,15 条函数发生变化的记录均被标记,其他记录则没有;更大范围的探索性检查发现了一些误报(详情与限制)。 - 峰值内存。 一个预发布版本采用了 0.1.1 中对引擎数据存储方式的改动,发布时间晚于上方计时所用版本;在全部 39 次测量中(13 个代码库;提取和两种更新),其峰值内存占用均低于 Graphify 0.9.91。例如,提取 Kubernetes 时为 2,092 MiB,对比 2,767 MiB;提取 next.js 时为 1,426 MiB,对比 2,800 MiB。重新检查的 5 次测量中,合并后的 0.1.1 源码构建版本的峰值内存占用也均更低;四面板图表的第二个面板展示了其 Kubernetes 提取结果:2,148 MiB,对比 2,767 MiB(取 2 次运行中较高的峰值)。使用一台装有 8 张 H100 的 Linux 节点,未使用 GPU;使用 8 个工作线程;对比 Graphicle 的峰值 RSS 与 Graphify 的峰值 PSS(每次测量)。
- 查找代码(在 Linux 节点上运行 Claude Code 2.1.287,使用 Opus 5.5,effort 设为 medium)。Graphicle 与 grep 持平。在 100 个 SWE-bench Verified 任务中,纯 Claude Code、Graphicle 0.1.0 默认配置和 Graphify 0.9.91 分别在 95、95 和 94 个任务中找到了修复所改动的全部文件;Graphicle 比纯 Claude Code 多用 16% 的令牌,Graphify 多用 29%,且 Agent 从未调用 Graphicle 的工具。在我们自己的代码库上进行的 93 个任务中,模型未见过这些代码,三者再次持平;Graphicle 0.1.0 索引中的一个原型卡片(未随产品发布)比 Graphify 少用了约 20% 的令牌。
- 回答问题(配置相同)。在 Graphify 的展示语料库上(30 个问题),0.1.1 的 Agent 默认配置(预发布版本)找出了 99.2% 的事实,高于纯 Claude Code 的 94.7%(持平)和 Graphify 0.9.91 的 87.8%:找出的事实比 Graphify 多,令牌用量却更少。在针对我们自己项目的 60 个问题上,三者持平;Graphify 每个问题比 Graphicle 多用了约 48k 个令牌(Graphicle 使用预发布版 0.1.1 和一个原型上下文钩子)(所有 Agent 测试)。
- Agent 记忆。 在与七种记忆系统的对比中,测试在评分任何答案之前完成注册,并使用一个开源模型作为每个系统的阅读器和评判者;Graphicle 的预发布版本在三个开发集上均不落后于其他系统。所有得分及测试方法和注意事项。
FAQ
隐私优先,数据本地存储
- 所有数据集中存储在一个文件夹中。 你的来源、记忆,以及初始化时构建的代码图都保存在一个 SQLite 数据库中:macOS 上为
~/Library/Application Support/Graphicle,Linux 上为~/.local/share/graphicle,Windows 上为%LOCALAPPDATA%\Graphicle。graphicle graph extract会将图文件写入项目中的.graphicle/。 - 默认仅监听本地回环地址。 应用及其 HTTP 和 MCP 端点都监听 127.0.0.1。
- 不收集遥测数据,也无需账号。 Graphicle 仅在以下情况下连接网络:你配置的模型或连接器、完整运行
graphicle graph extract(它会将文档和图片发送给找到对应 API 密钥的大模型)、用于graphicle graph add、clone和图服务拉取请求工具的 GitHub CLI、使用你指定的信息源运行graphicle update,以及每日检查是否有新版本。 默认启用新版本检查:你在终端运行的命令会向 GitHub 请求最新版本,不会发送代码或数据,只为通知你有新版本(设置GRAPHICLE_NO_UPDATE_NOTIFIER=1可关闭此功能)。 从源代码构建时,也会下载一次解析器源代码。详情 - 谨慎同步。
sync会遵循.gitignore,并跳过.env文件、密钥和凭据。会话捕获会删除<private>…</private>内容,并对凭据进行脱敏处理。 - 删除后提供凭据。 删除记忆或捕获的会话时,也会删除由其派生的内容,并生成一份哈希链式删除凭据。
我需要 API 密钥或模型吗?
大多数功能都不需要。代码图(使用 --code-only)、同步、context、MCP 服务、会话捕获和应用都可在没有 API 密钥或模型的情况下运行。
graphicle ask 的回答、根据来源提出的记忆建议,以及完整运行 graphicle graph extract 时对文档和图片的读取,都由模型完成。
本地模型可通过 Ollama 或任何兼容 OpenAI 的服务使用(配置说明)。
Graphicle 是 Graphify 的分支吗?
代码图引擎是 Graphify 的 Rust 移植版,其文件头和 NOTICE 中均注明了出处。它基于 Graphify 0.9.95;之后的 Graphify 版本会在后续版本中移植;一致性检查会将其与该版本进行比较。
记忆、记忆工具、应用和会话捕获并非 Graphify 的组成部分。要从 Graphify 迁移?graphicle setup 会提供切换代码仓库的选项,
备份每个文件,且绝不会删除 graphify-out/(从 Graphify 迁移)。
它能处理大型代码仓库吗?
默认情况下,一个项目最多可包含 100,000 个文本文件和 1 GiB 文本;你可以提高这两个上限(参见配置文档中的限制)。 遇到超大文件时,系统会分析其中一部分,或将其保留为可搜索文本,而不会因此停止同步。
有适用于团队的版本吗?
Graphicle 在 Apache-2.0 许可下免费开源,个人和团队均可使用。面向团队的商业版目前处于私有预览阶段。 如需联系我们,请发起讨论:https://github.com/graphicle-ai/graphicle/discussions,或在 Discord 上与我们交流。
采用什么许可证?
Graphicle 采用 Apache-2.0 许可证:可免费使用、修改和发布,也可用于商业用途。第三方组件仍遵循其各自的许可证,详见 NOTICE。
更多解答:常见问题 · 故障排查 · 或运行 graphicle doctor。
文档
快速入门 · Agent · MCP · 安装 · 配置 · 团队服务 · 从 Graphify 迁移 · 基准测试 · 常见问题 · 更新日志
代码:crates/graphicle/(程序:命令行、应用、HTTP 和 MCP 服务)、crates/graphicle-graph/(代码图引擎)、
crates/graphicle-memory/(记忆库)、适用于 Python 和 TypeScript 的 SDK,
以及 deploy/ 中的团队服务配方。每个 crate 均可独立构建(从源代码构建)。
贡献
欢迎在 Apache License 2.0 许可下贡献,提交时须签署开发者原创证书(git commit -s),且无需 CLA。
请参阅 CONTRIBUTING.md。如需报告安全问题,请按 SECURITY.md 中的说明操作,而不要公开提交 issue。
许可证与致谢
Graphicle 根据 Apache License 2.0 授权。版权所有 2026 KarLex AI, Inc.
代码签名政策:目前,发布构建尚未使用受信任的证书签名。Windows 程序通过 SignPath 使用测试证书签名,但 Windows 不信任该证书;若签名失败,则不签名。每个版本的说明都会注明具体情况。计划使用 SignPath Foundation 的证书进行签名。该政策还列出了 Graphicle 联系网络的所有情况。
代码图引擎是 Safi Shamsi 与 Graphify 贡献者开发的 Graphify 的 Rust 移植版,采用 Apache-2.0 许可,其中部分内容仍根据 MIT License 提供。谨此致谢。
NOTICE、NOTICE.md 和 licenses/ 文件夹列出了每个改编项目和第三方组件的出处及许可证。
如果 Graphicle 对你有帮助,请为此仓库点星,让更多开发者发现它。
试用 · 报告错误 · 参与贡献 · Discord
由 KarLex AI 构建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。