I Hated Every Coding Agent, So I Built My Own — Mario Zechner (Pi)
Mario Zechner on why Pi strips coding agents down to a malleable core
Mario Zechner explains why he built Pi after Claude Code, OpenCode, and other harnesses stopped matching his need for predictable context, observability, and extensibility. The talk covers agent history from ChatGPT copy-paste to agentic search, Claude Code feature bloat, OpenCode context pitfalls, Terminal-Bench and Terminus as evidence for minimal harnesses, Pi’s four-tool design and TypeScript extensions, and defenses against agent-generated open-source spam.
Mario Zechner built Pi so he could inspect and change how his coding agent works. In this Mastra talk, he explains its small core and project-specific extensions, arguing that developers should be able to experiment with tools and workflows rather than accept a vendor's choices.
Key Points Covered
- Pi started from frustration with every harness he tried: Zechner says a 2025 AI hackathon with Peter Steinberger and Armin Ronacher led to months of building with agents. He then asked how hard it could be to write a coding agent he actually controlled 00:00–01:50(opens in a new tab).
- Claude Code defined the genre, then became too much tool for his workflow: He credits Claude Code with making agentic filesystem search work. For his use case, he argues it accumulated spaceship-like feature bloat, hidden context changes, terminal UI flicker, limited observability, and almost no deep extensibility 03:28–09:12(opens in a new tab).
- OpenCode matched his open-source instincts but still broke context expectations: Zechner criticizes its pruning of old tool results, which can bust prompt caches, and its injection of LSP errors before a task stabilizes. He also criticizes storing each message as its own JSON file and shipping a server architecture that exposed a security issue 10:53–15:52(opens in a new tab).
- Terminal-Bench made the minimalist thesis plausible: Terminus performs strongly while giving the model little more than a tmux session and keystrokes. This suggests many coding-agent features may not be necessary for model performance, even if humans still need a better developer experience 15:52–17:36(opens in a new tab).
- The field is still experimenting, so harnesses should be easy to change: Zechner argues that nobody yet knows the ideal coding-agent shape. He wants developers and agents to be able to modify the surrounding software so they can quickly try workflows instead of waiting for vendors to choose an approach 17:36–19:27(opens in a new tab).
- Pi keeps the core small: Separate packages connect to model providers, run the agent loop, and provide a terminal interface or programmatic access. A short system prompt accompanies four built-in tools: read, write, edit, and bash 18:38–22:06(opens in a new tab).
- Missing features are meant to be rebuilt as files or extensions: Pi omits built-in MCP, sub-agents, plan mode, background bash, and to-dos. Zechner instead recommends CLI tools, tmux,
PLAN.md,TODO.md, or custom TypeScript extensions that reload inside the project without restarting the agent 21:17–23:09(opens in a new tab). - Extensions are the experimentation surface: Pi lets users add custom tools, UI, prompt templates, themes, compaction, permission gates, custom providers, and remote read/write/edit/bash behavior. Users can also add community projects such as multi-agent chat or front-end annotation without changing the core 22:06–24:56(opens in a new tab).
- Tree sessions and cost tracking preserve observability: Zechner highlights tree-structured sessions, no hidden context injection, skills, full cost tracking, HTML export, and JSON formats. He also reports a Terminal-Bench result near Terminus with Claude Opus 4.5 before Pi even had compaction 24:56–25:48(opens in a new tab).
- Open-source maintainers need human-verification bottlenecks: After OpenClaw drove agent-generated issues and PRs toward Pi, Zechner adopted "OSS vacation." He also began auto-closing PRs from unknown accounts until the contributor opens a short, human-written issue. Mitchell Hashimoto's Vouch generalizes that idea for other repos 25:48–26:44(opens in a new tab).
Full video: https://www.youtube.com/watch?v=Dli5slNaJu0(opens in a new tab)