Why I Chose Pi: The Back Story

I almost gave up on Pi after just a few days. Looking back, I wasn't judging Pi—I was comparing it to the workflow I already knew.


When people talk about Pi, one word always comes up.

Minimal.

That was exactly why I wanted to try it.

I like simple tools. Not just coding harnesses, but almost everything I use. If a tool does one thing well without adding extra features, I usually prefer it.

At that time, my daily setup was Antigravity CLI.

Before that, I had used OpenCode for months. I liked it, but over time I started to feel the TUI was a little too much for me. Antigravity felt closer to what I wanted, so I switched and used it as my main coding harness.

Then Pi appeared on my radar.

Another reason made the timing even better. I realized that for about the same monthly cost I was paying for Google, I could access more advanced models like GPT. Since I was planning to change providers anyway, I decided it was a good time to try a different harness too.

So I installed Pi.

Pi terminal UI

Pi terminal UI, from pi.dev.

My First Impression

Honestly, the first few days were rough.

People said Pi was minimal.

They were right.

Maybe a little too right.

Features I used every day were simply not there.

  • No subagents.
  • No todo list.
  • No confirmation popup before running commands.
  • Not even built-in web search.

After using OpenCode and Antigravity for months, those features had become part of my workflow. I wasn’t just learning a new tool. I was missing tools I depended on every day.

For the first time, I started wondering if Pi was actually too minimal for me.

Looking for Missing Pieces

Then I learned something important.

Pi was never trying to include everything.

Instead, it expects you to build the workflow you want.

Packages are a big part of that idea. They are similar to plugins. If you need something, there is a good chance someone has already built it.

So I started searching.

I found packages for the features I wanted.

But finding the right package took much longer than I expected.

For something as simple as subagents, there were multiple packages to choose from. Each one had different ideas, different documentation, and slightly different workflows.

I spent hours reading instructions, installing packages, removing them again, and trying another one.

Eventually I found what worked for me, but the process was not fun.

I shared some of that experience in my previous post comparing Pi and OMP.

That’s When I Left

After spending so much time searching and testing packages, I got tired.

Then I found OMP.

It looked much easier.

It already included most of the features I wanted.

No searching.

No comparing packages.

No wondering which extension I should install.

Everything was ready.

So I switched.

If you have read this far, you are probably thinking something.

“Didn’t you say you like simple tools?”

You’re right.

Looking back, I think I confused simple with complete.

I wanted Pi to behave like Antigravity or OpenCode on day one.

That wasn’t Pi’s goal.

I was judging Pi using someone else’s philosophy.

Why I Came Back

After spending more time with OMP, I wrote my comparison between Pi and OMP.

At that time, I even said I would probably come back to Pi.

And I did.

Not because Pi suddenly had more features.

Not because OMP became worse.

Because I finally understood what Pi was trying to be.

Pi isn’t a coding harness that comes with every feature.

It is a coding harness that expects you to build your own.

That sounds like extra work.

And at first, it is.

But once I accepted that mindset, everything started to make more sense.

Today

Today, Pi has become my daily coding harness.

It has been around three or four weeks now.

During that time, I created two custom extensions.

I modified the sample extensions to match my workflow.

I adjusted the system prompt.

The Pi I’m using today is not exactly the same Pi I installed on the first day.

More importantly, I’m not the same user either.

When I first tried Pi, I thought it was missing features.

Now I see that it was giving me a foundation instead of a finished product.

That change didn’t happen in one day.

It took frustration.

It took switching away.

It took coming back.

And I think that’s exactly why I understand Pi much better today.

In the next post, I’ll show what I actually changed, why I created my own extensions, and how I turned Pi into the coding harness that fits my daily workflow.