C
ChaoBro

Zerostack: A Minimalist Programming Agent Written Entirely in Rust

In the programming agent space, most projects seem to be doing addition—more features, larger context windows, more complex toolchains. But a recent project named Zerostack takes the opposite approach: do the most essential thing with the least code.

This programming agent—written entirely in Rust—scored 220 points and sparked 75 discussions on Hacker News. For a new project with only 51 commits and 136 stars, that level of traction is highly unusual.

The Confidence Behind Minimalism

Zerostack’s README opens by stating its positioning clearly: a minimalist programming agent inspired by pi and opencode.

Its feature list may not look flashy—but every item hits a real pain point:

  • Multi-model support: OpenRouter, OpenAI, Anthropic, Gemini, Ollama—and even custom providers
  • Standard toolset: Implements all standard tools required for programming agents, per the opencode documentation
  • Four working modes: Configurable permission modes—including per-tool access, session-based whitelists, and external directory policies
  • Session management: Save/load/resume sessions, with automatic compression to stay within context window limits
  • TUI terminal interface: Built on crossterm, supporting Markdown rendering, mouse selection, scrollback navigation, and toggleable reasoning visibility
  • Runtime system prompt switching: Switch between system prompt modes (e.g., claude, opencode, pi) mid-session—no skill management required

None of these features are revolutionary on their own—but combining them in a pure Rust project means one thing: extremely low memory footprint and blazing-fast startup time.

Why Rust?

Today’s mainstream programming agents—Claude Code, Cursor, Windsurf—are largely built with Electron or similar frameworks, routinely consuming hundreds of MBs—or even over 1 GB—of RAM.

Zerostack’s choice of Rust is no accident. Rust’s native compilation, zero runtime dependencies, and memory safety make it the ideal language for building high-performance CLI tools. For a programming agent designed for frequent, low-latency terminal interaction, millisecond-level responsiveness and MB-scale memory usage translate into a tangible UX advantage.

Imagine SSH’ing into a remote server and needing to run an agent task quickly—you don’t want a 500 MB Electron app. You want a tool that boots in under 100 ms and runs comfortably within 10 MB of memory.

Relationship with pi and opencode

Zerostack explicitly acknowledges inspiration from both pi and opencode. These three projects embody the same philosophy: a programming agent shouldn’t be a bloated IDE plugin—it should be a lightweight, embeddable command-line tool.

pi (a lightweight alternative to Aider) and opencode (an open-source terminal coding assistant) have already pioneered this direction. Zerostack’s innovation lies in reimplementing that vision in Rust—and refining permission control and model switching with greater precision.

Especially notable are its four configurable working modes—from fully permissive (all tools enabled) to strictly constrained (session-specific whitelists)—enabling flexible adaptation across security-sensitive environments. That’s a meaningful advantage for enterprise users.

Community Reaction

Discussions on Hacker News reveal an interesting split. One camp asks: “Another coding agent—what’s special about it?” The other replies: “Rust + minimalism + multi-model support—that’s exactly how a CLI tool should be.”

We believe the latter view captures the essence more accurately. Yes, the programming agent market is expanding rapidly—but most products compete by stacking features. Zerostack’s value lies in subtraction: keeping only the core interaction layer, and excelling at model selection, permission control, and session management—leaving everything else up to the user.

A Direction Worth Watching

Zerostack remains an early-stage project (51 commits), but its design philosophy deserves attention. If it continues iterating with community input, it could become a “Unix-philosophy” choice in the programming agent space—doing one thing well, and doing it very well.

For developers who live in the terminal—and care deeply about memory efficiency and startup speed—Zerostack is worth adding to your toolkit and trying out. After all, in an era of “everything Electron,” encountering a pure-Rust programming agent is refreshingly distinctive.

GitHub: gi-dellav/zerostack | Crates: zerostack 1.0.0