开发与工程 rustterminal-uimulti-providermcpgit-worktreessession-managementcoding-agent

zerostack

面向低内存环境的 Rust 多模型终端编程代理。

FollowAgents 评估 · FARS-2.1
不推荐
57/ 100 五分制 2.9 / 5
1 2 3 4 5 6
按维度查看评分与理由
1信任安全14 / 29 · 2.4/5

权限系统提供五种模式(restrictive/readonly/guarded/standard/yolo)和每工具模式,支持会话白名单和破坏性命令提示,但默认standard模式自动允许部分bash命令,且存在--dangerously-skip-permissions完全绕过选项,故扣分。用户确认机制存在(询问、会话白名单、doom-loop检测),但未展示所有操作的确认流程细节。数据流透明度:文档说明工具结果发送给模型提供商,但未详细说明所有数据流路径,扣分。敏感数据处理:沙箱默认掩码九个凭据目录,但文档明确列出多个缺口(如~/.netrc未掩码、secret service可达),扣分。依赖安全:Cargo.toml列出依赖但未提供版本锁定或审计证据,扣分。外部影响:沙箱和权限系统限制bash工具,但文档明确说明仅bash工具被沙箱化,其他工具和MCP服务器不受限,扣分。回滚:会话保存/恢复和git worktree集成提供一定回滚能力,但未提供文件级回滚机制,扣分。来源归属:作者和仓库信息明确,但发布者未验证,扣分。

2可靠稳定9 / 14 · 3.2/5

自洽性:README、SECURITY.md和Cargo.toml描述一致,功能列表与文档对应,但部分功能标记为实验性,扣分。依赖可用性:依赖版本在Cargo.toml中指定,但未提供锁文件或审计证据,扣分。失败消息:文档描述错误处理(如sandbox-required拒绝bash命令),但未提供具体错误消息示例,扣分。

3适用触发12 / 18 · 3.3/5

受众和场景:面向开发者,提供多种使用场景(交互式、一次性、循环、并行),文档详细,但未明确目标用户群体,扣分。能力边界:权限模式和提示系统明确界定能力,但部分功能(如loop、worktree)标记为实验性,扣分。触发精度:slash命令和权限模式提供精确控制,但未提供所有命令的详细文档,扣分。环境适配:支持多平台(Linux、macOS、Windows未测试),提供多种安装方式,但Windows支持未测试,扣分。

4规范维护10 / 18 · 2.8/5

信息架构:README结构清晰,有目录和链接,但部分文档在docs/目录未在本次审查中提供,扣分。安装说明:提供多种安装方式(脚本、Cargo、Homebrew、Nix),详细,但未提供Windows安装说明,扣分。命名稳定性:版本号明确(1.7.2),但未提供命名约定文档,扣分。示例和FAQ:提供快速开始和示例命令,但未提供FAQ,扣分。已知限制:SECURITY.md详细列出沙箱限制,但其他功能限制未明确,扣分。许可证:GPL-3.0-only,文件存在,但未提供许可证合规说明,扣分。版本和变更日志:版本号存在,但未提供CHANGELOG文件,扣分。维护责任:作者和仓库信息明确,但未提供维护计划或贡献指南,扣分。

5有效结果9 / 13 · 3.5/5

输出可用性:提供TUI和一次性模式,输出格式未详细说明,但基本可用,扣分。边际价值:提供多提供商支持、权限系统、沙箱等独特功能,价值明确,但未与其他工具对比,扣分。成本效益:性能数据(内存、CPU)提供,但未提供基准测试方法,扣分。

6证据核验3 / 8 · 1.9/5

声明可追溯性:README中的性能声明(如内存占用)未提供测量方法或复现步骤,扣分。跨来源佐证:博客文章链接提供,但未在本次审查中验证,扣分。事实与推断分离:文档区分事实和推断(如沙箱限制),但部分声明(如性能)未明确区分,扣分。

证据充分度: 评估于 2026年8月9日 审查版本 9774549abcf8
上游仓库在本次评估后已有新提交;当前评分仍对应所示审查版本,可能尚未覆盖最新改动。
使用前请注意
  • 沙箱仅保护bash工具,其他工具和MCP服务器不受限,且网络默认开放,存在数据外泄风险。
  • 存在--dangerously-skip-permissions标志,可完全绕过权限检查,需谨慎使用。
  • Windows支持未测试,可能存在问题。
  • 依赖未提供锁文件或审计,供应链安全需自行评估。
查看完整评分方法 →

这个 Agent 能做什么,适合哪些场景?

zerostack 是一个用 Rust 编写的交互式终端编程代理,灵感来自 pi 和 opencode。它通过 TUI 接收任务,并可调用编码代理常见的文件与命令工具,在权限策略控制下阅读、修改和检查当前项目。它支持 OpenRouter、OpenAI、Anthropic、Gemini、Ollama,以及可配置的自定义提供商,并可保存、加载和继续会话。默认构建包含循环任务、Git worktree、MCP、子代理、ARCHITECTURE.md 和状态信号等功能;ACP、持久记忆、hooks、advisor 和多模态输入则需要额外编译特性。项目将其定位为资源占用较小的本地 CLI 代理,适合希望在终端和本地代码库中使用多提供商模型的开发者。

