Vim of Coding Agents Pi, a minimal terminal-based coding agent designed for maximum customizability, has emerged as the core infrastructure powering the viral OpenClaw AI assistant tool, offering developers a hackable foundation akin to Neovim for building custom coding workflows without unnecessary features. Vim of Coding Agents A note on neovim-like coding agent harnesses 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 https://pi.dev , 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 https://github.com/LazyVim/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 https://github.com/openclaw/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 https://docs.openclaw.ai/pi pi-integration-architecture . Peter Steinberger 🦞@steipeteWanted 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 https://x.com/steipete/status/1995782507187319083 Peter Steinberger 🦞@steipete@ karrtopelka the tweet you highlight is AI slop, and OpenClaw runs on Pi, performance was never the issue. https://x.com/steipete/status/2028124326428385742 Peter Steinberger 🦞@steipeteAt AI Engineer London, watching legend @badlogicgames talking about pi, the component that drives all the claws https://t.co/wylqRVXfQG https://t.co/QZiFvxzAAm https://x.com/steipete/status/2032175796303851732 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 https://helix-editor.com/ 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 https://x.com/mitsuhiko , in PI: The Minimal Agent Within OpenClaw https://lucumr.pocoo.org/2026/1/31/pi/ . 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 https://github.com/numtide/llm-agents.nix by Numtide. You can also use the version available on nixpkgs, but I chose the Numtide one because it is managed and automatically pinned to the newest version. They also have their own caching workflow aka I trust Numtide to maintain my own AI tooling package ~~as I’m too lazy to do it myself~~ . It was very simple, and even the TUI itself was pretty straightforward. As I had heard that the power of Pi was being able to extend it and make customized plugins, the first thing I did on Pi was ask for a simple feature. It was a todo task tool and an AskUser tool. It was straightforward. Pi read my global Pi npm directory, where the Pi library source code and docs are located, especially the docs about custom tools and extensions. So the default harness already injects its guidance/docs pointer into the agent context at runtime, especially if we, the user, mention Pi. Then, out of curiosity, I started asking Pi to customize and tweak the Pi TUI itself, which worked quite great. So not only are we able to customize the features and tools of Pi itself, but we can also design and hack the Pi TUI itself. You can even play Doom https://github.com/earendil-works/pi/tree/main/packages/coding-agent/examples/extensions/doom-overlay on Pi. It reminds me of Neovim, customizing your own IDE from a simple plain text editor into a sophisticated IDE adjusted to your coding style and workflow. Similar to how OpenCode works, you can also use your own Claude OAuth RIP, it used to : , Codex OAuth, Antigravity OAuth also RIP , Kimi Coding Subs, BYOK, etc. It was literally a near-perfect coding agent for me personally due to how it was designed, which is somehow similar to Vim or Neovim. I can customize it as much as I want based on my workflow. I can also use someone’s package https://pi.dev/packages , similar to how I can use someone’s Neovim configuration or plugin from GitHub. Neovim Analogy To show what makes Pi special among available coding agents right now, we can use an analogy where Pi is similar to how Neovim works: Core app + extensions - Neovim loads Lua/Vimscript for plugins - Pi loads TypeScript for plugins Custom commands - Neovim plugins add commands like :Telescope or :