gi-dellav/zerostack

Lightweight coding agent written in Rust, optimized for memory footprint and performance

zerostack – 轻量级、基于 Rust 的编码助手

功能简介 – zerostack 是一款基于终端的 AI“编码代理”,可以为您编写、规划、审查、调试和重构代码。它与大语言模型提供商(OpenAI、Anthropic、Gemini、OpenRouter、Ollama 等)通信,然后使用内置工具集(文件读写、grep、git、shell 命令、网络搜索等)来执行请求的任务。整个系统以单个原生二进制文件(约 26MB)的形式运行,由 Rust 编写,与基于 JavaScript 的替代方案相比,旨在降低内存/CPU 占用。

主要功能

  • 多提供商支持 – 可接入任何 LLM 服务,以及自定义提供商钩子。
  • 丰富的提示词库 – 可在运行时切换内置系统提示词,如 codeplanreviewdebugbrainstormfrontend-design 等,或添加您自己的 Markdown 提示词。
  • 权限系统 – 五种安全模式(restrictivereadonlyguardedstandardyolo)控制代理可以调用哪些工具,并支持按工具的 glob 规则和会话级允许列表。
  • 会话持久化 – 保存、加载和恢复会话;自动上下文窗口压缩;可选的纯 Markdown 记忆,在多次运行之间注入系统提示词。
  • 终端 UI – crossterm TUI,支持 Markdown 渲染、鼠标复制、回滚,以及显示模型“思考”轨迹的开关。
  • 可扩展性 – 可选的编译时功能:
    • MCP(代理通信协议)连接 Zed 等编辑器。
    • 顾问 – 可咨询战略指导或移交给人类的第二模型。
    • 钩子 – 使用与 Claude Code 相同的 JSON 契约,可观察或否决工具调用的外部命令。
    • 多模态输入 – 附加图像或 PDF(如果提供商支持)。
    • 状态信号 – 通过 Unix 套接字发出运行状态事件,供外部状态栏使用。
  • 子代理与并行工作 – 生成快速的并行子代理来探索代码库,或运行 multistack 同时管理多个代理。
  • 沙箱 – 对代理运行的任何 shell 命令提供可选的 bubblewrap(Linux)或 zerobox(macOS)隔离,并支持凭据目录的细粒度暴露和网络控制。

使用方法

  1. 通过提供的脚本、Cargo、Homebrew 或 Nix 安装。
  2. 导出您的 LLM 提供商的 API 密钥(默认为 OpenRouter)。
  3. 运行 zerostack – 您会看到一个 TUI,可以在其中输入自然语言请求。
  4. 使用 /prompt <name>/mode <permission-mode> 即时更改代理的行为。
  5. 保存会话(/session save)并稍后恢复(zerostack -c)。

重要性

  • 性能 – 约 16MiB RAM 和接近零的空闲 CPU,适合低端机器或长时间运行的会话。
  • 安全性 – 权限系统和沙箱旨在防止意外破坏性命令,这是自主编码机器人常见的问题。
  • 原生 Rust – 避免了许多竞争代理所需的重量级 Node.js 运行时,启动更快,攻击面更小。
  • 可定制工作流 – 提示词链让您可以在引导式、可重复的过程中从头脑风暴 → 规划 → 编码 → 审查。

开始使用 – 仓库包含完整的 Get Started 指南、快速安装脚本,以及用于社区支持的专用 Matrix 聊天室。


以上所有细节均直接取自项目的 README。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目