← In the News

OpenCode 2.0 turns MCP servers into scripts by default and breaks every V1 plugin

OpenCode 2.0 · Anomaly, the OpenCode team · October 14, 2026 (Hacker News thread, 175 points and 59 comments about two hours after posting)

Machine-readable Download Markdown

The release post says the server now runs by default as a single background process on your machine, so the terminal UI, web interface and desktop app all talk to one service. A new @opencode/client package lets scripts and scheduled tasks find that service, and the agent can call its own API to do things like move a session into a git worktree. The post also describes background subagents, which can run on a different model from the primary agent, and background shell commands that notify the agent when they finish.

The change most likely to alter how harnesses are built is "code mode." The team wrote a minimal JavaScript interpreter that turns MCP servers or OpenAPI endpoints into functions the agent calls from a script, in one round trip instead of one tool call at a time. In the post's words: "All MCP servers in 2.0 are opted into code mode by default." The authors say this lets you add a thousand servers with minimal context bloat. That is their claim, and the post gives no measurements.

The breaking changes are spelled out. V1 plugins do not run in V2, the server API is new, and terminal client config moves to a single global cli.json. The separate migration guide goes further: V2 keeps lsp config but does not run language servers or produce LSP diagnostics, and it discovers only AGENTS.md, with no CLAUDE.md fallback. We read the release post and the migration guide in full. We have not run the software.

Why it matters: If your factory runs on OpenCode, the upgrade is a plugin port and an integration rewrite, and anything that relied on language-server diagnostics now needs a lint or typecheck command instead. For everyone else, the notable choice is the default: tool access through generated scripts rather than individual tool calls. Whether that holds up on long tasks is untested in the post.