OpenCode 2.0's Code Mode collapses MCP tool calls to one round trip
The 212k-star coding agent's biggest rebuild: one local service behind terminal, desktop and web, background subagents, async shell — and v1 plugins break.

Copy markdown
Code Mode scripts your MCP tools, no round trip per call
OpenCode 2.0 ships @opencode/codemode, a minimal JavaScript interpreter that turns every MCP server and OpenAPI endpoint into a callable function, and it's on by default for all MCP servers. Instead of one model round trip per tool call, the agent writes a single script that calls many tools and loops over results — a task that took three calls (list issues, then save each) becomes one — so you can wire up dozens of servers without the tool list eating your context window before the model starts reasoning.
One local service now sits behind terminal, desktop and web
The server starts automatically as a single background process on your machine, and the terminal, desktop and web interfaces all attach to it — so a session you start in the terminal keeps going in the desktop or web app, and you can expose it to other machines. The rewritten API (@opencode/client) also hands agents real control over their environment: create a git worktree for a task, move an existing session into it, or find and interrupt a stuck one.
Background subagents and an async shell keep the main loop moving
You can hand code review to a subagent running a different model while your foreground session keeps taking prompts, and long commands like bun test or a build now run asynchronously — the agent gets pinged when they finish instead of blocking. A ctrl+b hotkey drops a running foreground task or subagent to the background.
Before you upgrade: v1 plugins are dead and the server API was rewritten
2.0 breaks plugins written for 1.0, integrations built on the old server API need updating, and tui.json moved to json. Auto-updates have been off since v1.19.0, so the jump is deliberate: get to the latest 1.x, then run opencode upgrade --major (or /update in the terminal). Audit your plugin stack before you cut over.