Zerostack is a minimal Rust coding agent (~7k LoC, 8.9MB binary, ~12MB RAM) with multi-provider LLM support, permission gating, MCP, and a TUI.
Key Takeaways
Supports OpenRouter, OpenAI, Anthropic, Gemini, Ollama, and custom providers; default provider is OpenRouter with DeepSeek or any model.
Four permission modes (restrictive, standard, accept-all, yolo) with per-tool glob patterns, session allowlists, and doom-loop detection after 3 identical calls.
Built-in prompt library (code, plan, review, debug, ask, security, simplify, etc.) switchable at runtime via /prompt; custom prompts via markdown files in ~/.config/zerostack/prompts/.
Git worktree integration (/worktree, /wt-merge, /wt-exit) and headless loop mode (--loop) for long-horizon tasks are included but marked experimental.
RAM is ~8-12MB versus ~300MB for opencode or JS-based agents; optional bubblewrap sandbox isolates every bash command.
Hacker News Comment Review
The lightweight footprint argument got pushback: most agent time is spent waiting on LLM responses, so RAM savings matter mainly on constrained hardware or long-running sessions that balloon to tens of gigabytes in tools like Claude Code.
Extensibility is the sharpest gap commenters flagged: pi’s hook system lets extensions stack and override behavior anywhere; zerostack’s customization is limited to prompt files, which is a fundamentally weaker model.
A parallel thread emerged around how thin an agent harness actually needs to be: one commenter shipped a working repl-plus-approvals agent in under 200 lines, reinforcing that differentiators will increasingly be DevX and eval scores, not harness complexity.
Notable Comments
@nopurpose: Asks how to add custom tools; notes opencode has a TS SDK, while Rust would need something heavier like a gRPC bridge similar to Terraform providers.
@zbyforgotp: Raises the unsolved problem of evocable approvals at arbitrary recursion depth when agents spawn sub-agents, suggesting bubblewrap plus yolo mode as a partial workaround.