Changelog
New updates and improvements to OpenCode
Core
- Stopped subagents from launching nested subagents by default, with a configurable `subagent_depth` limit when needed.
- Improved default reasoning depth for Meta models.
Desktop
- Added `Mod+N` as another shortcut for opening a new tab.
- Restored the Help button in release builds.
- Kept sessions with `null` archive times visible instead of dropping them from the home list.
- Hid the drawer close button on Windows where it conflicts with the window chrome.
Desktop
- Fixed spacing between model provider sections in Settings.
Desktop
- Completed the Desktop v2 migration, including upgrade handling for the new layout and first-launch onboarding.
- Added a setting to switch between the new and old Desktop layouts during the transition period.
- Fixed file views using the wrong background in the v2 layout.
- Fixed connected project picker positioning when its anchor is still loading.
- Kept permission auto-accept state separate for each server.
- Fixed a project picker positioning crash.
- Kept terminal tab rename focused while editing.
- Enabled remote sessions to auto-accept permissions correctly.
- Fixed terminal tabs stealing focus when they mount.
- Loaded more timeline history at once to reduce repeated backfill while scrolling.
- Resynced the timeline correctly after reconnecting.
- Preserved the composer caret after request updates.
- Reduced Home cold-load time substantially.
- Preserved timeline bottom anchoring more reliably.
- Clarified status indicator severity.
Core
- Removed an obsolete Codex workaround that could interfere with OpenAI Luna Responses Lite requests.
- Updated Azure AI support for GPT-5.6.
Core
- Supported OpenAI pro reasoning mode.
- Disabled response storage by default for xAI Responses.(@geraint0923)
- Added OAuth support for Luna Responses Lite.
- Switched to another available org after logging out in the console.
- Used Codex context limits for GPT-5.6 over OAuth.(@nabilfreeman)
TUI
- Forwarded CLI environment variables to the TUI worker.
Desktop
- Removed interface transition changes that were accidentally shipped to `dev`.
- Fixed clipped labels and branch tooltips.
- Stopped the review panel width from jumping when opening or closing it.
- Focused the prompt input when starting a new session.
- Prevented some new-session updates from blocking the UI.
- Fixed timeline outlines getting clipped.
- Aligned context token counts with usage totals.
- Kept the file tree visible while opening files.
- Redesigned attachment cards and file comment chips in the new interface.
- Updated the review panel with persistent file browsing, better file tabs, and easier open-in-app actions.
- Restyled the Edit Project modal to match the new interface.
- Added middle-click to open sessions in a new tab.
- Added a temporary setting to switch between the old and new interface.
- Added per-prompt model selection in the composer.
- Polished the new interface styling across the session view and terminal.
Core
- Prevent crashes and bad pricing data when GitHub Copilot returns models with a zero billing batch size.
- Add a model-specific system prompt for Meta Muse Spark.
Core
- Improved Meta model handling for reasoning variants and provider requests.
Desktop
- Fixed clipped descenders in model selector labels.
- Added a dismissible tabs intro popup and refreshed the help entry point.
- Updated sub-agent task rows to match the v2 session design more closely.
- Restyled the revert dock in v2 sessions for clearer restore actions.
- Added a v2 free-model selector with faster access to more providers.
Core
- Exposed reasoning effort variants for Grok models.
- Improved xAI prompt cache routing and PDF file support in Responses models.
Desktop
- Added an Open containing folder action for projects on the home screen.
- Added a composer add menu for files, commands, context, and shell mode without losing draft text.
- Added a provider setup tip on new sessions when no external providers are connected.
- Remember review panel mode and selected file per session.
- Added inline file browser tabs for opening and previewing files from the side panel.
- Updated desktop translations.
- Kept the review pane usable on wide screens by reserving its minimum width.
- Fixed hidden session panes staying mounted and causing side-panel glitches.
- Routed legacy drafts back to the session page.
- Loaded full review diffs for large patches when the initial diff is capped.
- Removed the first-open flash in the command palette.
- Routed the new session shortcut through tabs in the new layout.
- Kept session routes inside the correct layout when opening legacy session URLs.
Core
- Better classify Z.ai context-window overflow errors so oversized requests surface the right failure mode(@fengjikui)
- Handle unavailable config directories more gracefully when reading config files
Desktop
- Restore model details tooltips in the model picker(@arvsrn)
- Refresh the v2 command palette to better match the rest of the new desktop UI(@arvsrn)
- Make terminal shortcuts take priority when the terminal is focused
- Show unread state on tabs with pending questions
- Keep session tab titles available after reloads while session data is still loading
- Apply theme changes only after you select them in Settings
- Fix macOS titlebar appearance mismatches in Sequoia and adjust traffic light placement(@arvsrn)
Core
- Added a code mode MCP adapter for running confined orchestration scripts against connected MCP tools.
- Hid the `execute` tool unless code mode is enabled.
- Fixed paginated MCP tool catalogs losing tool metadata and output schema validation.
- Preserved low reasoning effort for OpenRouter small-model variants instead of disabling it.
- Fixed GitHub Copilot model routing to honor each model's advertised chat or responses endpoint.
- Fixed session lists to match equivalent instance directories reliably.
- Fixed Cerebras reasoning replay so earlier assistant reasoning is sent back in the provider-supported field.
TUI
- Fixed spinner registration so loading indicators keep rendering across TUI surfaces.
Desktop
- Show draft server status in the title bar.
- Unified the provider connect flow across the app.
- Improved the integrated terminal experience.(@arvsrn)
- Added reopening for closed tabs and background tab opening.(@usrnk1)
- Improved model search in picker dialogs.(@arvsrn)
- Added recently closed projects to Home.(@usrnk1)
- Made tab navigation respond on mouse down in the new layout.
- Overhauled the v2 review panel.(@arvsrn)
- Refined the session tab preview popover.(@usrnk1)
- Fixed new sessions from Home using the wrong project.
- Fixed first-launch onboarding so it only appears when appropriate.
- Improved large review pane performance.
- Fixed timeline loads that started on assistant replies by backfilling the missing user turn.
- Restored typing in the composer while the window is unfocused.
- Fixed dropdown search behavior.(@arvsrn)
- Kept the v2 review pane mounted when switching session tabs.
- Kept the terminal mounted when switching session tabs in a workspace.
- Fixed session tab busy indicators to stay scoped to the correct server.
- Fixed child-session navigation and lineage resolution during tab transitions.
- Kept desktop window tabs after closing and reopening the app.
Core
- Force reasoning mode for OpenAI-compatible reasoning models so reasoning settings apply reliably on custom deployments
- Stop replaying stale GitHub Copilot response item IDs, avoiding follow-up request failures
Desktop
- Let question prompts be minimized and restored without dismissing them(@arvsrn)
- Clean up stale empty and old draft store files to reduce desktop state buildup
- Keep pending question requests open while reviewing them, instead of dismissing them accidentally(@eXamadeus)
- Keep session page failures scoped to the affected tab instead of breaking the whole app
- Improve markdown and message layout alignment in the v2 session UI(@arvsrn)
- Add a searchable v2 model picker and model management flow in the composer(@arvsrn)
- Show a hover preview for session tabs with the project, path, branch, and server(@usrnk1)
- Streamline WSL server setup with clearer distro checks and install flows(@arvsrn)
- Keep desktop tabs scoped to each window so windows restore their own tab sets
Core
- Enable adaptive thinking for Claude Sonnet 5.
- Prefer MCP content responses over structured output when both are present.
- Reconnect MCP servers after OAuth even if the server was disabled.(@MaxAnderson95)
- Request MCP refresh-token scope during OAuth.
- Show MCP OAuth completion errors instead of a generic failure.
- Refresh cached remote skills.
- Preserve skill resource paths.
- Pick better default small models across providers.
- Scope MCP auth status to each server URL.
TUI
- Add a yolo mode to auto-approve permissions.
- Pass ServerAuth headers through external served TUI connections.(@OpeOginni)
Desktop
- Autocomplete MCP resources in the composer.
- Add workspace controls when starting a new session.
- Show stored token and cost totals in the session context.(@OpeOginni)
- Autocomplete configured references in prompts.
- Restore the prompt cursor when the composer regains focus.
- Remember the last active desktop URL across restarts.
- Preserve the selected model when promoting a session.(@usrnk1)
- Keep session pages in sync during concurrent events.
- Support normal auth input prompts in the desktop connect-provider dialog.(@OpeOginni)
- Prevent hidden terminal tabs from hanging or resizing incorrectly.
- Re-enable auto-accept in session settings.
- Keep session tabs scoped to the correct server.
- Remember the selected home project and server.
SDK
- Add a live event subscription stream.
- Add SDK access to active sessions.
- Restore session runtime operations such as event streaming, interrupts, and message lookup.
- Add paged durable session history.
- Add session permission request create and fetch endpoints.
- Preserve `V2Event` names in SSE streams.
- Wake embedded session execution after new prompts.
- Improve V2 runtime tool results and avoid duplicate model switch events.
- Resolve MIME types for prompt attachments sent by URI.
Core
- Add session snapshots and revert controls so you can roll a session back to an earlier message, including file changes.
- Always print the MCP OAuth URL so manual sign-in still works when opening the browser flow.
Desktop
- Add Chrome-style tab cycle shortcuts with `mod+1` through `mod+9`.
- Add draggable tabs.(@arvsrn)
- Improve the empty home state when you have no sessions.(@arvsrn)
- Restyle the jump-to-latest button in the v2 session view.(@arvsrn)
- Improve the redesigned desktop layout, including better titlebar tabs and archived sessions.(@arvsrn)
- Keep prompt drafts attached to the correct project server.
- Restore consistent titlebar tab sizing and layout.
- Restore home actions when session lists are empty or still loading.
- Keep todo docks in place when switching between sessions.
- Automatically close tabs for sessions that no longer exist.
- Keep provider dialogs, prompt rollbacks, and async attachments tied to the session where they started.
- Clear late session notifications after you open the session.
- Remove the session loading stripe.
Core
- Added MCP server instructions to session context.(@Arcadi4)
- Added Opencode-managed provider integration support.
- Added MCP resource template listing.
- Added MCP resource read tools.
- Added a `--mini` CLI mode.
- Hid MCP resource template tools when access is denied.
- Prevented MCP resource tools from colliding when servers expose the same keys.
- Emitted skill base directories as filesystem paths instead of `file://` URLs.(@shyuan)
- Restored legacy MCP tool names for existing integrations.
- Restored v1 account config loading.
- Bound MCP OAuth callbacks to IPv4 loopback for better local auth reliability.(@he-yufeng)
- Preserved structured error details in surfaced failures.
- Fixed snapshots from subdirectories so they only include the right files and paths.
- Fixed ACP resource text sourcing on Windows and other cross-platform path cases.
- Preserved file source paths in ACP resource text.
- Waited for plugins before loading reference-backed config and system context.
- Hid `gpt-5.5-pro` when using Codex OAuth.
TUI
- Added a configurable keybind to open the diff viewer.
- Added diff viewer support for comparing against the main branch.
- Prevented worker rejections from breaking the TUI process.
Desktop
- Kept draft prompt state per tab.
- Added a new session progress indicator.(@arvsrn)
- Added mobile bottom navigation.
- Added collapsible server sections.(@arvsrn)
- Added server-aware session routes to keep same-session navigation separated across servers.
- Always applied safe-area insets.
- Made session navigation more stable and faster.
- Routed new sessions through tabs correctly.
- Cleared viewed session notifications reliably.
- Scoped drafts created from Home to the right server and project.
- Throttled directory tree loading.
- Persisted drafts and prompt state more reliably.
- Improved iOS PWA shell behavior.
- Refined the mobile session layout.
- Added the server button dropdown.(@arvsrn)
- Restored review line comments.
- Improved the mobile home layout.
SDK
- Exposed provider integration IDs in the SDK.
Extensions
- Added namespaced plugin hook APIs.
- Added the V2 plugin API for Effect and Promise plugins.
Core
- Honor configured agent step limits by forcing a final text response instead of failing mid-run.
- Fix Devstral model detection when provider IDs use different casing.(@Robin1987China)
- Pass configured custom headers to Copilot model requests.
- Add `high` and `max` thinking variants for GLM-5.2 across supported providers.(@imranshaiedi-byte)
- Stop wrapping follow-up user messages in a steering reminder so prompt caching stays effective.
TUI
- Only show the background subagent shortcut when the server supports it.
Core
- Session timelines load much faster and avoid flicker or scroll jumps.
- OpenAI-compatible providers now accept MCP tool schemas that previously failed validation.(@jquense)
- Cloudflare AI Gateway now receives the configured API key correctly.(@keefetang)
- MCP tools without declared schema properties now work with providers that expect object properties.
- Long-running MCP tools now keep their timeout alive when they report progress.(@Nomadcxx)
- The MCP OAuth callback server now shuts down once authorization finishes or is cancelled.
- MCP tool failures now surface the server's error text instead of a generic failure.
- MCP OAuth error pages now escape provider error text correctly.
Desktop
- Added a Home tab toggle so you can quickly switch between Home and your last tab.
- The new desktop file and folder picker is faster and easier to navigate in the v2 layout.
Core
- Plugin client requests now reuse the active server instead of assuming the default local port.
- ACP shell tool calls now show the command and working directory from the start.
- Plugin-provided shell environment variables now apply to PTY sessions.
- MCP servers can now receive the current workspace as a client root.
TUI
- MCP debug now uses the SDK's latest protocol version.
Desktop
- The new session route now stays scoped to its own draft server, so prompts and state target the right workspace.
SDK
- SDK clients now refresh model and provider availability when integrations change, and credential update and remove calls accept `location`.
Core
- Improved MCP server compatibility by declaring OpenCode's supported client capabilities.
Core
- Added external browser OAuth for the Snowflake Cortex provider(@santigc6)
- Improved project copy management and move-session flows in v2
- Recovered expired MCP sessions instead of leaving MCP tools disconnected
- Cleared closed MCP clients so stale MCP connections do not linger
- Returned structured MCP tool output in a readable form
- Fixed duplicate renderable IDs that could break TUI rendering
- Fixed commands using `$ARGUMENTS` so file contents are not injected twice(@verdverm)
TUI
- Added auth headers to `RunCommand` fetch requests(@OpeOginni)
Desktop
- Brought v2 visibility settings to the web app
- Refreshed the oc-2 color theme(@arvsrn)
- Made the terminal resize gutter easier to grab
- Faded overflowing titlebar tabs instead of clipping them abruptly
Core
- Added `cwd` support for local MCP servers so they can start from a workspace-relative directory.(@Grantmartin2002)
- Added connector-based authentication flows and support for stored provider credentials.
- Added v2 API endpoints to create and fetch sessions, list session questions, and resolve the active location.
- File reads now return raw content with the correct content type for API and SDK clients.
- MCP server log notifications are now surfaced in opencode logs.
- Fixed Gemini tool schemas that used multi-type fields so compatible tools keep working.(@Killusions)
- Content-filtered model responses now surface as visible errors instead of failing silently.(@kkdawkins)
- Fixed MCP auth and debug requests dropping configured headers.
- Snapshot creation now reuses source Git objects to avoid long re-hashing delays on huge repos.(@dmtrKovalenko)
- Fixed MCP catalog request timeouts not applying when listing prompts, resources, or tools.