Hacker News 热门(buzzing.cc 中文翻译)
精选
74AI 编辑部评分,满分 100

Zerostack--一款采用纯Rust语言编写、受Unix启发的编程代理

2026-05-17 08:46· 91天前· gidellav
AI 导读

Zerostack是一款采用纯Rust语言编写、受Unix哲学启发的编程代理工具,已正式发布1.0.0版本并在Rust包管理平台crates.io上提供。该发布在技术社区Hacker News上获得115点关注,反映出开发者对其的高度兴趣。Rust语言以内存安全和性能见称,Unix设计强调简洁与模块化,Zerostack结合两者优势,旨在提升编程效率,为代码辅助领域带来新选择。

推荐理由

不走 IDE 插件的老路,Zerostack 把编程代理做成命令行管道,Rust 纯血、Unix 哲学,适合喜欢拼接工具的开发者尝鲜。

正文 · AI 翻译

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 有四种权限模式,从最安全到最宽松依次为:

  1. restrictive(-R):除非在配置中明确允许,否则每个工具操作都会提示请求批准
  2. standard(默认):安全命令(如 ls、cd、git log、cargo check)自动批准;写入和破坏性操作需要询问
  3. accept-all(--accept-all):自动批准工作目录内的所有操作;外部路径会提示确认
  4. 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 的示例工作流程

  1. 创建 — /worktree feature-x 创建一个新分支和 worktree 目录,并将你移入该目录。
  2. 工作 — 正常使用 zerostack;更改保留在功能分支上。
  3. 合并 — /wt-merge 指示智能体合并分支、推送、清理,并返回主仓库。
  4. 退出 — /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 天的下载量

显示方式

堆叠图

来源:Hacker News 热门(buzzing.cc 中文翻译) · crates.io

Zerostack--一款采用纯Rust语言编写、受Unix启发的编程代理

Hacker News 热门(buzzing.cc 中文翻译)·2026-05-17 08:46·91天前·gidellav
AI 导读

Zerostack是一款采用纯Rust语言编写、受Unix哲学启发的编程代理工具,已正式发布1.0.0版本并在Rust包管理平台crates.io上提供。该发布在技术社区Hacker News上获得115点关注,反映出开发者对其的高度兴趣。Rust语言以内存安全和性能见称,Unix设计强调简洁与模块化,Zerostack结合两者优势,旨在提升编程效率,为代码辅助领域带来新选择。

正文 · AI 翻译

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 有四种权限模式,从最安全到最宽松依次为:

  1. restrictive(-R):除非在配置中明确允许,否则每个工具操作都会提示请求批准
  2. standard(默认):安全命令(如 ls、cd、git log、cargo check)自动批准;写入和破坏性操作需要询问
  3. accept-all(--accept-all):自动批准工作目录内的所有操作;外部路径会提示确认
  4. 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 的示例工作流程

  1. 创建 — /worktree feature-x 创建一个新分支和 worktree 目录,并将你移入该目录。
  2. 工作 — 正常使用 zerostack;更改保留在功能分支上。
  3. 合并 — /wt-merge 指示智能体合并分支、推送、清理,并返回主仓库。
  4. 退出 — /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 天的下载量

显示方式

堆叠图

来源:Hacker News 热门(buzzing.cc 中文翻译)· crates.io