zerostack - crates.io:Rust 包注册表
zerostack v1.0.0
用 Rust 编写的极简编码智能体,针对内存占用和性能进行了优化
- #ai
- #cli
- #dev
zerostack
用 Rust 编写的极简编码智能体,灵感来源于 pi 和 opencode。
功能特性
- 多提供商支持:OpenRouter、OpenAI、Anthropic、Gemini、Ollama,以及自定义提供商
- 文件工具:读取、写入、编辑(通过精确匹配并显示差异)、grep 搜索、查找文件、列出目录
- Bash 执行:带权限门控,可选的沙箱隔离机制,以及死循环检测
- 权限系统:四种可配置模式,支持按工具设置模式、会话允许列表和外部目录策略
- 会话管理:保存/加载/恢复会话,自动压缩以保持在上下文窗口内
- 终端界面:基于 crossterm,支持 Markdown 渲染、鼠标选择/复制、回滚、推理过程可见性切换
- 提示词系统:运行时可在系统提示词模式间切换(代码、规划、审查、调试等),根据任务定制智能体行为,无需管理技能包。
- MCP 支持:连接 MCP 服务器以扩展工具集
- 集成的 Exa 搜索:支持 WebFetch 和 WebSearch 工具
- 集成的 Ralph Wiggum 循环:为长周期任务提供循环能力
- 集成的 Git Worktrees 集成:使用 /worktree 将智能体从一个工作树移动到另一个工作树。
性能
zerostack 是市场上最小巧、性能最高的编码智能体之一。
- 代码行数:约 7k LoC
- 二进制文件大小:8.9MB
- 内存占用:空会话约 8MB,工作时约 12MB(相比之下,opencode 或其他基于 JS 的编码智能体约为 300MB)
- CPU 使用率:空闲时 0.0%,使用工具时约 1.5%(在 Intel i5 第 7 代上测量;相比之下,opencode 空闲时约 2%,工作时约 20%)
安装
要安装 zerostack,您必须已安装 Cargo 和 git。然后,运行:
cargo install zerostack
现在您已准备好使用轻量级编码智能体了!
可选:沙箱模式
安装 bubblewrap 以使用 --sandbox 功能,该功能会在隔离环境中运行每条 bash 命令,保护您的系统免受意外或恶意损害:
# Debian/Ubuntu
apt install bubblewrap
# Fedora
dnf install bubblewrap
# Arch
pacman -S bubblewrap
快速入门
# Set your API key (OpenRouter is default)
export OPENROUTER_API_KEY="[api_key]"
# Interactive session (default prompt: code)
zerostack
# One-shot mode
zerostack -p "Explain this project"
# Continue last session
zerostack -c
# Explicit provider/model
zerostack --provider openrouter --model deepseek/deepseek-v4-flash
提示词系统
zerostack 包含一组内置的系统提示词,可改变智能体的行为和语气。
其理念是构建一套完整的提示词体系,能够完全替代诸如 superpower 或 Claude 官方技能这类功能。
你可以使用 /prompt 在不同提示词之间切换,或列出所有已注册的提示词。
内置提示词:
| 提示词 | 描述 |
|---|---|
| code(默认) | 编码模式,具备完整的文件与 bash 工具访问权限,采用 TDD 工作流 |
| plan | 仅规划模式——进行探索并生成方案,不编写代码 |
| review | 代码审查模式——审查代码的正确性、设计、测试及影响 |
| debug | 调试模式——在提出修复方案前先定位根本原因 |
| ask | 只读模式——仅允许 read/grep/glob 操作,禁止写入或执行 bash |
| brainstorm | 仅设计模式——探索思路并呈现设计方案,不涉及代码 |
| frontend-design | 前端设计模式——打造独特且具备生产级品质的 UI |
| review-security | 安全审查模式——查找可利用的安全漏洞 |
| simplify | 代码简化模式——优化代码清晰度,不改变其行为 |
| write-prompt | 提示词编写模式——创建并优化智能体提示词 |
你也可以通过将 markdown 文件放置在 $XDG_CONFIG_HOME/zerostack/prompts/ 目录下,并按名称引用它们,来创建自定义提示词。
此外,智能体会自动从项目根目录或任意上级目录加载 AGENTS.md 或 CLAUDE.md 文件,并将其内容注入到系统提示词中。使用 -n / --no-context-files 参数可禁用此功能。
权限系统
zerostack 有四种权限模式,从最安全到最宽松依次为:
- restrictive(-R):除非在配置中明确允许,否则每个工具操作都会提示请求批准
- standard(默认):安全命令(如 ls、cd、git log、cargo check)自动批准;写入和破坏性操作需要询问
- accept-all(--accept-all):自动批准工作目录内的所有操作;外部路径会提示确认
- yolo(--yolo):自动批准所有操作,无需提示
可以在配置文件中通过精细的 glob 模式为每个工具单独配置权限。例如,你可以允许自动写入 **.rs 文件,同时在写入其他文件前始终询问。
会话允许列表会在会话期间持续记录已批准的决策,因此你无需重复确认同一操作。
死循环检测:同一工具调用重复 3 次及以上时,会触发警告提示(或根据配置直接拒绝),防止失控的智能体滥用破坏性操作。
斜杠命令
以下是最重要的斜杠命令列表:
- /model — 切换模型
- /thinking — 设置思考级别
- /clear — 清除对话
- /session — 列出/保存/加载会话
- /loop — 调度周期性提示词
- /prompt — 列出或更改智能体的提示词
- /mode — 设置权限系统的模式
要查看所有命令,请使用 /help。
会话管理
会话保存在 $XDG_DATA_HOME/zerostack/sessions/ 目录下。使用 -c 可恢复最近的会话,使用 -r 可浏览并选择一个会话,使用 --session <id> 可加载特定会话。
循环系统
zerostack 包含一个用于长周期任务的迭代式编码循环。智能体会反复读取任务,从计划中选择一项,执行该项,运行测试,更新计划,然后循环,直到任务完成或达到迭代次数上限。
注意:循环系统是一个实验性功能。
循环用法
/loop Implement the user authentication system
/loop stop
/loop status
- /loop <prompt> — 使用给定的提示词启动一个循环
- /loop stop — 停止当前活动的循环
- /loop status — 显示当前循环状态
每次迭代都包含原始任务、不断演进的 LOOP_PLAN.md 文件、上一次迭代的摘要以及任何验证输出。当循环处于活动状态时,非斜杠输入将被阻止。
通过 CLI 进行无界面循环
zerostack --loop --loop-prompt "Refactor the API" --loop-max 10 --loop-run "cargo test"
| 标志 | 描述 |
|---|---|
| --loop | 启用无界面循环模式 |
| --loop-prompt <text> | 每次迭代的提示词 |
| --loop-plan <path> | 自定义计划文件路径(默认:LOOP_PLAN.md) |
| --loop-max <N> | 最大迭代次数(默认:无限制) |
| --loop-run <cmd> | 每次迭代后运行的验证命令 |
Git 工作树集成
zerostack 使用 git 工作树提供了一种按任务分支的工作流程。您可以直接在聊天界面中创建、操作、合并和退出工作树。
注意:Git 工作树集成是一个实验性功能。
Git 工作树用法
工作树集成提供 3 个斜杠命令:
| 命令 | 描述 |
|---|---|
| /worktree <name> | 在名为 <name> 的分支上创建一个 git 工作树并移入其中(如果该工作树已存在则跳过创建) |
| /wt-merge [branch] | 将工作树分支合并到 [branch](默认:main/master),推送,清理,然后返回主仓库 |
| /wt-exit | 返回主仓库,不进行合并 |
Git worktrees 的示例工作流程
- 创建 — /worktree feature-x 创建一个新分支和 worktree 目录,并将你移入该目录。
- 工作 — 正常使用 zerostack;更改保留在功能分支上。
- 合并 — /wt-merge 指示智能体合并分支、推送、清理,并返回主仓库。
- 退出 — /wt-exit 立即返回主仓库,不进行合并。
支持的提供商
- OpenRouter(默认)
- 兼容 OpenAI 的提供商(vLLM、LiteLLM 等)
- Anthropic
- Gemini
- Ollama
自定义提供商可通过 $XDG_CONFIG_HOME/zerostack/config.json 中的任意基础 URL 和 API 密钥环境变量进行配置。
许可证
GPL-3.0-only
元数据
发布日期:30 天前
2024 版
许可证:GPL-3.0-only
6.7K SLoC
大小:115 KiB
包 URL:pkg:cargo/zerostack@1.0.0
安装
cargo install zerostack@1.0.0 运行上述命令将全局安装 zerostack 二进制文件。
浏览源代码
仓库
所有者
1.0.0 版本的统计概览(查看全部)
历史总下载量 116 次
已发布 30 个版本
过去 90 天的下载量
显示方式
堆叠图