Mario Zechner wrote libGDX, the Java game framework that was everywhere on Android around 2011, and later worked on RoboVM and the animation tool Spine. In 2025 he became one of the loudest critics of the agent he used most, and then wrote his own. That agent, Pi, now runs inside OpenClaw and moved with him to Earendil in April 2026. Because Pi saves every session as a file and he published some of them, his recent setup can be checked against his own traces as well as his posts.

Before agents: ChatGPT and Cursor

His Pi post tells the early part briefly. He started by “copying and pasting code into ChatGPT,” tried “Copilot auto-completions (which never worked for me),” and then spent about a year and a half in Cursor. His 2025 review says he used it for tab completion and for rewriting functions.

April to October 2025: Claude Code

In April 2025 he and his friends each got a Claude Code subscription. By June it was his main agent. His Prompts are code post describes porting runtimes with it, driven by Markdown plans, JSON state files and his own lsp-cli, and he wrote vs-claude, an MCP server that let the agent open files in VS Code.

He also took it apart. In August he published cchistory, which tracks how Claude Code’s system prompt and tools change from release to release, and patched the binary to debug it and to show costs on a Max plan. His MCP benchmarks led him to drop MCP servers for small CLI tools that agents call through bash. The complaints that drove him away are in the Pi post: Claude Code “has turned into a spaceship with 80% of functionality I have no use for,” its prompts and tools change on every release, “which breaks my workflows,” and “also, it flickers.”

Extract and compare system prompts and tools from different Claude Code versions

  • src/
  • README.md
  • biome.json
  • package-lock.json
  • package.json
  • tsconfig.json
  • vitest.config.ts

TypeScriptpushed 30 Oct 2025as of 4 Nov 2026

Pi

The coding agent package appeared in his pi-mono repository on 17 October. It gives the model four tools: read, write, edit and bash. By the end of November he had been “exclusively using pi for the past few weeks,” and in December he wrote that he had “abandoned Claude Code” and that Pi “has been my exclusive daily driver for the past two months.”

AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

  • apps/
  • nix/
  • packages/
  • scripts/
  • AGENTS.md
  • CONTRIBUTING.md
  • LICENSE
  • README.md
  • SECURITY.md
  • biome.json
  • flake.lock
  • flake.nix

TypeScriptpushed 4 Nov 2026as of 4 Nov 2026

packages/coding-agent/src/tools/index.ts
export { bashTool } from "./bash.js";
export { editTool } from "./edit.js";
export { readTool } from "./read.js";
export { writeTool } from "./write.js";

import { bashTool } from "./bash.js";
import { editTool } from "./edit.js";
import { readTool } from "./read.js";
import { writeTool } from "./write.js";

export const codingTools = [readTool, bashTool, editTool, writeTool];
The commit that started Pi’s coding agent package in October 2025, and the size of its four tools. Re-created for this article.

The rest of his setup is small. He writes TypeScript on Node.js, and keeps an editor for reading: “I actually like VS Code for code exploration, viewing diffs, and other navigational tasks.” He runs Pi in VS Code’s terminal, where he is “happy with the little flicker,” and uses tmux for background processes and debugging sessions the agent drives. His sessions run from /Users/badlogic, on a Mac.

January to April 2026: what the sessions show

In April 2026 he uploaded 626 of his Pi sessions on pi-mono, from 16 January to 6 April, as a public dataset. They show him using Pi to build Pi, and they show a shift between model families. In January about three quarters of the model’s replies came from Claude Opus 4.5 on his Anthropic subscription and about a fifth from GPT-5.2-codex. In February GPT took the lead with about two thirds. In March, GPT-5.4 and GPT-5.3-codex wrote 84% of the replies through his ChatGPT subscription, and Opus 4.6 wrote 9%. The small remainder is him testing Pi’s other providers, from Kimi to GLM to MiniMax.

2026-03-06T11-53-40-755Z_646d3e3e-fc0b-4059-9e48-7bb38a6813ae.jsonl
{
  "type": "session",
  "version": 3,
  "id": "646d3e3e-fc0b-4059-9e48-7bb38a6813ae",
  "timestamp": "2026-03-06T11:53:40.755Z",
  "cwd": "/Users/badlogic/workspaces/pi-mono"
}
{
  "type": "model_change",
  "id": "31d2ab9d",
  "parentId": null,
  "timestamp": "2026-03-06T11:53:40.755Z",
  "provider": "openai-codex",
  "modelId": "gpt-5.4"
}
Assistant replies per model across the 626 sessions he published, counted with jq. Re-created for this article.

Almost all tool calls in the traces are bash, read and edit. The most common commands are git, rg and gh: the agent searches with ripgrep and handles GitHub issues and pull requests from the command line.

Tool calls by name, then the first word of every bash command, across his published sessions. Re-created for this article.

Earendil and the robot

On 8 April he announced that he had joined Earendil, Armin Ronacher’s company, and that Pi was moving with him. He is “in charge of all pi decisions, along with Armin and Colin,” and Pi stays MIT-licensed. Armin called it “one of the most thoughtful coding agents” in the space.

He kept criticizing the tool he left. In May he told The Wall Street Journal that “Claude Code is one of the most broken pieces of software I’ve ever used in my entire life.”

At the end of May he built a robot from a 10-euro toy, run by an agent “based on pi” on his M1 Max with local models through llama.cpp, with GPT-5.5 porting a text-to-speech model to Rust through Pi. In October he listed what he had added to Pi since November: AGENTS.md, skills, llama.cpp, extensions and an alternative TUI mode.

What the stack says

His stack is unusually small: one agent he wrote, an editor for reading, a terminal and Git. Because Pi works with any provider, his traces show him moving from Claude to GPT within three months without changing tools. In March he argued for the same control over the code itself: “let the agent do the boring stuff,” but write “anything that defines the gestalt of your system” by hand.

Claims I could not verify were left out

His session traces stop on 6 April 2026, so the model shares above may no longer hold. A reported interview in which he said Kimi K2.6 is good enough for his work exists only as a third-party summary. His operating system is inferred from paths and hardware, not stated.