Vim of Coding Agents | Rasyidan A F<br>[light] [dark]
Jul 11, 2026<br>· 16 min read
Vim of Coding Agents<br>A note on neovim-like coding agent harnesses<br>ai dev<br>Table of Contents<br>▸ Discovery
▸ First-Time Experience
▸ Neovim Analogy
▸ Plugin
▸ Tradeoff & Comparison Feature Design<br>Plugin Model<br>Harness Cost & Performance
▸ My Setup
▸ TLDR
[read 3 more...]
Every few months there is another new coding agent, another coding agent from some frontier AI lab. Codex, Claude Code, Factory Droid, Cursor, Kimi Code, Mistral Vibe, Copilot, and you name it. Each of these coding agents is quite opinionated. Each coding agent adds features that they think you may need, while the truth is that many features are unnecessary and might make the software more buggy in the end. This makes you, the user, rent someone else’s setup and opinion of how to code with an LLM.
What if you could build your own custom coding agent and agent harness from a minimal foundation? If you are into, or familiar with, bare-bones minimal text editors like Vim/Neovim or Emacs that are very hackable, customizable, and can be riced further, you would love to have a coding agent with a similar philosophy. You could build your own TUI, rendering process, extensions, plugins, harness, agent behavior, etc. and customize it as much as you want.
Introducing pi, a minimal (terminal) coding agent, designed to adapt to your WORKFLOW instead of you adapting to the existing coding agent. Designed to let you build your own plugin, workflow, extension, etc. (you name it: skills, prompt template, TUI, etc) on your own just by asking (prompting) directly on pi. You can also ship your own plugin or package easily to other users like lazyvim via npm or git.
There are many coding agents, but this one is mine.
Discovery
Last year I saw someone try to make a very very simple coding agent on the everything app, X, and name it shittycoding agent, as I remember. Back then, it was literally just a stupidly simple terminal coding agent tool. No plan mode, askQuestion tool, or sub-agent like Claude Code. Only read, write, edit, and bash. My initial response was
Stupid simple coding agent, just a read, write, and bash tools, cool
That’s it. I had no intention of trying it or any interest in it. I thought that was someone’s side project trying to build a stupidly simple coding agent tool to better understand how it works under the hood (no offense to the creator, I didn’t know him back then).
Fast forward, you know it. OpenClaw. That god damn AI assistant tool speedran GitHub stars growth and went viral on the internet. It ran on top of the Pi SDK.
OpenClaw also documents its Pi integration architecture.
Peter Steinberger 🦞@steipete<br>Wanted faster replies for my Clawd🦞 so switched to pi. With @bunjavascript it's faster than Rust-based codex... and 3 times faster than claude. https://t.co/ucyShmSlfo https://t.co/Gf2rDZcUWL<br>Read more →<br>𝕏
Peter Steinberger 🦞@steipete<br>@_karrtopelka the tweet you highlight is AI slop, and OpenClaw runs on Pi, performance was never the issue.<br>Read more →𝕏
Peter Steinberger 🦞@steipete<br>At AI Engineer London, watching legend @badlogicgames talking about pi, the component that drives all the claws! https://t.co/wylqRVXfQG https://t.co/QZiFvxzAAm<br>Read more →<br>𝕏
There was a time when I was furiously using OpenClaw all the time as my go-to daily driver, especially for my job too. When I checked the docs and OpenClaw codebase, I realized Pi was the powerhouse, one of the core infrastructures powering OpenClaw itself.
At the time, I was looking for a simple coding agent that was very hackable for my workflow, kind of like Neovim, a terminal IDE that is very hackable and customizable, where I can build my own configuration without unnecessary features or bloat in the end. I was considering OpenCode as a top contender, but it was more like Helix than Neovim for me (this is a compliment). It was well designed in my opinion, way better than the first time I used it, but that’s it. It wasn’t intended to be fully customizable or very hackable, even though you can easily build an external plugin on top of OpenCode itself.
After a few weeks of doomscrolling on X, I saw several users sharing their experiences with Pi, specifically the creator of Flask, Armin Ronacher, in PI: The Minimal Agent Within OpenClaw. My curiosity kicked in, and it was time to try it myself. A few Pi users also shared Pi extensions and plugins they made, similar to how Neovim users share their own plugins that can be plugged in easily using LazyVim.
As I’m writing this blog, since this post has been drafted for a few months, Pi itself was finally acquired by Earendil, a company founded by Armin Ronacher and Colin Daymond. So it’s basically company software (don’t worry, still open source and properly maintained though).
First-Time Experience
As a fellow Nix user, I installed pi via llm-agents.nix by Numtide. You can also use the version available on nixpkgs, but I chose the...