OpenCode pushed its 2.0 release on October 11, 2026, the first major overhaul of the open source terminal coding agent since it went mainstream. The headline change is architectural: the client/server split that once belonged to power users is now the default, with a single background process handling every TUI, web, or desktop session on your machine. Current 1.x users start the upgrade with the new opencode upgrade --major command shipped in v1.19.0.
The rewrite draws on the behavior of millions of daily users, and the team at Anomaly frames it as flexing to everything an agent needs to be, rather than adding features onto a brittle core. Here is what changed and why it matters for people who live in the terminal.
One Server, Every Client
OpenCode always carried a client/server model under the hood, but it was opt-in and mostly used by tinkerers. In 2.0 that server now spins up automatically as a single background process on your machine. Open a TUI, a web panel, or the desktop app, and all of them talk to the same central daemon instead of spawning isolated copies.
That shift pays off for automation. The programmatic client @opencode/client autodiscovers the local service and just works, which makes scheduled tasks and glue scripts dramatically simpler. You can also reach the daemon through opencode api commands, or expose it to other hosts and run /pair to connect external applications.
The old API is gone. In the team's own blunt words, it grew haphazardly as the world collectively learned what agents should be. So OpenCode rebuilt it from scratch, examining the weirdest use cases across its user base. The new API is also self-aware: OpenCode will call it to do useful housekeeping, like moving a working session into a git worktree before it starts fresh work.
Code Mode, Background Tasks, and an SDK
Three additions define the 2.0 power layer.
A new Code Mode ships a minimal JavaScript interpreter in the @opencode/codemode package, letting the agent run scripts natively without Node VMs or QuickJS hacks. MCP servers and OpenAPI endpoints get converted into functions it can call, then compose across a single round trip instead of calling them one at a time. Every MCP server in 2.0 opts into Code Mode by default, so adding a thousand of them costs minimal context bloat.
The harness also learns to parallelize. Background subagents let the primary agent kick work to another model and keep prompting, and shell commands can run asynchronously so long builds do not block the conversation. If anything overruns, a hotkey moves it to the background and you keep going.
Plugins finally got real attention:
- Every major 2.0 feature was reimplemented as an internal plugin, producing 80+ of them and keeping the Plugin API honest.
- TUI plugins moved from experimental to stable, built on the OpenTUI stack.
- The whole system hot-reloads, so OpenCode can write a plugin for itself mid-session and use it immediately.
Finally, @opencode/sdk exposes the exact code that powers the CLI, so developers can slim it down and build their own flavor of OpenCode that runs on a server or in specialized environments like Durable Objects, then connect any client through the standard protocol.
The team notes the SDK is still shifting and not fully stable, but it is usable now. For most users the move is painless: stay on the latest 1.x release, run opencode upgrade --major, and let the agent migrate anything that needs it. The rest of the changes are backwards compatible.
Comments