OpenCode 2 Version Tracker: Environment Variables, Config & Features per Release#

Published by

OpenCode 2 is the ground-up TypeScript rewrite of OpenCode, published on npm as @opencode/cli since 2.0.0 on September 11, 2026, and developed on the repository's v2 branch while the 1.x line keeps shipping. Its tags carry no release notes, so each analysis attributes features and fixes to the release that added them, and checks behaviour against the OpenCode 2 docs, including the migration guide from 1.x.

Still on 1.x? The OpenCode Version Tracker covers the opencode-ai releases. Tracking the other agents too? See the Claude Code Version Tracker, Codex CLI Version Tracker, Gemini CLI Version Tracker, and Amp Version Tracker.

Setting it up? Install · Windows · Desktop app · Web UI · Zen · LSP · MCP · FAQ

How do I install OpenCode 2?#

Run the install script, or use npm or Homebrew. Each one installs the opencode command for OpenCode 2; the current release is v2.2.5.[1]

curl -fsSL https://opencode.ai/v2/install | bash   # installs to ~/.opencode/bin
npm install -g @opencode/cli                       # or: yarn global add @opencode/cli
bun install -g --trust @opencode/cli
pnpm add -g --allow-build=@opencode/cli @opencode/cli
brew install anomalyco/tap/opencode-v2             # macOS and Linux
paru -S opencode-beta                              # Arch Linux (AUR)
mise use -g opencode                               # needs mise 2026.10.9 or later

The npm package runs a postinstall script that picks the native binary for your platform, so Bun and pnpm need the flags above to allow it. With mise older than 2026.10.9, mise use -g opencode installs OpenCode 1. OpenCode 1 and 2 both install the opencode command and do not install side by side: remove a package-managed 1.x install first. The install script replaces a 1.x binary.[1][2]

Update with opencode upgrade (alias opencode update); pin a version with opencode upgrade 2.2.5. opencode uninstall removes the program and keeps your sessions and config.[3]

How do I install OpenCode 2 on Windows?#

Use npm, the desktop installer, or a standalone zip. The v2 docs say Windows package managers (Chocolatey, Scoop, WinGet) are not supported; the WinGet manifests are built, but their submission to winget-pkgs is paused.[1][4]

npm install -g @opencode/cli
  • Standalone CLI: opencode-windows-x64.zip, opencode-windows-arm64.zip, or opencode-windows-x64-baseline.zip for CPUs without AVX2, from the v2 install page or the GitHub release.
  • Git Bash or MSYS2: the curl install script detects Windows and downloads the native x64 or ARM64 build.
  • WSL: follow the Linux steps inside WSL.

Native ARM64 builds arrived in v2.0.28. The background server listens on port 28894 on Windows and 49374 on macOS, Linux and WSL.[5]

OpenCode desktop app#

OpenCode Desktop is a separate download (beta) for macOS (Apple silicon and Intel .dmg), Windows (x64 and ARM64 .exe) and Linux (.deb, .rpm, .AppImage, x64 and ARM64). Get it from opencode.ai/download, or on macOS:[1][10]

brew install --cask opencode-desktop

The app can also pair into a running OpenCode server with the same flow as opencode pair (v2.0.29). Desktop changes are listed per release in the Version History below, for example terminals that stay in sync with the TUI in v2.2.4 and the worktree shortcuts in v2.2.5.

OpenCode web UI (opencode pair)#

OpenCode 2 has no opencode web command (that is a 1.x command). The web UI comes from the same server as the terminal, and it is password-protected. Run opencode pair and open the printed link; each link works once and expires in 5 minutes, and a signed-in browser session lasts 30 days.[5]

opencode pair                    # link + QR code for a browser or the app
opencode pair --remote           # reach it from anywhere, end-to-end encrypted
opencode service status          # print the server address
opencode service set port 49374  # then: opencode service start
opencode serve --hostname 0.0.0.0 --port 4096   # foreground server, for Docker or systemd

Connect another terminal to a remote server with opencode --server <url>, and set OPENCODE_PASSWORD for a fixed password. Over SSH, forward the port (ssh -L 49374:127.0.0.1:49374 my-server) and open the link locally.[5]

