Graphicle 发布,Graphify 的 Rust 移植版并加入项目记忆能力
Show HN: Graphicle, a Rust port of Graphify with memory for coding agents
Graphicle 是 KarLex AI 推出的 Graphify Rust 移植版,把代码图与项目记忆整合到单一程序,可接入 Claude Code、Cursor、Codex 等编码智能体。
文章给出了 Graphicle 与 Graphify 在大型仓库上的性能对比基准,并说明了与主流编码智能体的 MCP 接入方式。
为你的编程代理准备的代码图谱与记忆,一个 Rust 程序搞定。
Graphicle 把你的代码仓库映射为代码图谱,记住项目的文档、决策和过往的代理会话,
并从两者中为你的编程代理提供带出处的摘录:精确的文件和行号。它在你本机上运行:无需 API 密钥,无需账号,无遥测。
兼容 Claude Code · Cursor · Codex · VS Code · Claude Desktop · 任何 MCP 客户端
快速开始 · 工作原理 · 基准测试 · 文档 · 来自 Graphify? · 讨论
快速开始
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:暂无可用的原生构建;在 WSL2 下 Linux 安装应可工作(尚未测试)。原生 Windows 支持已在计划中。
graphicle setup 会为仓库建立索引,构建其代码图谱,并连接它找到的编程代理。它还会开启会话
捕获,将 Claude Code 的搜索优先指向代码图谱,为 AGENTS.md 添加一个简短章节,并安装 Git 钩子以保持项目更新。它会列出它修改的每个文件,
并先对每个文件进行备份;graphicle disconnect 可撤销全部更改。
然后让你的代理去 "使用 graphicle 找出失败请求在何处被重试",或者在终端中询问:
$ graphicle ask "where is tax added to prices?" Evidence for "where is tax added to prices?" 4 excerpts · 598 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)则会补充文字回答。
让你的编程代理自行安装
把以下内容粘贴到 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.
从这里开始
| 你希望 | 运行 |
|---|---|
| 为你的编程代理提供代码图谱与项目的记忆 | 在仓库中运行 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 迁移 · 团队服务端 |
- 原生且快速。 一个 Rust 程序。在 Kubernetes(31k 文件)上,0.1.0 引擎仅用 3 分 18 秒完成了仅代码的抽取,相比 Graphify 0.9.88 的 26 分 38 秒,并构建了相同的图谱(各自一次探索性运行,一台 Linux 主机,同样的 16 核 CPU,8 个工作进程)。
- 是上下文,而非重读。 你的代理向 Graphicle 提问,即可在 token 预算范围内获得相关的代码、文档与决策,作为带出处的摘录。
- 可验证的回答。 每段摘录都标明其文件和行号。代理提出的记忆条目需经你审核。
- 一个程序,而非一套系统。 代码图谱、记忆、一个 MCP 服务器、Web 应用与命令行,全部打包在一次安装中,仅有一个 SQLite 文件。无需 Python、Docker 或数据库服务器。
- 本地且私密。 无账号、无遥测。除非你主动要求,否则数据不会离开你的机器。
它能做什么
- 代码图谱。 文件、函数、类、调用与导入,使用 tree-sitter 解析,无需模型。
graphicle graph可搜索它、解释一个符号、 追溯一条路径,并导出可交互的 HTML 图谱。在graphicle graph extract . --code-only之后,graphicle graph affected "retry()"会列出依赖某符号的内容。 - 项目记忆。 文档(Markdown、PDF、Office、HTML)、已审定的决策与流程,以及过去的 Claude Code 与 Codex 会话,可与代码一起搜索。
- 在预算内的带出处上下文。
graphicle context与 MCP 工具在不调用模型的情况下,在 token 预算范围内返回带来源的摘录。 - 一个 MCP 服务器。
graphicle mcp提供代码图工具,使用 Graphify 的工具名称(如query_graph、get_neighbors和shortest_path),与记忆工具并列。 - 记忆与代码绑定。 已审核的记忆绑定到它们所对应的函数:当代码变更时记忆会过时,而文件中其他位置的编辑通常不影响它的有效性(确切规则)。文档中对代码的提及会链接到它们所命名的定义(
graphicle call graph.doc_links列出了它们)。 - 跨仓库。 回忆可以跨越工作区的各个仓库:
graphicle context --workspace,或 工作区 MCP 端点。 - 始终保持最新。 每次回答之前,Graphicle 会同步你改动过的少量文件;Git 钩子在每次提交、合并和检出后进行同步。
- 无需重新解释。 会话捕获保留每个已完成的轮次,每个新会话都会从你已审核的记忆和最新的轮次开始。
- 一个应用。
graphicle open在你的浏览器中展示图谱、来源和记忆。你可以在那里审核记忆。
与你的代理协作
graphicle setup 通过 MCP 连接它发现的每个客户端。每个文件备份一次为 <file>.graphicle-bak,而 graphicle disconnect 会移除它添加的内容。
| 客户端 | 在哪里设置连接 | 会话捕获 |
|---|---|---|
| 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_desktop_config.json 在 Claude 的设置文件夹中 |
|
| 任何其他 MCP 客户端 | 一段简短的 JSON 配置项(MCP) |
工作原理
- 同步。 Graphicle 读取文件夹(它遵守
.gitignore并跳过敏感信息),为每个源文件保留版本化副本,并构建代码图。 - 回忆。 当你的代理调用工具时,Graphicle 会同步变更的内容,对来自代码、文档、会话和已审核记忆的摘录进行排序,并附引用返回它们。工具本身不调用模型;摘录由代理自身的模型读取。
- 记忆。 捕获的会话成为来源。代理提出的记忆会在应用中等待你的审核。
Graphicle,或一个代码图工具加上一个记忆服务器
| 代码图工具 + 记忆服务器 | Graphicle | |
|---|---|---|
| 安装 | 两个工具,通常运行在不同的运行时上,并且通常还需要一个数据库服务器 | 一次安装 |
| 连接你的代理 | 在每个代理中分别配置每个工具 | graphicle setup 连接它发现的代理;graphicle disconnect 撤销操作 |
| 代理中的 MCP 服务器 | 两个,分别配置 | 一个,包含代码图和记忆工具 |
| 存储 | 图谱文件加上记忆服务器的数据库 | 一个数据文件夹中的一个 SQLite 文件 |
| 代码结构:调用、导入、影响 | 代码图工具 | graphicle graph |
| 文档、决策、过往会话 | 记忆服务器 | 内置 |
| 引用与审核 | 视情况而定 | 每条摘录都标注文件及其行号;代理提出的记忆需要等待审核 |
基准测试
速度。 上方的图表:Kubernetes(31k 文件),0.1.0 引擎(基于发布源码的 Linux 测试构建)与 Graphify 0.9.88 对比,各运行一次探索性测试,二者构建相同的图谱(Kubernetes 运行)。更早之前,在 Django 上,预发布版本仅用 7.5 秒完成纯代码提取,而 Graphify 0.9.77 用了 72.8 秒(五次交替运行的中间值,共享一台 Linux 主机,8 个工作进程),二者构建相同的图谱(10 月 8 日的记录)。
记忆。 在与七个记忆系统的对比中(在任何回答打分之前登记,并使用一个开源模型作为所有系统的读者和评判者),Graphicle 的预发布版本在三个开发集上均不落后于任何对手。每个分数及其方法和注意事项。
FAQ
隐私与本地优先
- 一个数据文件夹。 你的资料、记忆以及 setup 构建的代码图都存放在同一个 SQLite 数据库中:macOS 下位于
~/Library/Application Support/Graphicle,Linux 下位于~/.local/share/graphicle。graphicle graph extract会将其图谱文件写入项目中的.graphicle/。 - 默认仅本机回环。 应用及其 HTTP 与 MCP 端点仅监听 127.0.0.1。
- 无遥测,无账号。 Graphicle 仅在你要求时才连接网络:你配置的模型或连接器、一次完整的
graphicle graph extract(它会将文档和图片发送给其找到 API 密钥的 LLM)、用于graphicle graph add、clone以及图谱服务器拉取请求工具的 GitHub CLI,以及使用你指定订阅源的graphicle update。 从源码构建时还会下载一次解析器源码。详情 - 谨慎同步。
sync遵守.gitignore,并跳过.env文件、密钥和凭证。会话捕获会丢弃<private>…</private>跨度并隐去凭证。 - 遗忘也留凭据。 删除一条记忆或一个被捕获的会话时,也会一并移除由其衍生的内容,并提供一份哈希链式的删除回执。
我需要 API 密钥或模型吗?
大部分功能不需要。代码图谱(含 --code-only)、同步、context、MCP 服务器、会话捕获和应用都无需密钥即可运行。
模型负责撰写 graphicle ask 的回答、从资料中提议记忆,并在一次完整的 graphicle graph extract 中读取文档和图片。
通过 Ollama 或任何兼容 OpenAI 的服务器均可使用本地模型(配置)。
Graphicle 是 Graphify 的分支吗?
代码图谱引擎是 Graphify 的 Rust 移植版本,与 Graphify 的发布保持同步,并在文件头及 NOTICE 中予以署名。一致性检查 中注明了它所跟随的发布版本。
记忆、记忆工具、应用以及会话捕获并不属于 Graphify。从 Graphify 迁移过来?graphicle setup 提供切换仓库的选项,
会备份每个文件,并且永不删除 graphify-out/(从 Graphify 迁移)。
它能处理我的大型仓库吗?
默认情况下,一个项目最多可容纳 10 万个文本文件和 1 GiB 的文本;两者均可上调(参见 docs/configuration.md 中的限制)。 对于超大文件会进行部分解析,或以可搜索文本的形式保留,而不会中断同步。
有团队版吗?
Graphicle 以 Apache-2.0 许可免费开源,个人和团队均可使用。面向团队的商业版目前处于私密预览阶段。 如需洽谈,请发起讨论:https://github.com/graphicle-ai/graphicle/discussions,或在 Discord 上与我们交流。
采用什么许可证?
Graphicle 采用 Apache-2.0 许可:可自由使用、修改和分发,也可用于商业用途。第三方组件保留各自许可证,列于 NOTICE 中。
更多解答:FAQ · 故障排查 · 或运行 graphicle doctor。
文档
快速上手 · Agents · MCP · 安装 · 配置 · 团队服务器 · 从 Graphify 迁移 · 基准测试 · FAQ · 更新日志
代码构成:crates/graphicle/(程序:命令行、应用、HTTP 与 MCP 服务器),crates/graphicle-graph/(代码图谱引擎),
crates/graphicle-memory/(记忆库),适用于 Python 和 TypeScript 的 SDK,
以及位于 deploy/ 的团队服务器示例。每个 crate 均可独立构建(从源码构建)。
贡献
欢迎根据 Apache 2.0 许可证提交贡献,需附带开发者原创证明 (DCO) 签名(git commit -s),且无需签署 CLA。
请参阅 CONTRIBUTING.md。如需报告安全问题,请遵循 SECURITY.md,而非公开提交 Issue。
许可证与致谢
Graphicle 基于 Apache 2.0 许可证 授权。版权所有 © 2026 KarLex AI, Inc.
代码图引擎是 Graphify(作者 Safi Shamsi 及 Graphify 贡献者)的 Rust 移植版本,基于 Apache-2.0 许可证授权,部分代码继续以 MIT 许可证发布。谨此致谢。
NOTICE、NOTICE.md 及 licenses/ 文件夹中列出了所有移植项目及第三方组件的归属与许可证信息。
如果 Graphicle 帮您的智能体节省了一次检索,欢迎为仓库点亮 Star,以便其他开发者发现它。
试用 · 报告 Bug · 参与贡献 · Discord
由 KarLex AI 构建
来源:Hacker News · github.com
