Here’s my list of reasons for using Opencode.

1. Switch between models on the fly #

I’m often experimenting with the bleeding edge models as they come out. I actively switch between models for tasks and I use them all enough where I can tell the difference. Opencode lets me switch between models mid-task or mid-conversation. Fluidly.

2. client-server architecture (a.k.a built-in remote control) #

I wrote about this and agentic fluidity in more detail but tldr: Opencode has the client/server architecture baked in. So I can just start an opencode server on one machine, expose it through tailscale serve and start using it on my phone or other machines.

3. Subagent + mode features #

I talked about this on my podcast in some detail but Opencode has the best implementation of subagents and modes. You can switch to a subagent definition as your primary mode, then operate other subagents from there. It makes orchestrator-type tasks super easy.

4. Opinionated UX #

I love that OpenCode is opinionated about their UX. They don’t try to be Claude Code or Codex. In the process they have some really nice UX patterns like a sidebar with ongoing file changes, context/cost, MCPs connected etc. It’s the first time I’ve not needed to worry about a custom statusline.sh or building one.

5. “Highly” customizable via plugins #

The plugin ecosystem is highly customizable. To the point where you can add new features, integrate with external services or even modify OpenCode’s default behavior. The wonderful Jesse Vincent mentioned this to me when I was stupidly contemplating a fork.

What’s missing #

It’s not all rainbows and sunshine. Anomaly — the team behind OpenCode — is small. Which sometimes shows, because there’s definitely bugs and some features missing.

But I will say… none that’s deterred me from using it for the last two months, exclusively.

Go give it a shot. Many of the serious AI coders I know are really liking it and switching.

- March 17, 2026