What is OpenCode Zen?#

OpenCode Zen is the OpenCode team's pay-as-you-go model provider: a list of models the team has tested for coding agents, billed per request from prepaid credits. In the OpenCode 2 docs it is documented as OpenCode Console models, and opencode.ai/zen now redirects to opencode.ai/console/models. Its provider ID is opencode, so model IDs look like opencode/<model-id>.[6][7]

  1. Sign in at opencode.ai/console, add credits, and copy an API key.
  2. In OpenCode, run /connect, choose the OpenCode provider, and paste the key.
  3. Run /models and pick a model.

Zen is optional; any other provider works the same way. Models with a -free suffix are free-tier models that work only from OpenCode, and OPENCODE_DISABLE_FREE_MODELS (v2.1.2) hides them. OpenCode Go is a separate monthly subscription with included usage for open-source models.[6][7]

Does OpenCode 2 support LSP?#

No, not as of v2.2.5. OpenCode 2 accepts and keeps the lsp config key, but it does not start language servers, expose LSP tools or report LSP diagnostics. The migration guide suggests running the project's lint, typecheck or compiler commands instead, for example listed in AGENTS.md.[2]

OpenCode 1.x does run language servers. LSP is off by default there; turn on the built-in servers, or add your own:[8]

{
  "$schema": "https://opencode.ai/config.json",
  "lsp": {
    "custom-lsp": {
      "command": ["custom-lsp-server", "--stdio"],
      "extensions": [".custom"]
    }
  }
}

"lsp": true turns on all built-in servers, "lsp": false turns them all off, and "disabled": true in one entry turns off that server.[8]

How do I add an MCP server to OpenCode 2?#

Use opencode mcp add. It writes the server to the project config; --global writes it to the global config in ~/.config/opencode/.[9]

opencode mcp add context7 --url https://mcp.context7.com/mcp                            # remote
opencode mcp add everything -- npx -y @modelcontextprotocol/server-everything           # local (stdio)
opencode mcp add everything --env LOG_LEVEL=info -- npx -y @modelcontextprotocol/server-everything
opencode mcp list

Remote servers use OAuth by default. If opencode mcp list shows needs authentication, run /mcps in OpenCode and sign in, or run opencode mcp auth <name>. By hand, OpenCode 2 puts servers under mcp.servers and uses disabled where 1.x used enabled:[9][2]

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "servers": {
      "everything": {
        "type": "local",
        "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
        "environment": { "MCP_API_KEY": "{env:MCP_API_KEY}" }
      },
      "context7": {
        "type": "remote",
        "url": "https://mcp.context7.com/mcp",
        "disabled": true
      }
    }
  }
}

Use {env:NAME} for secrets: $NAME is not expanded in JSON strings. A 1.x config with servers directly under mcp still loads. MCP tools go through Code Mode by default; set "codemode": false on a server to expose its tools directly.[9][2] The 1.x keys are in the OpenCode config reference, and the plugin hooks in the plugins reference.

Version History#

v2.2.7 — November 10, 2026#

Copilot Auto routing · experimental.model.resolve hook · read from file end · MCP logins survive token rotation

v2.2.7 adds GitHub Copilot Auto, a router pick in the model picker that selects a model per session at the Auto discount and falls back to the default chat model when routing fails. It rides a new session plugin hook, experimental.model.resolve, that lets a plugin rewrite the chosen model before a turn runs. The read tool gains a negative offset to read from the end of a file and close-name suggestions when a path misses, shell results carry an exit code, signal name, or timeout hint, and remote MCP logins survive refresh-token rotation across several clients. On the SDK side, @opencode/ai removes ImageResponse.image for response.images[0], and several endpoints return partial state instead of blocking while a Location loads plugins.

v2.2.6 — November 6, 2026#

opencode run -w · --archived · OPENCODE_FLAGS · pool: true MCP · Code Mode VM

