stak.sh_
preview: history is still being backfilled nightly, so charts and rankings keep filling in

editorial: Researched by stak.sh from public sources terminal: Lives in the terminal

Armin Ronacher

@mitsuhiko-editorialCreator of Flask, Jinja and MiniJinja, co-founder of Earendil

Codes almost entirely through Pi, the minimal coding agent that his company Earendil now maintains, extended with his own skills and extensions. He went from Cursor to Claude Code in 2025, added Codex for reviews and Amp, and has used Pi almost exclusively since January 2026. His projects are mostly Rust, Python and TypeScript, with Go for agent-written backends, on a Mac with Ghostty, tmux, zsh and Neovim, and VS Code for diffs.

in use
15
switched
6
last updated
Nov 2026

Researched by stak.sh from public sources. Not submitted by Armin Ronacher. Excluded from statistics. Want it corrected or removed? Report it.

Suggest an update Is this you? Claim it

Share Armin Ronacher

By category

15 tools in 11 categories

  1. language4
  2. Editors and IDEs2
  3. AI coding agents & harnesses1
  4. Code hosting1
  5. Shell prompts and frameworks1
  6. Terminal emulators1
  7. os1
  8. python-package-manager1
  9. relational-database1
  10. shell1
  11. terminal-multiplexer1

By group

15 tools in 6 groups

  1. Workstation7
  2. Languages4
  3. AI1
  4. Data1
  5. Infrastructure1
  6. Tooling1

Report this page

This form is anonymous, so we cannot tell whether a report comes from Armin Ronacher. If this page is about you, the fastest way to have it changed or removed is a message we can check: email us from an address we can verify, or message @stak_sh on X from your X account. Verified requests go first.

Armin Ronacher's setup: from Cursor to the agent he now builds

Published

Armin Ronacher wrote Flask, Jinja, Click and later MiniJinja and insta. He spent about a decade at Sentry, left in 2025 and started Earendil in Vienna. His blog, lucumr.pocoo.org, turned into a running log of how he works with agents, and his dotfiles and agent-stuff repositories fill in the rest. Together they date almost every change below.

Early 2025: Cursor and local models

In January 2025 he described his setup. Cursor, “a fork of Visual Studio Code with AI-based auto completion and code generation built-in,” was “my go-to for programming with AI assistance at the moment.” Next to it ran ChatGPT on his phone, local models through Ollama on a MacBook Pro M1 Max, and Simon Willison’s llm, installed with uv. A small llm-spell script fixed up prose from inside Vim.

Mid 2025: Claude Code and back to Vim

Looking back in December, he dated the change to “a growing obsession with Claude Code in April or May.” By June he had written it down: “I predominently use Claude Code with the cheaper Max subscription for $100 a month,” Sonnet only, with an alias called claude-yolo that skips every permission check. The editor lost its place: “the role of the IDE — and the role of AI in the IDE — is greatly diminished; I mostly use it for final edits. This approach has even revived my usage of Vim, which lacks AI integration.”

The same post recommended Go for new backends because agents handle it well, with React, Tailwind, TanStack and Vite on the frontend and PostgreSQL reached through psql. The only MCP server he used was Playwright MCP for the browser. By August he was replacing it with an MCP that runs Playwright code directly, and in November with a skill of his own that drives Chrome over the DevTools protocol.

Autumn 2025: Codex for review, Amp on trial

In September he wrote: “Today I use Claude Code and Codex. Each has strengths, but the constant is Codex for code review after PRs.” Claude was “indispensable still when debugging and needing a lot of tool access,” and “the working together of the two is where it’s most magical.” In November he started trialing Amp: “Amp, similar to Claude Code, really feels like a product built by people who also use their own tool.” The same month he opened agent-stuff for his skills, starting with the browser skill and one that drives tmux.

By the end of the year he was running three: “I’m using Amp, Claude Code, and Pi, all from the command line. Amp feels like the Apple or Porsche of agentic coding tools, Claude Code is the affordable Volkswagen, and Pi is the Hacker’s Open Source choice for me.”

2026: Pi

The choice settled quickly. In January he ported MiniJinja to Go with Pi, using its session branching to split the work into phases, with Claude Opus for the port and GPT-5.2 Codex for the overnight test fixing. At the end of the month he wrote that Pi, Mario Zechner’s agent, “happens to be, at this point, the coding agent that I use almost exclusively.” What drew him: “it has the shortest system prompt of any agent that I’m aware of and it only has four tools: Read, Write, Edit, Bash,” plus an extension system that lets extensions keep state in the session.

