Zerostack:用 Rust 写的超轻量 AI 编程助手 只要 8MB 内存
今天 Hacker News 首页上出现了一个让人眼前一亮的项目——Zerostack,一个用纯 Rust 编写的极简 AI 编程助手。上线一小时就拿到了 73 分,还在持续飙升。它的卖点很简单粗暴:整个二进制文件只有 8.9MB,运行时内存占用约 8MB,空闲 CPU 占用 0%。作为对比,同类的 JavaScript 系工具(比如 opencode)动辄 300MB 内存、2% 空闲 CPU。
如果你一直在找一个轻量级 AI 编程助手,不想为了写个代码补全就让电脑风扇狂转,Zerostack 可能就是你等的那个东西。本文将带你从安装到实战,全面了解这个项目。
目录
Zerostack 是什么
Zerostack 是一个运行在终端里的 AI 编程助手,灵感来自 pi 和 opencode。它用纯 Rust 写成,代码量大约 7000 行,却实现了大多数 AI 编程助手的核心功能:
- 多 AI 供应商切换(OpenRouter、OpenAI、Anthropic、Gemini、Ollama、自定义)
- 完整的文件操作工具(读写文件、bash 命令、grep 搜索、glob 匹配)
- 基于 crossterm 的终端 UI,支持 Markdown 渲染和鼠标选择
- 会话管理:保存、加载、恢复、自动压缩
- MCP(Model Context Protocol)支持
- 集成 Exa 搜索(WebFetch + WebSearch)
- Git Worktrees 集成
- 沙盒支持(通过 bubblewrap)
简单说,它就是一个"什么都有但什么都不臃肿"的 AI 编程工具。
为什么用 Rust 写
用 Rust 写这类工具的好处是显而易见的:编译成原生二进制,没有运行时开销。Node.js 系的工具(比如 opencode、Cursor 的部分组件)需要 V8 引擎,光是启动就要吃掉几十 MB 内存。而 Rust 编译出来的二进制直接跑在操作系统上,不需要垃圾回收、不需要 JIT 编译。
Zerostack 选择了 crossterm 作为终端 UI 库,这意味着它不依赖 ncurses 等系统库,可以在 Windows、macOS、Linux 上无缝运行。Markdown 渲染、语法高亮都是在终端里直接完成的。
Rust 的表达能力很强,加上优秀的 crate 生态(reqwest 做 HTTP、tokio 做异步、serde 做序列化),很多在 JS 里需要几百行的功能,在 Rust 里几十行就搞定了。Zerostack 证明了"少即是多"的工程哲学。
性能对比:Zerostack vs 竞品
数字不会说谎。下面是 Zerostack 和主流 AI 编程工具的性能对比:
| 指标 | Zerostack | opencode (JS) | Claude Code |
|---|---|---|---|
| 二进制大小 | 8.9 MB | ~50 MB+ (含 Node) | ~100 MB+ (含运行时) |
| 内存占用 | ~8 MB | ~300 MB | ~200 MB |
| 空闲 CPU | 0% | ~2% | ~1% |
| 工作时 CPU | ~1.5% | ~20% | ~10% |
| 代码量 (LoC) | ~7,000 | ~15,000+ | 未开源 |
内存占用差了将近 37 倍,CPU 占用差了 13 倍。对于笔记本用户来说,这意味着更长的续航和更安静的风扇。对于服务器部署来说,这意味着更低的云账单。
安装方法
Zerostack 的安装非常简单,只需要一个命令:
cargo install zerostack
前提是你已经安装了 Rust 工具链。如果还没有:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完成后,zerostack 命令就可以直接使用了。整个过程不超过一分钟(取决于你的网速和编译速度)。
cargo install zerostack --features mcp。MCP 是可选的编译时特性,不启用的话二进制会更小。
快速上手
安装好之后,在终端里直接运行:
zerostack
你会看到一个基于 crossterm 的终端界面。第一次运行时,Zerostack 会引导你配置 AI 供应商。最简单的方式是用 OpenRouter:
# 设置环境变量
export OPENROUTER_API_KEY="your-api-key-here"
# 启动 zerostack
zerostack
进入界面后,你可以直接用自然语言和它对话。比如:
帮我写一个 Python 的快速排序读取当前目录下的 main.rs 并解释它的功能在项目里搜索所有用到了 unwrap() 的地方
Zerostack 会自动调用合适的工具(文件读取、grep 搜索等)来完成任务。
多供应商支持
Zerostack 支持几乎所有主流 AI 供应商,这意味着你不会被锁定在某一家:
- OpenRouter:一站式访问几乎所有模型,推荐新手使用
- OpenAI:GPT-4o、o1、o3 等
- Anthropic:Claude 3.5 Sonnet、Claude 4 系列
- Google Gemini:Gemini 2.0、Gemini 2.5 Pro
- Ollama:本地运行的开源模型,完全离线可用
- 自定义 API:任何兼容 OpenAI 格式的 API 端点
这种灵活性特别适合需要在不同场景下切换模型的开发者。比如日常编码用 Claude Sonnet(便宜快),复杂架构设计用 o3(推理强),敏感代码用 Ollama(本地不出网)。
内置工具
Zerostack 内置了一套完整的开发工具:
- 文件操作:读取、写入、编辑文件
- Bash 执行:运行 shell 命令
- Grep 搜索:在代码库中搜索文本或正则
- Glob 匹配:按模式查找文件
- WebFetch:抓取网页内容
- WebSearch:通过集成的 Exa 搜索引擎搜索网络
这些工具覆盖了日常开发的大部分需求。特别是 WebFetch 和 WebSearch 的集成,让你不需要离开终端就能查文档、搜 Stack Overflow。
提示词系统
Zerostack 内置了一套精心设计的提示词系统,针对不同场景优化:
- code:通用编码任务
- plan:项目规划和架构设计
- review:代码审查
- debug:调试和错误排查
- ask:问答和知识查询
- brainstorm:头脑风暴
- frontend-design:前端设计
- review-security:安全审查
- simplify:代码简化
- write-prompt:编写提示词
你可以根据当前任务选择最合适的提示词模式,获得更精准的 AI 响应。比如在做安全审查时切换到 review-security 模式,AI 会更关注潜在的安全漏洞和最佳实践。
高级功能
会话管理
Zerostack 支持完整的会话生命周期管理。你可以保存当前会话,下次继续。对于长时间的编码任务,这个功能非常实用。更重要的是,它有自动压缩机制——当对话上下文太长时,会自动压缩旧的对话内容,避免超出模型的上下文窗口。
Git Worktrees 集成
对于需要同时处理多个分支的开发者,Zerostack 提供了原生的 Git Worktrees 支持:
/worktree— 创建新的 worktree/wt-merge— 合并 worktree 的更改/wt-exit— 退出并清理 worktree
这让你可以在一个仓库里同时开多个"工作区",每个 worktree 对应一个分支,互不干扰。
Loop 系统
对于需要长时间运行的任务(比如大规模重构、批量文件处理),Zerostack 提供了 /loop 命令。它会让 AI 持续工作直到任务完成,期间自动处理中间结果。
Doom-loop 检测
这是个很聪明的设计。当 AI 连续 3 次执行完全相同的工具调用时,Zerostack 会触发警告——它可能陷入了"死循环"。这个机制能有效防止 AI 在遇到问题时无限重试同一个失败的操作。
权限系统
安全是 AI 编程工具的重要考量。Zerostack 提供了 4 种权限模式:
- restrictive:最严格,所有操作都需要确认
- standard:默认模式,危险操作需要确认
- accept-all:接受所有操作,不再询问
- yolo:完全放开,包括执行任意 shell 命令
对于生产环境,建议使用 restrictive 或 standard 模式。如果你在本地沙盒环境里工作,可以考虑 accept-all。yolo 模式……只在你非常确定自己在做什么的时候用。
此外,Zerostack 还支持通过 bubblewrap 进行沙盒隔离,进一步限制 AI 的文件系统访问范围。
在 AI 编程工具生态中的位置
目前 AI 编程工具市场已经相当拥挤,但 Zerostack 找到了自己的差异化定位:
- Claude Code:Anthropic 的官方工具,功能最全,但不开源、绑定 Anthropic 模型、资源占用较高
- Cursor:基于 VS Code 的 IDE,功能强大但需要 GUI,对远程开发不友好
- opencode:Zerostack 的直接灵感来源,功能类似但用 JavaScript 写,资源占用高
- Aider:Python 写的终端 AI 工具,生态丰富但启动慢、依赖多
- Zerostack:Rust 写的极简方案,资源占用最低,适合资源受限环境和追求效率的开发者
Zerostack 特别适合这些场景:
- 在资源受限的服务器或 VPS 上使用 AI 编程
- 需要长时间运行 AI 助手但不想影响其他工作
- 追求极致的终端工作流
- 对开源和代码审计有要求的团队
总结
Zerostack 是 AI 编程工具领域的一股清流。在一个大家都在堆功能、加体积的时代,它用 7000 行 Rust 代码证明了:一个好的工具不需要臃肿。
它的核心优势可以总结为三点:
- 极致轻量:8.9MB 二进制、8MB 内存、0% 空闲 CPU
- 功能完整:多供应商、多工具、会话管理、权限控制一个不少
- 开源透明:纯 Rust 实现,代码可审计,社区可贡献
如果你是一个追求效率的开发者,或者你的开发环境资源有限,强烈建议试试 Zerostack。一行 cargo install zerostack 就够了。