v2.2.6 centers on opencode run: it can start in a new git worktree (-w, --worktree=<name>), be archived up front so CI runs stay out of the inbox (--archived), and now waits for the background shell commands, subagents, and image jobs a prompt started before exiting, printing a background_wait event under --format json and exiting 143 on SIGTERM. MCP servers gain opt-in connection pooling (pool: true), OPENCODE_FLAGS toggles experimental flags including an off-by-default Code Mode bytecode VM (experimental.codemode_vm), and the server API plus webfetch add cross-origin and credential hardening.

v2.2.5 — October 30, 2026#

compaction.buffer as % · MCP 10 MiB stdio fix · worktree + shell-mode shortcuts · reasoning kept on resume

v2.2.5 makes compaction.buffer accept a percentage of the model's context window, so one setting fits models with small and large windows (#60647); compaction also caps its prompt at the context window (#60660) and starts on a LiteLLM context-window error (#60692). MCP servers that send stdio messages over 10 MiB stay connected (#60694), an idle location stops restarting its MCP servers after shutdown (#60668), and switching models or resuming an interrupted response keeps reasoning content intact (#60498). The desktop app adds keyboard shortcuts for choosing a worktree, its base branch, and toggling shell mode (#60713).

v2.2.4 — October 30, 2026#

experimental.artifacts · publishable artifacts · persistent desktop terminals · guided Claude Agent setup