He builds most of his workflow as those extensions. agent-stuff, published to npm as mitsupi, holds commands such as /review, /todos, /goal and a serial subagent that runs in tmux, plus a /split-fork command that opens a branched session in a new Ghostty split. Another extension intercepts pip and python so agents use uv. In April Mario joined Earendil, and Pi became part of the company’s work. Pi 1.0 shipped this autumn with MCP support through Codemode, which lets the model call tools by writing code in a sandbox.

He still writes about other harnesses, mostly as a critic. In July he argued that “Claude Code is not open source and we cannot really know what they are doing in their RL environments,” and that other harnesses inherit its quirks. Pi runs whichever model fits: in September he had “a conversation with Fable and Sol via Pi,” and in May he built pi-ds4 to run DeepSeek V4 Flash locally on a Mac from inside Pi.

The rest of the desk

His dotfiles show the setup around the agent. He uses zsh with Oh My Zsh and his own theme, and Homebrew on macOS. In March 2026 the editor variable switched from vim to nvim, so Neovim is now his terminal editor. VS Code is still there for diffs: git uses code --diff as its difftool, and he updated its settings in September 2026. His code stays on GitHub. He defended it against Codeberg’s ban on largely AI-written projects, even though “there is plenty about the platform that I dislike.”

His recent repositories are mostly Rust: MiniJinja, insta, similar and deser. Pi and its extensions are TypeScript, and Earendil’s durable workflow engine, Absurd, runs on PostgreSQL with a Python SDK.

What the stack says

Few developers have tried as many agents in public. He moved from Cursor to Claude Code, added Codex and Amp, and then settled on the smallest agent he could find and built the rest himself. His reason has stayed the same since 2025: he wants a harness he can read and change, and the agent should write code rather than call a long list of tools.

Sources

  1. dotfiles: zsh with Oh My Zsh, Vim, VS Code settings since 2022 github.com
  2. How I Use AI: Meet My Promptly Hired Model Intern lucumr.pocoo.org, 30 Jan 2025
  3. Agentic Coding Recommendations lucumr.pocoo.org, 12 Jun 2025
  4. Your MCP Doesn't Need 30 Tools: It Needs Code lucumr.pocoo.org, 18 Aug 2025
  5. 90% lucumr.pocoo.org, 29 Sep 2025
  6. agent-stuff: his skills, extensions and themes for Pi github.com, 2 Nov 2025
  7. Agent Design Is Still Hard lucumr.pocoo.org, 21 Nov 2025
  8. What Actually Is Claude Code's Plan Mode? lucumr.pocoo.org, 17 Dec 2025
  9. A Year Of Vibes lucumr.pocoo.org, 22 Dec 2025
  10. Porting MiniJinja to Go With an Agent lucumr.pocoo.org, 14 Jan 2026
  11. Pi: The Minimal Agent Within OpenClaw lucumr.pocoo.org, 31 Jan 2026
  12. dotfiles: EDITOR switched from vim to nvim github.com, 10 Mar 2026
  13. agent-stuff: /split-fork opens a Pi session in a Ghostty split github.com, 23 Mar 2026
  14. Mario and Earendil lucumr.pocoo.org, 8 Apr 2026
  15. Pushing Local Models With Focus And Polish lucumr.pocoo.org, 8 May 2026
  16. Better Models: Worse Tools lucumr.pocoo.org, 4 Jul 2026
  17. Codeberg Divides lucumr.pocoo.org, 24 Jul 2026
  18. Latent Powers lucumr.pocoo.org, 5 Sep 2026
  19. Astra for Coding: Why Are We Doing This Again? lucumr.pocoo.org, 7 Sep 2026
  20. dotfiles: updated shell, Vim and VS Code settings github.com, 24 Sep 2026
  21. What is Codemode lucumr.pocoo.org, 6 Oct 2026

Changelog

  • : Marked the inferred dates as approximate: Claude Code's start, the January 2026 ends of Claude Code, Codex and Amp, Cursor's end, the move from Vim to Neovim and Playwright MCP's end.
  • : Page created from his blog, his dotfiles and his agent-stuff repository. Claude Code, Codex and Amp end in January 2026 because his 31 January post calls Pi the agent he uses almost exclusively; none says he dropped them outright. Claude Code starts in May 2025 because he dates his obsession to "April or May". Cursor ends in June 2025, when he wrote that the IDE is now mostly for final edits and that he is back on Vim. Vim becomes Neovim in March 2026: that is when his dotfiles set nvim as the editor, but the commit bundles older local changes, so the switch may be earlier. Ghostty starts with the first extension that uses it. Playwright MCP ends when his own browser skill replaced it; he never wrote that he stopped. VS Code stays current: he still updated its settings in September 2026.

Suggest an update