Claurst 评测:一个用 Rust 重写的终端编码代理,能兼容 ACP 也能跑多提供商
为运输建造者提供代理编码。在启动之前在 ~/.claurst/settings.json(或 claurst auth login / claurst /connect)中配置您的提供程序/API 密钥,ACP 代理使用与交互式 TUI 相同的凭据和提供程序。
秒懂
- 它是什么?
- Claurst 是一个从 Claude Code 行为规范重新实现的终端编码代理,支持多提供商、TUI 和 ACP 编辑器集成。本文基于仓库文档分析它的安装方式、工作机制和适用边界。
- 适合谁用?
- Claurst 适合那些已经习惯在终端里用 Claude Code 或类似工具、但希望摆脱单一提供商锁定的人。它用 Rust 重写,启动快,内存占用低,且没有遥测。
- 能商用吗?
- 可以,但有条件。GPL-3.0 是 copyleft 许可证:如果你分发包含它的软件,就必须以同一许可证公开该软件的源代码。只在内部运行、不对外分发,则不会触发这项义务。
- 还在维护吗?
- 在维护。仓库最近一次提交在 13 天前。
- 用什么语言写的?
- 主要是 Rust(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决什么问题,给谁用
Claurst 解决的问题很具体:终端里的编码代理通常绑定单一提供商,比如 Claude Code 只连 Anthropic。Claurst 从 Rust 重新实现,支持多提供商路由,让你用同一个 TUI 界面切换不同模型。它面向的是那些每天在终端里写代码、愿意用键盘而不是鼠标的开发者。你不需要离开终端就能完成代码解释、重构、多文件修改。它没有遥测,没有跟踪,运行起来就是你自己的工具。文档里明确说它是 Claude Code 行为的 clean-room 重实现,这意味着它试图复刻那种交互模式,但用 Rust 重写,换来了更快的启动和更少的内存占用。
核心机制:从规范到多提供商路由
Claurst 的架构在 README 中可见:它有一个 spec 目录,里面定义了行为规范,然后 Rust 代码按规范实现。这不同于直接调用 Claude Code 的 API,而是自己实现了代理逻辑。多提供商支持意味着你可以在 settings.json 里配置不同的 API 密钥,然后在 /connect 里选择提供商。ACP 模式是另一个关键机制:Claurst 作为子进程运行,通过 JSON-RPC 2.0 与编辑器通信。它实现了 initialize、session/new、session/prompt、session/cancel 这些方法,并流式发送 session/update 通知,包含文本增量、思考过程、工具调用和结果。权限请求通过 session/request_permission 发送,编辑器可以弹出原生审批对话框。这个设计让 Claurst 不只是一个独立 TUI,而是一个可以被任何 ACP 兼容编辑器驱动的后端。
安装与配置:一条命令,多种路径
安装方式很直接。Linux 和 macOS 用 curl 管道安装,Windows 用 PowerShell。也可以走 npm 或 bun,postinstall 脚本会自动下载对应平台的预编译二进制。想从源码编译的话,进入 src-rust 目录,运行 cargo build --release --package claurst。这里有个细节:如果你的系统没有 ALSA(比如树莓派或 Debian Trixie 这种无头服务器),需要加 --no-default-features 来禁用语音和麦克风支持。配置方面,你需要设置 ANTHROPIC_API_KEY 环境变量,或者在 ~/.claurst/settings.json 里写提供商和密钥。README 给出了具体路径,也提到 /connect 命令可以交互式配置。注意,ACP 模式会复用同样的凭据和提供商,所以你在 TUI 里的配置对编辑器集成同样有效。
ACP 集成:以 Zed 为例的编辑器驱动
Claurst 的 ACP 支持是它区别于其他终端代理的地方。文档给出了 Zed 的配置示例:在 ~/.config/zed/settings.json 里添加 agent_servers 配置,command 设为 claurst,args 设为 ["acp"]。启动后,Claurst 以 JSON-RPC 2.0 模式运行在 stdio 上。这意味着你可以在 Zed 的原生聊天界面里使用 Claurst,而不是切换到终端。权限审批通过 session/request_permission 传递,所以编辑器可以显示原生的同意对话框,而不是在终端里按 y。这个机制对 Neovim 和 JetBrains 插件同样适用,只要它们实现 ACP。不过,文档没有说明 ACP 模式下的性能表现,也没有提到多会话并发时的行为。如果你依赖编辑器的深度集成,需要自己验证这些细节。
实验性功能:/goal、/share 和 ultracode
README 标记了几个实验性功能,这些是 Claurst 试图超越 Claude Code 的地方。/goal 让代理跨越多个回合持续工作一个目标,而不是每轮都停。ultracode 是最高努力级别,它在模型的顶层推理之上增加了一个计划、委派、集成、验证的工作流,会把有界任务分发给原生子代理(Agent)、群体(TeamCreate)和后台任务(TaskCreate)。/share 通过未列出的 GitHub Gist 分享聊天会话。这些功能都标注为 EXPERIMENTAL,意味着不稳定。文档没有给出这些功能的具体用法示例,也没有说明失败模式。如果你在生产环境中使用,这些功能可能会给你带来惊喜,也可能带来意外。我的判断是,它们展示了项目方向,但现阶段更像是一个试验场。
一个真正的限制:Beta 状态和实验性功能的风险
Claurst 官方标记为 Beta(v0.1.7)。核心代理、多提供商路由和 TUI 被认为是稳定的,但实验性功能会有粗糙边缘。这意味着什么?如果你依赖 /goal 来管理长时间运行的任务,或者用 ultracode 来处理复杂重构,你可能会遇到未定义的行为。另一个限制是语音支持:默认构建需要 ALSA 库,如果你在无头服务器或树莓派上运行,必须用 --no-default-features 编译,这会失去语音和麦克风功能。还有一个潜在问题:文档没有提到如何处理提供商 API 的速率限制或错误恢复。如果你用的是免费模式(/connect 里的 Free),它的质量可能不稳定。在采用前,你应该在非关键项目上测试这些功能,而不是直接用于生产代码。
替代方案:与 Claude Code 和 Zed 内置代理的差异
最直接的替代是 Claude Code 本身。但 Claude Code 是闭源的,且绑定 Anthropic 的模型。Claurst 是 GPL-3.0 的开源项目,你可以自己编译,也可以修改。另一个替代是 Zed 编辑器内置的 agent 功能,它可能直接支持某些模型,但 Zed 的 agent 是编辑器的一部分,而 Claurst 是独立的代理,可以通过 ACP 接入任何编辑器。关键差异在于:Claude Code 是一个完整的代理生态,有大量插件和社区支持;Zed 内置代理则更紧密地集成在编辑器中,但可能不支持多提供商。Claurst 的优势是它同时提供 TUI 和 ACP 两种模式,而且用 Rust 实现,启动快。但它的插件系统还在发展,文档中没有详细说明插件 API。如果你需要成熟的插件生态,Claude Code 可能更适合你。
维护与升级成本,许可证影响
升级路径很简单:运行 claurst upgrade 即可,或者用 --version 参数固定版本。但注意,安装脚本和 npm 包都会下载预编译二进制,这意味着你需要信任发布流程。GPL-3.0 许可证意味着如果你修改了 Claurst 并分发,你必须开源你的修改。对于个人使用,这没问题;但如果你是公司内部使用,且不想开源内部改动,这可能是个障碍。维护方面,项目最近提交在 2026 年 7 月,版本迭代较快,v0.1.5 到 v0.1.7 不到一个月。这既是好事也是坏事:快速迭代带来新功能,但也意味着 API 可能变化。文档没有提供长期支持承诺,所以升级前应该查看 changelog。另外,devcontainer 配置里绑定了 .claurst 目录,说明会话历史存储在本地,这有利于隐私,但也意味着你需要自己备份这些数据。
编辑结论
Claurst 适合那些已经习惯在终端里用 Claude Code 或类似工具、但希望摆脱单一提供商锁定的人。它用 Rust 重写,启动快,内存占用低,且没有遥测。如果你依赖 Zed 或 Neovim 的 ACP 集成,Claurst 可以作为现成的 agent 后端。但如果你需要稳定的生产环境,或者你的工作流重度依赖 Claude Code 的特定插件生态,那么 Beta 阶段的状态和实验性功能(如 /share、/goal、ultracode)可能不适合你。在采用前,先确认你的 API 提供商在 /connect 列表中,并且测试 ACP 会话的权限审批流是否符合你的编辑器习惯。Claurst 的边界在于:它还在快速迭代,v0.1.7 之后的版本可能改变行为,升级前记得读 changelog。
社区笔记