v2.2.4 turns on an artifact pipeline behind experimental.artifacts: four tools (artifact_create/read/update/delete), a built-in local static-file provider, a client.experimental.artifacts SDK namespace, and a ctx.experimental.artifact.transform plugin hook for custom storage (#60351). Desktop terminals move to persistent session PTYs that restore scrollback, keep renamed titles across restarts, and stay synchronized with the TUI and other windows (#60346, #60329). The provider picker can install Claude Code and run claude auth login before model selection (#60603), a worktree base branch gets a ⌘⌥. shortcut (#60579), and enabled schedules run under opencode serve with multiple processes coordinated so each fires once (#60478).

v2.2.3 — October 30, 2026#

OPENCODE_CLAUDE_PATH · Claude Agent provider · split managed-policy actions · faster Desktop sessions

v2.2.3 adds a built-in Claude Agent provider: with Claude Code installed, selecting Claude Agent in /connect reuses that login and its models (#58782), and OPENCODE_CLAUDE_PATH points at the Claude executable. Managed policy splits integration.use into per-capability mcp.use, skill.use, and plugin.use actions, auto-converting old prefixed rules (#60315). Experimental schedules gain Code Mode JavaScript checks (#60140), Desktop cuts rendering work on long sessions, and TUI plugins now require OpenTUI 0.8.

v2.2.2 — October 29, 2026#

experimental_image_generate · image generation on by default · worktree picker shortcut · New question UI toggle

v2.2.2 enables the image tool by default whenever a connected provider supports image models (#60258), moving image generation from a written flag to provider connection state; experimental.image_generate.model still sets the preferred model. The new-session screen opens a project's worktree picker from its Git branch (#60263), timeline quotes, terminal quotes, and browser annotations share one optional-comment editor (#60164), and Desktop restores classic question cards with a New question UI toggle under Settings → Experimental (#59723). The SDK's schedule.create gains if and until inputs (#60137), and generated media now survives session fork and import.

v2.2.1 — October 29, 2026#

/goal mode · image_generate tool · scheduled prompts · Desktop model picker

OpenCode 2 v2.2.1 leans into sessions that keep working on their own. /goal <objective> runs until an automatic review agrees the objective is met, with pause, resume, and clear controls (#59437); experimental.schedules and /schedule fire prompts without a person present (#59401); and the opt-in experimental.image_generate flag turns on an image_generate tool with GPT Image 2, MiniMax, and Meta Muse support (#59939, #60085). Desktop makes the searchable model picker the default (#59997) and lets you watch and stop background shells from the activity pill (#59496), while /reload applies config to a live server. Providers gain Responses API support for OpenRouter, DigitalOcean, and Venice (#59991).

v2.2.0 — October 27, 2026#

desktop plugins (experimental) · image & decision generation APIs · configurable prompt-cache TTLs · keyed session instructions · OpenTUI 0.7 required

v2.2.0 brings experimental desktop plugins you can create, install, and share (#55246, #59469, #59489) and GUI plugin APIs for toasts, dialogs, notifications, tabs, composer controls, and custom UI (#59469). Plugins and the SDK gain image and decision generation APIs (#59190, #59380, #58758), prompt-cache TTLs become configurable per provider and model (#59157), and plugins can attach keyed session instructions with ctx.session.instructions.entry.put/list/remove that are added as small per-step updates and survive compaction and reverts (#56550). An experimental session media API and content-addressed blob storage behind experimental.media_blob also land (#59103, #58656). Three breaking changes require code changes from plugin and SDK authors: @opencode/ai moves to a Promise-first root (#58847), the OpenCode GitHub Action is removed (#59032), and TUI plugins require OpenTUI 0.7 (#59295).

v2.1.4 — October 23, 2026#

experimental.background_compaction · client-hosted MCP tools · MCP elicitation forms fixed · debug heap-dump

v2.1.4 adds an experimental client MCP path: a transport over incoming client sockets, a connectClientMcp helper, a server websocket endpoint, and the TUI exposing open_terminal over it, so a connected client can host tools the server-side session calls. It also adds experimental background compaction summaries (renamed from precompute_compaction), a CLI debug heap-dump command with desktop heap snapshots and a native memory breakdown, and fixes that make MCP elicitation forms appear across the TUI, desktop, and web.

v2.1.3 — October 22, 2026#

/api/experimental/voice/models · hosted GPT-Live · provider baseURL override · compaction output limit

v2.1.3 adds a models-listing endpoint to the experimental voice API (#57194) and lets the OpenCode Console start hosted GPT-Live sessions (#57735). Core fixes give compaction summaries the normal-turn output limit (#57564), let a configured provider baseURL override catalog model endpoints (#57810), scope the GitHub App token to the verified repository (#57827), and switch app syntax highlighting to @pierre/highlights (#57937). Much of the release is a typing pass over the ai and core packages that lands on the same session paths as the fixes.

v2.1.2 — October 21, 2026#

OPENCODE_DISABLE_FREE_MODELS · location_idle_timeout · Typed free-limit error with reset time · Installer writes ~/.zshrc

OpenCode 2 v2.1.2 adds OPENCODE_DISABLE_FREE_MODELS to hide free models from the model list and the experimental location_idle_timeout config that unloads a project location after it sits idle, with running sessions and background jobs keeping a location loaded. The core carries a typed free-limit error that includes the reset time, and the terminal and app render the free-tier usage limit with a notice, a dialog, prompt recall, and an upsell modal. The installer writes ~/.zshrc when it is missing so opencode lands on PATH, the desktop app moves to Electron 44.9.1, and provider session errors forward retryAfterMs.

v2.1.1 — October 20, 2026#

Redesigned model switcher · Settings & export dialogs · Setting descriptions · Server-wide catalog refresh

OpenCode 2 v2.1.1 continues the terminal's new designs: the model switcher, the settings and export dialogs, and the session export dialog move over, and the settings dialog shows a description for each setting. The core broadcasts models.dev catalog refreshes server-wide and builds provider variants after package normalization.

v2.1.0 — October 20, 2026#

Session archiving restored · Editable saved permissions · Free models by default · Paged plugin session list

v2.1.0 follows the v2.0.32 patch line. It restores session archiving, makes saved permissions editable after they are granted, shows free models alongside their paid twins in the model list by default, and exposes a paged session list to plugins. Underneath, core and AI fixes give buffered generations and broken-pipe transports a shared retry path and let a generation tolerate unknown stream events and null Responses fields.

v2.0.32 — October 16, 2026#

experimental.voice.session · voice session endpoint · /copy last message · auth, Windows, Gemini fixes

v2.0.32 adds an experimental server route, POST /api/experimental/voice/session, that starts a voice call with the provider key stored on the machine running OpenCode and returns connection details while the client carries the audio directly (#55951); a generated client.voice.session method calls it. The terminal's /copy copies the last assistant message, including a compaction summary (#56053, #56055). The rest is hardening: auth login survives a missing browser opener (#56082), Windows snapshot capture retries on Git write collisions (#56190), and the Gemini provider retries MALFORMED_RESPONSE finishes (#56232).

v2.0.31 — October 16, 2026#

Model reasoning from config · opencode2 theme · new designs experiment · Bedrock Converse fix

v2.0.31 adds model reasoning to the settings read from config (#55853) and seeds configured limits before model transforms run (#55778). The terminal gets a gated 'new designs' experiment with new dialog designs, an 'opencode2' theme, and a text.faint token. Core fixes escape env config values that break parsing, honor the Anthropic cache format on Bedrock Converse, and omit compaction replay context from sanitized exports; free-model selection defaults to big-pickle and prioritizes preferred free models when signed out.

v2.0.30 — October 15, 2026#

OPENCODE_DISABLE_CLAUDE_CODE · 2 new env vars · diff panel by default · MCP core fixes

v2.0.30 opens the terminal's diff side panel by default (#55780), gives it responsive layouts, and moves the dialogs onto one shared layout. Two new environment variables, OPENCODE_DISABLE_CLAUDE_CODE and OPENCODE_DISABLE_CLAUDE_CODE_SKILLS, turn off OpenCode's Claude Code compatibility, its reading of .claude rules and skills. Core fixes rework MCP capability negotiation and OAuth loopback handling, context compaction fits its limit to the request actually sent, and the config schema validates both V1 and V2 shapes.

v2.0.29 — October 14, 2026#

Continue past output cap · Desktop cost view · Device pairing · Stable policies config · Plugin permissions

v2.0.29 puts the release's feature weight in the desktop app: the session view now reports that session's tokens and cost (#53785), the app can pair into a running server through the same remote-access flow the opencode pair command drives (#55306), and it manages provider accounts (#54101). A core change continues a response past its output token limit (#53876), reaching every client at once. On the config side, policies is promoted to a stable top-level key (#55297), plugins can assert permissions (#54930), and managed configuration takes highest precedence (#55267).

v2.0.28 — October 13, 2026#

Windows ARM64 native builds · Figma MCP plugin · release highlights in the TUI · /changelog page · provider cache + encoding settings

v2.0.28 brings native Windows ARM64 to the CLI, the desktop app, the console download, and WinGet, with emulated x64 installs upgrading themselves to native. An opt-in Figma plugin registers Figma's remote MCP server and bundles its official skills, installed through the same opencode plugin add path as any provider. The terminal shows the new version's release highlights after an update, and the console renders CHANGELOG.md at a /changelog page. Provider work adds a per-model compatibility.cacheFormat for Anthropic cache breakpoints, a request body encoding setting, and continuation of Gemini responses split across parts.

v2.0.27 — October 12, 2026#

OPENCODE_ENABLE_PARALLEL · summarized Claude thinking · GPT Astra prompt · ACP session options · TUI remote auth

v2.0.27 tunes how OpenCode talks to models: Claude reasoning is requested as summarized adaptive thinking with the effort level layered on, across the direct, Bedrock and SAP AI Core paths (#48269), and OpenAI's GPT Astra models get their own system prompt (#48057). A new OPENCODE_ENABLE_PARALLEL environment variable turns on the Parallel web search tool when set to 1. Two fixes restore the model, mode and reasoning-effort options the ACP agent advertises to a connecting editor (#48225) and make the terminal report remote authentication errors at startup (#49016). On the website, install links and desktop downloads now resolve to v2, and the 1.x docs carry a v2 announcement banner.

v2.0.26 — October 8, 2026#

OPENCODE_RELEASE_NOTES · Vertex via gcloud ADC · secret remote subdomain · faster change tracking

v2.0.26 lets OpenCode authenticate to Google Vertex through local gcloud Application Default Credentials with no API key (#53798), and serves remote access on a randomly generated subdomain that it redacts and treats as secret (#53962). Clicking a wrapped link in the terminal transcript now opens it from any row, untracked-file diffs are batched instead of spawning git per file, and a new publish-pipeline variable, OPENCODE_RELEASE_NOTES, writes reviewed notes into a CHANGELOG.md the v2 tags had not carried before.

v2.0.25 — October 8, 2026#

Office file previews · Brotli-compressed web UI · QR pairing · between_tools thinking

v2.0.25 adds no new environment variables over v2.0.24 and puts its weight on the graphical surfaces and the server. The app previews Word, Excel and PowerPoint files, lists recently closed tabs and recent sessions, and reworks mobile navigation; the desktop browser bar was redesigned. The CLI embeds its browser UI as raw bytes and serves it brotli-compressed, pairing QR codes now encode every address, and the server streams fs.read with HTTP Range support. Core drops the prompt for directories outside the project by default, removes tool-name and namespace length caps, and stops sending API key metadata in the request body; providers gain between_tools thinking in Anthropic Messages and missing OpenAI and Google service tiers.

v2.0.24 — October 6, 2026#

Vercel AI Gateway · AI SDK v6 default · Azure catalog routing · Codex sign-in labels

v2.0.24 is a provider-and-interface release. Vercel AI Gateway becomes a native provider (#53432) with its language models in the catalog (#52643), the provider packages move to AI SDK v6 by default (#53287), and catalog fixes route completions-shaped Azure models through chat (#53395), exclude non-text models (#53295), and resolve GitLab Duo reasoning variants (#51082). OpenAI sign-in methods are relabeled Codex (#53467), and the terminal interface lists sessions awaiting input at the top of the open menu (#53435).

v2.0.23 — October 5, 2026#

native Cohere provider · ACP editor fixes · disable-model-invocation skill flag · no new env vars

v2.0.23 ships no new config surface and spends the release on provider breadth, the Agent Client Protocol, and reliability. A native Cohere chat provider joins the ai layer, and system-role text is now preserved for Gemini, Mistral, and Cohere requests. The ACP cluster (compaction reporting, out-of-band permission settling, remote image references, protocol docs) hardens running OpenCode inside Zed, JetBrains, and Neovim. Skill frontmatter adds disable-model-invocation to hide a skill from the model's advertised list while keeping it loadable by explicit ID.

v2.0.22 — October 2, 2026#

opencode acp · Plugin session API · Provider error classification · Azure discovery · No new env vars

v2.0.22 puts most of its feature work on the Agent Client Protocol: a session can span extra workspace directories, follows model and agent changes from other connected clients, and answers V2 forms by elicitation, with fixes to usage reporting, file-tool locations, and command delivery. Plugins can now remove a session, trigger compaction, and create a parent session. Provider failures across DeepInfra, Novita, Together, xAI, and Z.ai are classified as context overflow or authentication errors rather than generic failures, and a blocked response reports why. Azure deployment discovery and prompt caching for DigitalOcean widen provider coverage. No environment variables or experimental flags changed.

v2.0.21 — September 30, 2026#

Cloudflare AI Gateway passthroughs · OpenRouter prompt cache · Workers AI + Nova overflow · grouped session reads · ACP session catalog

v2.0.21 is a routing-and-interface release over v2.0.20. On the provider side, Cloudflare AI Gateway Claude and OpenAI requests take native passthroughs (#52222), OpenRouter Anthropic and Qwen requests carry prompt cache breakpoints (#52110), Workers AI and Amazon Nova over-limit responses are classified as context overflow (#52128, #52131), and GitHub Copilot Responses settings pass through (#52182). The session view groups adjacent file reads into one row, keeps the open group header sticky, and opens session IDs referenced in markdown (#52207, #52210, #52231); the desktop in-app browser can comment on page elements (#52217). The Agent Client Protocol server now follows server defaults and refreshes the session catalog (#52286). No env vars or experimental flags changed.

v2.0.20 — September 29, 2026#

opencode auth import · ChatGPT sign-in for OpenAI · owner-only database files · run survives a rejected permission

v2.0.20 adds auth export and auth import to move provider credentials as JSON to another machine, and a way to disable the background service. Signing in through ChatGPT registers a separate token-sharing OAuth method and uses those tokens for OpenAI models, backed by a usage-limit dialog and errors that explain token-sharing failures. Database files are restricted to their owner, denied permissions no longer stop a non-interactive run, and provider fixes surface raw error bodies and correct reasoning-block handling for Bedrock, Mistral, and Workers AI.

v2.0.19 — September 29, 2026#

OPENCODE_SESSION_ID · 256k output cap · context-window fit · ElevenLabs Scribe route · repo relative-path reject

v2.0.19 is a reliability and provider pass over v2.0.18. Output limits are fitted to the room the prompt leaves in the context window and capped at 256k tokens. The shell tool's environment is aligned with agent conventions and now sets OPENCODE_SESSION_ID on every command, so a script the agent launches can read the active session. Media routes add ElevenLabs Scribe transcription and better handling of truncated Gemini speech and transcription results, and repository host references reject relative path segments.

v2.0.18 — September 25, 2026#

OPENCODE_CLI_CONFIG_CONTENT · 2 env vars · Code Mode · media generation

v2.0.18 closes an eighteen-release week for OpenCode 2. Code Mode, where the model drives tools by writing JavaScript in a bounded interpreter, took the bulk of the work, gaining language built-ins, guardrails, and MCP tools and resources as callable Code Mode tools. Media generation landed beside it with image, video, speech, and transcription routes across Black Forest Labs, fal, Replicate, Stability, and AssemblyAI. Two env vars arrive: OPENCODE_CLI_CONFIG_CONTENT for inline config and OPENCODE_GITLAB_AUTH_CLIENT_ID for GitLab OAuth. New experimental keys add fs.write, WebSocket plugin hooks, MCP lifecycle control, session export and import, and an evaluation API.

FAQ#

Q: How do I install OpenCode 2?

A: Run curl -fsSL https://opencode.ai/v2/install | bash, npm install -g @opencode/cli, or brew install anomalyco/tap/opencode-v2. Remove a package-managed OpenCode 1 install first, because both use the opencode command.

Q: How do I update OpenCode 2?

A: Run opencode upgrade (alias opencode update). Add a version number, for example opencode upgrade 2.2.5, to pin one.

Q: How do I install OpenCode on Windows?

A: Run npm install -g @opencode/cli, use the desktop .exe, or download the x64 or ARM64 zip. Chocolatey, Scoop and WinGet are not supported for OpenCode 2. In WSL, use the Linux steps.

Q: Is there an OpenCode desktop app?

A: Yes. OpenCode Desktop (beta) is available for macOS, Windows and Linux from opencode.ai/download, and on macOS with brew install --cask opencode-desktop.

Q: How do I open the OpenCode web UI?

A: Run opencode pair and open the link it prints. OpenCode 2 has no opencode web command. Add --remote to reach the server from another network.

Q: What is OpenCode Zen?

A: The OpenCode team's pay-as-you-go provider of models tested for coding agents, now documented as OpenCode Console models. Connect it with /connect and an API key from opencode.ai/console. Its model IDs start with opencode/.

Q: Does OpenCode 2 support LSP?

A: No, not as of v2.2.5. It keeps the lsp config key but does not start language servers. OpenCode 1.x supports LSP with "lsp": true.

Q: How do I add an MCP server to OpenCode?

A: Run opencode mcp add <name> --url <url> for a remote server or opencode mcp add <name> -- <command> for a local one, then opencode mcp list. In OpenCode 2 config, servers go under mcp.servers.

Q: Is OpenCode free?

A: OpenCode is open source under the MIT license. You pay the model provider you connect; OpenCode Zen also lists free-tier models that work only from OpenCode.

Sources: [1] OpenCode 2 docs: Intro | [2] Migrate from V1 | [3] CLI commands | [4] WinGet release script, v2.2.5 | [5] Web | [6] Console models | [7] OpenCode 1 providers: OpenCode Zen | [8] OpenCode 1 LSP servers | [9] MCP servers | [10] README, v2.2.5

Related: OpenCode config reference | OpenCode plugins reference | OpenCode Version Tracker (1.x)

OpenCode 2 coverage

  • 28 release analyses published.
  • First: v2.0.18 on September 27, 2026.
  • Latest: v2.2.7 on November 10, 2026.
  • Cadence: one analysis per release, with new releases checked hourly.
  • Source of record: the official OpenCode 2 changelog.

Get the weekly digest

New Claude Code, Codex, Gemini CLI and OpenCode guides and release analyses, once a week, plus occasional notes.

One email a week plus occasional notes. Confirm by email; unsubscribe from any issue. Privacy