<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm" -->

---
title: OpenCode 2.0 runs every client off one background...
description: OpenCode 2.0 has become the project's main release, introducing a shared background service that lets the terminal, desktop, and web clients attach to the same...
canonical: https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: OpenCode 2.0 runs every client off one background service and breaks v1 plugins | daily.dev
og:description: OpenCode 2.0 has become the project's main release, introducing a shared background service that lets the terminal, desktop, and web clients attach to the same...
og:url: https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm
og:image: https://api.daily.dev/og/posts/2XMe67vhM.png
og:image:alt: OpenCode 2.0 runs every client off one background service and breaks v1 plugins
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenCode 2.0 runs every client off one background service and breaks v1 plugins

**[Collections](https://daily.dev/sources/collections)** · 3 min read · 1 upvotes · 0 comments

## Summary

OpenCode 2.0 has become the project's main release, introducing a shared background service that lets the terminal, desktop, and web clients attach to the same session instead of running independently. Other additions include a rebuilt API and SDK (@opencode/sdk), Code Mode (letting the agent write JavaScript to batch multiple MCP tool calls in one execution instead of separate round trips), background execution for subagents and shell commands, and over 80 built-in plugins. As a major version, it breaks v1 plugins and old server API integrations, and updates are no longer automatic, requiring `opencode upgrade --major` or `/update`. OpenCode, built by former SST developers, has passed 212,000 GitHub stars.

## Content

OpenCode 2.0 is now the project's main release, three months after it entered public beta. OpenCode is the open source AI coding agent created by former Serverless Stack (SST) developers, and it has passed 212,000 GitHub stars as interest grows in coding agents that let you switch AI providers freely.

## What changed

The biggest change is a shared background service. The terminal, desktop, and web interfaces all connect to the same underlying session, so you can start something in one and pick it up in another.

Around that service there are a few other pieces:

- A rebuilt API and an embeddable SDK, `@opencode/sdk`.
- Code Mode, where the agent writes JavaScript to call several MCP tools in a single execution instead of making a separate model round trip for each call.
- Background execution for subagents and shell commands, so you can keep working while a review or build runs asynchronously.
- More than 80 built-in plugins, according to @Joshua_WD.

Code Mode is the one I'd watch. Chaining MCP tools through one script rather than a conversation with the model is a sensible way to cut latency and cost, and it's the kind of thing that only gets better the more tools you connect.

## What breaks

Plugins built for OpenCode 1.0 don't work in 2.0. Integrations that use the old server API need updating too.

Updates are also no longer automatic. Existing users have to run `opencode upgrade --major` or `/update` themselves. If you depend on v1 plugins, check them before you upgrade, not after.

## Getting started with 2.0

The basic workflow is simple once it's installed.

1. **Install and connect a model.** Use a hosted provider, or run a local model through Ollama or LM Studio.
2. **Read and edit code.** Point OpenCode at a project, such as a small JavaScript app, and ask it questions or request changes.
3. **Plan, then build.** The Plan agent proposes changes without touching files. The Build agent implements them. Review the diffs before accepting.
4. **Write an `AGENTS.md`.** Project instructions go here so the agent follows your conventions.
5. **Set permissions.** These live in `opencode.jsonc`, where you control what the agent may do without asking.
6. **Save custom slash commands** for prompts you repeat, and manage your sessions as they pile up.
7. **Add MCP servers** to give the agent more tools, then try Code Mode with them.

You can use the terminal, or the browser and desktop interface, and with 2.0 they share the same session.

## Questions this post answers

### What breaks when upgrading from OpenCode 1.0 to OpenCode 2.0?

Plugins written for OpenCode 1.0 do not work on 2.0, and integrations using the old server API need updating. Updates are also no longer automatic in 2.0, so you must run `opencode upgrade --major` or `/update` to move to the new version. Testing on a scratch project before upgrading a daily-driver setup is recommended.

_daily.dev surfaces breaking-change writeups like this so agent upgrades don't catch your setup off guard._

### What is Code Mode in OpenCode 2.0?

Code Mode lets the agent write JavaScript that calls multiple MCP tools within a single execution, instead of making a separate model round trip for each tool call. This is intended to cut latency and token usage on multi-step tasks compared to the usual call-and-wait loop of individual tool invocations.

_Developers evaluating MCP tool-calling patterns can track features like this via daily.dev._

### What is the main architectural change in OpenCode 2.0?

OpenCode 2.0 runs every client, including the terminal, desktop, and web interfaces, off a single shared background service, so they attach to the same underlying session instead of each running its own. This was built alongside a reworked API and a new embeddable SDK called @opencode/sdk.

_Teams standardizing on open-source coding agents can follow architecture shifts like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 14 comments across x (as of 2026-10-15).

**TL;DR:** Reaction centers on Code Mode's one-shot scripting of MCP tool calls as the standout change, with a persistent background server seen as solving context-loss issues but raising migration and security questions.

**Sentiment:** 40% positive · 45% mixed · 15% skeptical

**The case for**

- Code Mode's single scripted round trip reduces tool schema overhead and eliminates a class of half-finished multi-step failures.
- Persistent agent state across sessions is expected to reduce context-loss problems from v1.
- The shared server/client architecture is seen as a sensible way to let multiple clients coordinate.

**The pushback**

- Breaking every v1 plugin to ship the new server is viewed as a risky move that will catch people off guard.
- A scripted batch call fails as a whole, pushing partial-success handling into user code.
- Always-on persistent server credentials raise concerns about sandboxing and security.

**By community**

- x (mixed): Most replies focus on Code Mode's benefits while raising practical questions about plugin migration, approval checks, and security of the always-on server.

**Open questions**

- Does a Code Mode script get checked per tool call, or can one script bypass approval prompts entirely?
- Does Code Mode change how MCP tool schemas should be structured?
- Are most v1-to-v2 plugin migrations simple flag flips or full rewrites?

**Highlights**

> @AliciaCrawoiue @Joshua_WD Code Mode wins on fixed cost: I cut my MCP surface from 11 tools to 2 and stopped paying the schema block on every turn — one round trip kills the half-finished-plan-between-calls failure class. Catch: a scripted call fails as a batch, so partial success moves into your code.
> — [senoldoganx on x](https://x.com/senoldoganx/status/2110671711767269671)

> @Joshua_WD Breaking every v1 plugin to ship a background server is a bold way to find out who actually reads migration guides.
> — [seridarivus13 on x](https://x.com/seridarivus13/status/2110561264997130644)

> @Joshua_WD Persistent server solves context loss but forces always on credentials, verify sandboxing before rollout
> — [PyLocket on x](https://x.com/PyLocket/status/2110669592418828363)

> @Joshua_WD Code Mode scripting MCP tools in one round trip is the big change. Does a script get checked per tool call, or can one script chain past an approval prompt?
> — [DotsonZion on x](https://x.com/DotsonZion/status/2110561770339242407)

> @Joshua_WD Letting the agent script the tools instead of calling them one at a time is the part that actually changes how you work. Feels like going from clicking buttons to writing a little macro. Good direction.
> — [tirupathipodugu on x · 1 points](https://x.com/tirupathipodugu/status/2110565373615743441)

**Source threads**

- [x](https://x.com/Joshua_WD/status/2110560789925163466) · 8 points · 14 comments

## Similar posts on daily.dev

- [OpenCode: The Open Source Coding Agent That Doesn't Lock You In](https://daily.dev/posts/opencode-the-open-source-coding-agent-that-doesn-t-lock-you-in-yrji1qwkf) · Playful Programming · 2 upvotes · 2 comments
- [OpenCode: An Open-Source Claude Code Alternative](https://daily.dev/posts/opencode-an-open-source-claude-code-alternative-bhgmsi3uq) · DigitalOcean Community · 1 upvotes · 0 comments

---

Tags: [#mcp](https://daily.dev/tags/mcp), [#opencode](https://daily.dev/tags/opencode)

[View this post on daily.dev](https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"OpenCode 2.0 runs every client off one background service and breaks v1 plugins","url":"https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm"},"datePublished":"2026-10-15T07:00:32.906Z","dateModified":"2026-10-15T10:45:28.977Z","description":"OpenCode 2.0 has become the project's main release, introducing a shared background service that lets the terminal, desktop, and web clients attach to the same...","isAccessibleForFree":true,"articleSection":"Collections","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collections","logo":"https://media.daily.dev/image/upload/s--fk_6ycEi--/f_auto,q_auto/v1780996001/logos/collections?_a=BAMAMiWQ0","url":"https://daily.dev/sources/collections"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"mcp,opencode","timeRequired":"PT3M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collections","item":"https://daily.dev/sources/collections"},{"@type":"ListItem","position":3,"name":"OpenCode 2.0 runs every client off one background service and breaks v1 plugins"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/opencode-2-0-runs-every-client-off-one-background-service-and-breaks-v1-plugins-2xme67vhm#faq","mainEntity":[{"@type":"Question","name":"What breaks when upgrading from OpenCode 1.0 to OpenCode 2.0?","acceptedAnswer":{"@type":"Answer","text":"Plugins written for OpenCode 1.0 do not work on 2.0, and integrations using the old server API need updating. Updates are also no longer automatic in 2.0, so you must run `opencode upgrade --major` or `/update` to move to the new version. Testing on a scratch project before upgrading a daily-driver setup is recommended. daily.dev surfaces breaking-change writeups like this so agent upgrades don't catch your setup off guard."}},{"@type":"Question","name":"What is Code Mode in OpenCode 2.0?","acceptedAnswer":{"@type":"Answer","text":"Code Mode lets the agent write JavaScript that calls multiple MCP tools within a single execution, instead of making a separate model round trip for each tool call. This is intended to cut latency and token usage on multi-step tasks compared to the usual call-and-wait loop of individual tool invocations. Developers evaluating MCP tool-calling patterns can track features like this via daily.dev."}},{"@type":"Question","name":"What is the main architectural change in OpenCode 2.0?","acceptedAnswer":{"@type":"Answer","text":"OpenCode 2.0 runs every client, including the terminal, desktop, and web interfaces, off a single shared background service, so they attach to the same underlying session instead of each running its own. This was built alongside a reworked API and a new embeddable SDK called @opencode/sdk. Teams standardizing on open-source coding agents can follow architecture shifts like this on daily.dev."}}]}
```

