Minimal Agent Harness¶
Summary¶
The design philosophy that coding agents should have the smallest possible tool set and system prompt, trusting that models are reinforcement-trained to know how to code without extensive instructions.
Core Thesis¶
"We are in the poke around and find out phase of coding agents and their current form is not their final form."
The minimal harness approach strips away everything unnecessary and lets the model's post-training do the heavy lifting.
Evidence: The Terminal Benchmark¶
Terminal is the most minimal coding agent harness possible: - Only gives the model a tool to send keystrokes to a tmux session and read output - No file tools, no sub-agents, no special features - Scores higher than native harnesses (Claude Code, Codex) on the leaderboard across model families
This suggests that elaborate agent scaffolding may not be necessary — the model already knows how to code.
Minimal vs. Maximal Approaches¶
| Minimal (Pi, Terminal) | Maximal (Claude Code, Open Code) | |
|---|---|---|
| Tools | 4 (Read, Bash, Edit, Write) | 15+ |
| System prompt | <1000 tokens | ~14,000 tokens |
| Permissions | YOLO (none by default) | Always-ask modes |
| Context management | Agent controls it | Platform controls it (behind the scenes) |
| Extensibility | Full (TypeScript) | Limited (hooks spawn processes) |
| Model choice | Any | Single provider |
Arguments for Minimalism¶
- Context window savings — fewer tokens spent on agent instructions, more on actual work
- User control — context belongs to the user, not the platform
- Observability — user sees everything the agent does
- Flexibility — extensions let users add exactly what they need
- Model-agnostic — works with any provider
Arguments Against Minimalism¶
- Convenience — built-in features work out of the box
- Safety — permission prompts prevent accidental damage
- Ecosystem — MCP servers, sub-agents, hooks ready to use
- Support — backed by major companies with dedicated teams
When to Use Minimal¶
- You value control and customizability over convenience
- You want to use models other than the platform's native one
- You need to encode complex deterministic workflows (via extensions)
- You want maximum context window for actual work