Finding My Toyota
There are already plenty of mature coding agent products, each more fully featured than the last, but I still often use pi.
You Don’t Need a Ferrari for 50 Meters
One reason is that many of the tasks I have on hand simply do not call for such advanced tools.
Imagine that A and B are only 50 meters apart. Even with a perfect road and a perfect Ferrari, you arrive almost as soon as you start the car. However powerful it may be, there is no room to use that performance over such a short distance.
A Ferrari has roads where it belongs. Long tasks, work spanning multiple repositories, and jobs that need to run in parallel are worth giving to the strongest tools. But when a task is not that heavy, a lightweight option is enough; often, a Toyota will do the job. With so many tools available, what I need is to find my Toyota. For me, right now, that is pi.
Lightweight, but Not Bare-Bones
I chose it first because I like its community and ecosystem.
pi itself is deliberately restrained. Features built into many products—sub-agents, plan mode, and to-do lists—are not part of its core. Instead, pi leaves them to extensions and community packages. Keeping the core small gives the community room to build. pi.dev/packages has many useful packages—5393 as of September 28, 2026—including extensions, skills, prompt templates, and themes. Whatever you need, someone has often already built it; if nothing fits, you can also ask pi to build one itself.
So it is lightweight, but not bare-bones.
Keeping My Feel for It
The second reason is feel. I do not want to lose my feel for working with coding agents.
It is a little like Japanese. To keep my feel for the language, I need to follow news and other information from Japan regularly; if I go without it for a while, I get rusty. The same is true of coding agents. If I hand everything to a product that takes care of every detail, I may get the result, but my feel for them will gradually dull.
pi provides little by default, so there are many decisions I have to make myself. Making those decisions is how I maintain that feel.
First, Be Clear About What You Want
There is another important reason: when I use pi, I can focus on running a coding agent locally.
It does not do much to fill in my intent for me. Before I actually enter a request, I have to pause and ask myself what kind of result I really want.
Once I have thought that through, I usually also know how heavy the task is and whether it is worth bringing out the Ferrari. Judging how heavy a task is takes a kind of feel in itself, and that feel needs regular practice.