AI & Deep Tech

Pi and the "primitives, not features" bet

Most coding agents race to add features. Pi went the other way — four tools, a system prompt under 1,000 tokens, and everything else opt-in. Why a deliberately minimal open-source harness passed 62,000 GitHub stars, and what its bet teaches everyone else.

HarmonyX Team July 19, 2026 · 6 min read
Pi and the "primitives, not features" bet
On this page

    Across this series we've covered what a harness is, the tools competing to be yours, and how to tune one. Now the outlier worth studying on its own: Pi, a harness whose whole strategy is to do less.

    While the big tools compete on feature count, Pi (pi.dev) — from Mario Zechner, the Austrian engineer behind the libGDX game framework — bets the opposite direction. Its pitch is one line: adapt the tool to your workflow, not your workflow to the tool. By June 2026 that bet had earned over 62,000 GitHub stars, making it one of the most popular open-source coding agents alive.

    The thesis: four tools and a tiny prompt

    Pi is built on a claim that sounds too austere to work: a coding agent needs exactly four tools — read, write, edit, bash — and a system prompt under 1,000 tokens. That's the entire core.

    Compare that to the maximalist tools shipping sub-agents, plan modes, permission systems, and bundled integrations out of the box. Pi ships none of that by default. No built-in MCP, no sub-agents, no plan mode, no permission popups. To a feature-comparison spreadsheet, it looks like it's losing.

    That's the point. Pi's argument is that these aren't features a harness should impose — they're choices you should make. Bundling them means living with someone else's opinion about how you work.

    Primitives, not features

    Pi's design word is primitives. Instead of finished features, it gives you building blocks and a clean way to assemble them:

    • A typed TypeScript extension system — add exactly the behavior you want, with real types, not config soup.
    • Skills — capability packages you install when you need them.
    • Prompt templates and themes — bundled as packages, shared over npm or git.

    Want sub-agents? Install an extension, or write one. Want a plan mode? Same. The behavior the big tools bake in, Pi lets you bolt on — which means you can also leave it off, swap it, or replace it with something that fits how your team actually works. Your harness becomes a set of packages you own, not a product you rent.

    flowchart TD
      subgraph Core["Pi core — always on"]
        R[read] & W[write] & E[edit] & B[bash]
      end
      subgraph Opt["Opt-in — install only if you want it"]
        S[sub-agents] & P[plan mode] & M[MCP] & K[skills]
      end
      Core --> Loop[Agent loop]
      Opt -. bolt on via extensions .-> Loop
    Pi's bet: a tiny always-on core, everything else opt-in — so you never carry a feature you didn't choose.

    Provider-agnostic by design

    Pi is bring-your-own-key and provider-agnostic. The same agent loop runs against 15+ providers — Anthropic, OpenAI, Google, Bedrock, Mistral, Groq, local models via Ollama — and you can switch models mid-session. Start a task on a fast cheap model, escalate to a frontier model for the hard part, drop to a local model for anything sensitive, without leaving the session.

    There's a quieter benefit: no lock-in. When your harness isn't welded to one vendor's model, a pricing change or a discontinued free tier — the kind that hit Google's individual users in 2026 — is a config edit, not a migration.

    One more nice touch: Pi's session history is tree-structured. Conversations can branch and merge inside a single file, and you can share a whole session as a GitHub gist — so exploring two approaches doesn't mean losing the first.

    What Pi's bet teaches everyone else

    You don't have to adopt Pi to learn from it. Its success is evidence for a few things worth internalizing whichever harness you use:

    • Less is often more. The four-tools thesis works because a small, sharp toolset beats a large, overlapping one — the same lesson mature harnesses keep rediscovering. Constraint is a feature.
    • Opinions should be opt-in. The behaviors a tool forces on you are the ones you'll eventually fight. A harness you can reshape ages better than one you can only accept.
    • Ownership beats convenience, past a certain scale. For a team betting real delivery on AI agents, owning the harness — being able to inspect, modify, and de-risk every part — is worth more than a tool that does everything but explains nothing.

    Pi is the clearest expression of a broader shift: the harness is becoming something you compose, not just something you buy. Even if you never touch it, that's the direction the whole field is moving — and it's why the harness, not the model, is where the interesting decisions now live.

    Part four of our series on the AI harness era. Next, the closer: what this all means for your business — build versus buy, and where the value actually accrues.

    Frequently Asked Questions

    What is Pi (pi.dev)?

    Pi is a minimal, open-source (MIT) coding-agent harness from Mario Zechner, the creator of libGDX. It is built on one thesis: an agent needs exactly four tools — read, write, edit, bash — and a system prompt under 1,000 tokens, with everything else opt-in.

    What does “primitives, not features” mean?

    Instead of bundling finished features like sub-agents, plan mode, or MCP, Pi ships building blocks — a typed TypeScript extension system, skills, and prompt templates — so you add only the behavior you choose and can leave, swap, or replace the rest.

    Why is Pi provider-agnostic?

    The same agent loop runs against 15+ providers — Anthropic, OpenAI, Google, local models via Ollama, and more — with model switching mid-session. Because the harness is not welded to one vendor’s model, a pricing change or discontinued tier is a config edit, not a migration.

    Link copied