启动 zerostack 后,用户在 crossterm TUI 中输入任务,代理使用所选 LLM 提供商处理请求,并按当前权限模式调用读写文件、搜索目录和 bash 等工具。codeplanreviewdebugask/prompt 模式会改变系统提示与可用操作边界;/mode 可切换权限模式。它可通过 /session 保存或恢复会话,通过 -c 继续最近会话,并在上下文窗口压力下自动压缩会话。/loop 会围绕 LOOP_PLAN.md 重复执行任务和可选验证命令;/worktree/wt-merge/wt-exit 支持按分支创建、合并和退出 Git worktree。启用相应特性后,它还能连接 MCP 服务器、以 zerostack --acp 作为 ACP Agent 服务运行,或把图片和 PDF 附加到消息中。

  1. 使用 OpenRouter API key 的个人开发者,希望在本地 Rust、Python 或其他代码仓库中,通过终端完成代码解释、编辑和命令验证。
  2. 需要在 OpenAI、Anthropic、Gemini、Ollama 或自定义兼容服务之间切换模型的团队成员。
  3. 在上下文窗口受限的长任务中,需要保存会话、自动压缩上下文,并用 /loop 按计划迭代实现与测试的开发者。
  4. 希望在不干扰主代理的情况下,用 /btw 对当前代码库提出只读侧问题的工程师。
  5. 采用分支隔离工作流、希望从聊天界面创建 worktree、完成后合并并清理分支的 Git 用户。
  6. 使用支持 ACP 的编辑器(文档示例为 Zed),并希望将 zerostack 作为本地编码代理后端的开发者。

这个 Agent 有哪些优点和局限?

优点
  • Rust CLI 与 crossterm TUI 面向较低资源占用;项目报告核心约 30k LoC、26MB 二进制和平均约 16MB RAM。
  • 提供 OpenRouter、OpenAI、Anthropic、Gemini、Ollama 及自定义提供商路径,减少对单一模型服务的绑定。
  • 五种权限模式、按工具 glob 规则、会话 allowlist 与重复工具调用检测,能为本地工具操作设置不同强度的控制。
  • 会话续接、自动压缩、循环任务、子代理和 Git worktree 工作流集中在一个终端代理中。
  • 默认构建含 MCP,额外启用 ACP 后可作为兼容编辑器的 Agent 服务端。
局限
  • Windows 支持未经过测试,跨平台采用前需要自行验证。
  • 运行需要配置 LLM 提供商及相应 API key;没有提供商配置时,ACP 模式无法处理提示。
  • ACP、持久记忆、hooks、advisor、图片和 PDF 输入不是默认构建功能,需要选择额外编译特性。
  • /loop 和 Git worktree 集成被标为实验性功能,worktree 自动合并发生冲突时仍可能需要人工处理。
  • --sandbox 是尽力而为机制:后端缺失时命令会带警告地不经沙箱运行,除非额外启用 --sandbox-required

如何安装或部署这个 Agent?

推荐安装方式:curl -fsSL https://raw.githubusercontent.com/gi-dellav/zerostack/main/install.sh | bash。也可使用 Cargo:cargo install zerostack;默认构建包含 loop、git-worktree、mcp、subagents、archmd、status-signals 和 multithread。需要 ACP、memory、hooks 或 advisor 时,运行 cargo install zerostack --features acp,memory,hooks,advisor,或使用 cargo install zerostack --all-features。首次运行前,为默认 OpenRouter 提供商设置凭据:export OPENROUTER_API_KEY="[api_key]"

如何使用这个 Agent?

在项目目录运行 zerostack 开始交互式会话;运行 zerostack -p "Explain this project" 执行一次性请求。可用 zerostack --provider openrouter --model deepseek/deepseek-v4-flash 显式指定提供商和模型,或用 zerostack -c 继续最近会话。运行 /prompt autoconfig 可交互式浏览文档并配置工具;运行 /help 查看完整命令。需要隔离 bash 命令时,可安装 bubblewrap 后使用 --sandbox;若必须拒绝未沙箱化的命令,则加入 --sandbox-required

这个 Agent 与同类方案有什么区别?

项目说明其设计灵感来自 pi 和 opencode,并将自身定位为更轻量的 Rust 编程代理。README 列出的对比性性能数据称,zerostack 平均 RAM 约 16MB、峰值约 24MB,而文中提及的 opencode 或其他 JavaScript 编程代理约为平均 300MB、峰值 700MB;这些是项目给出的测量结果。

常见问题

默认需要什么凭据?
默认提供商是 OpenRouter,快速开始使用 OPENROUTER_API_KEY。也可以改用 OpenAI、Anthropic、Gemini、Ollama 或已配置的自定义提供商。
它会不会不经确认修改文件或执行危险命令?
取决于权限模式。默认 standard 在当前目录及其子目录自动允许路径工具,并自动允许部分安全 bash 命令;restrictive 会为每项操作询问,readonly 则拒绝写入、编辑和 bash。--dangerously-skip-permissions 会完全绕过检查。
沙箱是否能安全执行不可信代码?
不是。文档将 --sandbox 描述为降低误操作损害的措施,而非针对不可信代码的安全边界;后端不可用时只有 --sandbox-required 会拒绝 bash 命令。
能连接编辑器吗?
可以,但需要以 acp 特性构建。运行 zerostack --acp 使用 stdio 模式,或加上 --acp-host--acp-port 启动 TCP 模式;文档以 Zed 为例。

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents