Pi Building Pi, OpenClaw's Minimalist Coding Agent
Mario Zechner on building and using Pi
Mario Zechner demonstrates how he uses Pi to maintain Pi itself, pairing a deliberately minimal agent harness with strong human architectural control. The session covers minimalist tool design, self-modifying agent extensions, issue triage with GitHub CLI, deterministic checks, transcript-like branch workflows, and why human taste and module boundaries still matter when agents can generate code at high volume.
Mario Zechner uses Pi to fix a bug in Pi itself, then begins untangling an agent-powered robot project. The demonstrations show where he lets the agent investigate and implement, and where he intervenes on code structure and API design.
Key Points Covered
- Minimalism is a product choice: Zechner explains that Pi stays small because frontier models already understand bash, files, tmux, GitHub CLI, and ordinary developer tools. Instead of baking every workflow into the harness, Pi exposes enough extension points for users to have the agent modify its own behavior 11:48–15:57(opens in a new tab).
- Agents are powerful, but not a dark factory: He argues that fully unattended "dark factory" software generation still fails because unspecified details get filled in with average internet code and small mistakes compound. His preferred model is an agent that accelerates a responsible engineer, not one that replaces architectural judgment 06:45–08:17(opens in a new tab).
- Human oversight depends on risk: Mission-critical, security-sensitive, or architectural work still needs close review, while lower-risk internal tooling can be delegated more freely. The dividing line is not whether an agent can write code, but whether the human is still accountable for the system boundaries and quality bar 08:44–11:14(opens in a new tab).
- Pi can use Pi to fix Pi: The live workflow starts from a GitHub issue, asks Pi to reproduce and analyze the report, lets the agent use GitHub CLI and repository context, then has Zechner review the implementation before wrapping up with checks, changelog updates, comments, commits, and pushes 16:52–36:36(opens in a new tab).
- Review abstractions before rejecting them: Zechner questions a new helper, then reads how it is used and accepts it. The demonstration shows him checking whether the abstraction earns its place, not automatically making the agent's diff smaller 29:08–32:44(opens in a new tab).
- Deterministic checks beat instructions alone: AGENTS.md-style guidance helps, but models may ignore style rules under pressure. Zechner relies on linting, type checking, smoke tests, pre-commit hooks, and other deterministic feedback loops so the system can reject bad output automatically 37:03–42:55(opens in a new tab).
- Agent-built code still needs refactoring: The robot demo starts from a working but tangled app whose parts communicate over WebSockets. Zechner has the agent map dependencies and propose module boundaries, then starts an incremental refactor while shaping the API. The recording ends this demonstration before the refactor is finished or validated 48:27–1:09:37(opens in a new tab).
- Large-codebase work starts with context control: For big systems, he either points the agent directly at the files he knows matter or uses the agent as a research intern to find entry points before implementation. Pi's branching/tree workflow lets him explore, summarize, and return to a cleaner implementation branch without trusting opaque sub-agent output 1:12:03–1:23:12(opens in a new tab).
- Taste and boundaries are the real guardrails: The episode closes on a warning: teams that let people outside a subsystem freely agent-code into it can create unsalvageable slop. Keeping humans involved in module boundaries and API design makes even bad generated modules easier to replace later 1:24:04–1:30:17(opens in a new tab).
Full video: https://www.youtube.com/watch?v=DPgJjRdQWrg(opens in a new tab)