跳到正文
Hacker News· KarLexAI·· 19 天前精选AI 评分58

Graphicle 发布,Graphify 的 Rust 移植版并加入项目记忆能力

Show HN: Graphicle, a Rust port of Graphify with memory for coding agents

AI 导读

Graphicle 是 KarLex AI 推出的 Graphify Rust 移植版,把代码图与项目记忆整合到单一程序,可接入 Claude Code、Cursor、Codex 等编码智能体。

推荐理由

文章给出了 Graphicle 与 Graphify 在大型仓库上的性能对比基准,并说明了与主流编码智能体的 MCP 接入方式。

正文 · AI 翻译

Graphicle

为你的编程代理准备的代码图谱与记忆,一个 Rust 程序搞定。

License: Apache-2.0 Latest release Platforms: macOS and Linux Chat on Discord

Graphicle 把你的代码仓库映射为代码图谱,记住项目的文档、决策和过往的代理会话, 并从两者中为你的编程代理提供带出处的摘录:精确的文件和行号。它在你本机上运行:无需 API 密钥,无需账号,无遥测。
兼容 Claude Code · Cursor · Codex · VS Code · Claude Desktop · 任何 MCP 客户端

快速开始 · 工作原理 · 基准测试 · 文档 · 来自 Graphify? · 讨论

A terminal in four steps. graphicle setup syncs a small repository, builds its code graph, finds five agent clients, connects them and lists every file it changed. graphicle ask returns four cited excerpts, the first shop/pricing.py lines 1 to 7, price_with_tax(). After an edit, graphicle context syncs the changed file before answering. graphicle doctor shows 18 checks passing and one warning: no answer model is set.

快速开始

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 或数据库服务器。
  • 本地且私密。 无账号、无遥测。除非你主动要求,否则数据不会离开你的机器。

Kubernetes, about 31,000 files. Shorter is faster. Code-only extract: Graphicle 0.1.0, 3 minutes 18 seconds; Graphify 0.9.88, 26 minutes 38 seconds. One run each, Linux, the same 16 CPUs, 8 workers. Both built the same graph: 256,329 nodes and 1,400,392 edges.

它能做什么

  • 代码图谱。 文件、函数、类、调用与导入,使用 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)

工作原理

How Graphicle works: your code, documents and agent sessions sync into one program that keeps a code graph and a memory. Your coding agents use it over MCP; you use it with graphicle ask and graphicle open. Changed files sync before each answer. No account, no telemetry; nothing leaves your machine unless you ask.

  1. 同步。 Graphicle 读取文件夹(它遵守 .gitignore 并跳过敏感信息),为每个源文件保留版本化副本,并构建代码图。
  2. 回忆。 当你的代理调用工具时,Graphicle 会同步变更的内容,对来自代码、文档、会话和已审核记忆的摘录进行排序,并附引用返回它们。工具本身不调用模型;摘录由代理自身的模型读取。
  3. 记忆。 捕获的会话成为来源。代理提出的记忆会在应用中等待你的审核。

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