OpenCodeOpenCode

Changelog

New updates and improvements to OpenCode

Core

  • Reasoning summaries now only run on providers that support them, avoiding GPT-5 request failures on compatible backends.
  • Edit operations now refuse loose matches that could overwrite the wrong code or replace an existing file by mistake.
  • Fixed Bedrock sessions hanging before a model response starts.(@alblez)
  • Diff viewer now supports next and previous hunk navigation.
  • Terminal themes now refresh after live terminal reloads without stale colors or broken highlighting.
  • Running subagents can now be sent to the background so you can keep working.
  • Sessions now persist system context updates during long-running conversations.
  • Added Snowflake Cortex provider support.(@kameshsampath)

TUI

  • Fixed the external editor fallback so attach-mode sessions still open when the original project path is unavailable locally.(@pcadena-lila)
  • Permission replies now route through the correct session directory.
  • `/mo` now prefers the models command in slash autocomplete.
  • Fixed crashes from malformed path or diff metadata in permission and session views.

Desktop

  • Fixed titlebar tab overflow clipping.
  • Fixed overflowed titlebar tabs so scrolling and drag regions behave correctly.
  • Improved tab closing and navigation so the next tab is selected more reliably.
  • Improved multi-server desktop support with per-server home state and session tabs.

Core

  • Added managed workspace cloning that keeps dirty and untracked files.
  • Added moving sessions between workspaces and directories.
  • Added proper OpenAI model support through AWS Bedrock.
  • Added skill discovery and file-based agent loading.
  • Updated GitHub Copilot usage tracking for token-based billing.
  • Added `run --replay` for interactive session replay.
  • Improved startup time.(@StarpTech)
  • Added Vue syntax highlighting.
  • Restored full ACP session replay when loading saved sessions.(@imnotlxy)
  • Fixed shell cancellation races.
  • Fixed SAP AI Core OpenAI reasoning variants.(@jerome-benoit)
  • Fixed delegated tasks losing their selected reasoning variant.
  • Fixed OpenAI websocket sessions getting stuck idle.
  • Fixed Windows path normalization in migrated storage.
  • Fixed prompt corruption when pasting near wide characters.(@dauphinYan)
  • Fixed ACP cancel so it aborts the active run.(@smagnuso)
  • Fixed SAP AI Core Anthropic Opus 4.7+ adaptive reasoning.(@jerome-benoit)

TUI

  • Improved the experimental session switcher.
  • Truncated long sidebar file paths.
  • Show a toast when the variant hotkey is used with no variants.(@ariane-emory)
  • Routed question responses to the right session directory.
  • Stopped the background task spinner from sticking.

Desktop

  • Added color themes.(@arvsrn)
  • Show local server startup failures in the app.
  • Added a thinking level selector for v2 prompts.
  • Added a Servers tab in Settings.
  • Added an update button.(@arvsrn)
  • Fixed session review refresh and VCS diff caching.
  • Hid update actions when desktop updates are unavailable.
  • Fixed tab title truncation and close button placement.
  • Show project sessions before path sync finishes.(@mhart)

SDK

  • Exposed session location data in v2 responses.

Extensions

Core

  • Gateway Anthropic Opus 4.7+ adaptive reasoning now keeps summarized thinking instead of returning empty thinking blocks.
  • Sessions can now store custom metadata through the API and SDK.(@shantur)
  • Config now loads from the opened location upward, so directory-specific settings and provider policies apply more predictably.

TUI

  • Wrapped inline tool rows now stay aligned, and failed inline tools can expand their error details in place.

Core

  • ACP integrations can now send prompts, slash commands, and usage updates through `acp-next`
  • Added WebSocket transport for OpenAI responses on supported channels (set OPENCODE_EXPERIMENTAL_WEBSOCKETS=true)
  • Enabled adaptive reasoning controls for Anthropic Opus 4.7+ models
  • Allowed colons in passwords(@neriousy)
  • Sped up warm `acp-next` model and config switches
  • Improved first-session `acp-next` startup time
  • Kept OpenAI WebSocket response timeouts active
  • Retried failed OpenAI WebSocket streams before falling back
  • Handled `acp-next` permission prompts correctly
  • Used the persisted session directory for existing-session requests
  • Forwarded remote workspace request bodies correctly
  • Supported custom base URLs for OpenAI WebSocket responses(@Tarquinen)

TUI

  • Added a workspace management dialog
  • Kept session navigation working while prompt modes are open
  • Restored the thinking spinner
  • Surfaced subagent retry status
  • Fixed opening editors from non-Git project paths(@OpeOginni)

Desktop

  • Added a setting to switch tab layouts
  • Improved the home empty state and fixed V2 font usage
  • Fixed tab close buttons not showing reliably

Core

  • Added `headerTimeout` config for provider requests, with a 10s default for default OpenAI setups.
  • Experimental background agents now push updates without polling.
  • You can now set only `modalities.input` or `modalities.output` in config.(@robposch)
  • Remote-backed projects now resolve a stable project identity.
  • Dynamically added MCP servers now disconnect cleanly when removed.
  • DigitalOcean inference now uses your OAuth token directly instead of creating a MAK.(@Spherrrical)
  • Config loading now falls back cleanly when user info is unavailable.
  • Fixed Google tool calling after the upstream tool ID regression.
  • Experimental flags can now override the umbrella experimental flag.
  • Resumed sessions no longer continue orphaned interrupted tools.(@edevil)
  • OpenAI reasoning summaries now render as separate blocks.
  • Updated Google Vertex support for reasoning signatures.
  • The shell tool now advertises your configured timeout to the model.

TUI

  • Made the prompt resize with terminal width and added prompt size config.(@bjschafer)
  • Accelerated diff viewer scrolling.
  • External editors now open from the worktree directory when available.

Desktop

  • Refined the Desktop v2 home screen, prompt, status popover, and session controls.
  • Fixed V2 titlebar errors when a session sync cache was deleted.(@Eric-Guo)
  • Web deployments no longer run desktop health checks.
  • Duplicate server connections are now merged in the server list.
  • Stabilized virtualized session timeline interactions.
  • Fixed the white flash when restoring the desktop window.

Extensions

  • Added a `dispose` hook for plugins.
  • Fixed Codex plugin requests to send the expected session ID header.

Desktop

  • Restored the legacy production desktop flows for opening projects and starting sessions.

Core

  • Redesigned the diff viewer with a file tree and refreshed layout.
  • Return to the previous screen when closing the diff viewer.
  • Show clearer errors when a default model is invalid or unavailable.
  • Surface missing PTY session errors instead of failing generically.
  • Improve diff viewer empty states and context handling.
  • Show clearer errors when a skill invocation fails as expected.
  • Show clearer errors when an installation upgrade fails.
  • Show clearer project not found errors from the HTTP API.
  • Return PTY error bodies from the HTTP API.
  • Enable the diff viewer by default.
  • Return MCP server not found errors from the HTTP API.
  • Let MCP OAuth configs set a callback port and include configured scopes in client metadata.(@sebin)
  • Use working Vertex Anthropic endpoints for `us` and `eu` multi-region setups.(@JPFrancoia)
  • Return session busy error bodies from the HTTP API.
  • Preserve native reasoning continuation metadata across turns.

TUI

  • Copy the current worktree path from the command palette.
  • Refine diff viewer keyboard shortcuts.
  • Restore question prompt key handling.
  • Keep the spinner color aligned with the active agent.(@OpeOginni)

Desktop

  • Move tab navigation into the title bar and tighten session tab shortcuts.
  • Show session status in the title bar.
  • Extract user codes correctly from callback URLs that contain multiple colons.(@OpeOginni)
  • Debounce VCS refreshes to reduce session page churn.

Core

  • Added Grok OAuth sign-in, including device-code login.(@Jaaneek)
  • V2 session APIs now return safe `UnknownError` responses with log reference IDs when stored messages are corrupt.
  • Generic API 500s no longer expose config details from server errors.
  • Unknown API errors now include reference IDs so you can match responses to server logs.
  • V2 session APIs now return `503 ServiceUnavailableError` for mutations that are not available yet.
  • V2 session APIs now return `SessionNotFoundError` for missing sessions.
  • Deduped concurrent Codex OAuth refreshes to avoid repeated refresh failures.(@cooper-oai)
  • Restored native OpenAI OAuth requests.
  • Tool schema failures now surface as friendly tool errors.
  • Added PDF attachment support for Grok.
  • Restored OpenAI reasoning streams.

TUI

  • Collapsed thinking labels now use clearer punctuation.
  • New sessions now default to the local project.
  • Single-select question checkmarks no longer run into option labels.

Desktop

  • Added a pinch zoom setting for the desktop app.
  • Added a new desktop home view, session entry flow, and titlebar.
  • Refined the new desktop UI and moved app update actions into the titlebar.
  • Added desktop log export.

SDK

  • V2 global event streams now include account add, remove, and switch events.

Core

  • Added a diff viewer in the TUI for reviewing changes.
  • Collapsed single-child directories in the diff viewer file tree.
  • Added shell mode to the `run` prompt.
  • Replaced subagent tabs with an on-demand picker in `run`.
  • Plugin file load errors no longer break the rest of plugin loading.
  • Anthropic API-key models now use the native runtime.
  • The v2 HTTP API now exposes structured public error schemas.
  • Zed editor context now only activates inside Zed terminals.
  • The v2 HTTP API now exposes catalog errors.
  • The v2 HTTP API now exposes request errors.
  • The v2 OpenAPI spec now preserves endpoint error responses.
  • `opencode login` now defaults to `https://console.opencode.ai`.
  • Agent and command names now resolve correctly from relative config paths.
  • Invalid `OPENCODE_PERMISSION` JSON no longer crashes startup.
  • Plugin tools with missing `args` no longer break tool loading.
  • Restored legacy `PgUp` and `PgDn` TUI keybind aliases.
  • Native runtime now prefers the console provider token for OpenCode models.

TUI

  • The diff viewer now focuses the first file automatically.
  • Imported sessions now refresh their directory and relative path fields correctly.(@OpeOginni)

Desktop

  • Added initial desktop tabs support.
  • Added a native app menu on Windows.
  • Added Ukrainian locale support.(@MYMDO)
  • Custom providers now appear immediately after config updates.(@tianxiaoliang)

SDK

  • Updated `opentui` dependencies to `0.2.15`.

Core

  • Preview the native OpenAI runtime path behind an experimental flag
  • Add `--replay` and `--replay-limit` to show recent history when resuming interactive runs
  • Fix plugin tools using `ask` so tool calls complete correctly
  • Reduce missed `/event` updates caused by a subscription race
  • Sort the v2 session list by most recently updated

TUI

  • Refresh the prompt layout after pasting content
  • Keep file references scoped to the current workspace
  • Preserve pasted prompt content when copying
  • Collapse very long tool output lines to keep the layout readable
  • Use a higher-contrast paste summary badge color in some themes(@kagura-agent)

Desktop

  • Allow desktop notifications from the renderer
  • Show free-limit and usage-exceeded dialogs in Desktop
  • Speed up large session timelines
  • Fix question dock overflow and message layout clipping
  • Hide the prompt placeholder when the input only contains whitespace(@ShrootBuck)
  • Sync the PWA status bar color with the active theme(@heimoshuiyu)
  • Install the newest available desktop update instead of reusing a stale download

Core

  • Fixed project-scoped bus events so file watcher and update notifications reach the right instance.
  • Fixed custom LSP servers not sending refresh events after they initialize.
  • Hid background subagent task instructions unless experimental background mode is enabled.

TUI

  • Made Markdown H1 headings easier to distinguish.

Core

  • Reduced wasted work when reading very large files after output truncation.

TUI

  • Fixed async commands losing the active instance context, which could break agent generation and GitHub-driven runs.

Core

  • Reduced unnecessary prompting around shell, task, and todo flows.
  • Fixed sync events not reaching project-scoped subscribers in injected instances.

TUI

  • Newly pinned sessions now stay at the end of the pinned list instead of jumping to the top.
  • Fixed `opencode run --agent` resolving project-local agents.

Core

  • Clarified how to recover when the npm package is installed without its native binary.
  • Avoid duplicate consecutive entries in prompt history.
  • Show full config validation errors during TUI startup instead of a generic failure.
  • Fixed npm installs so the CLI can recover and fetch the right native binary on more setups.
  • Fixed multiline `@` mentions in prompts.
  • Preserved custom tool metadata from Zod schemas.
  • Preserved custom tool argument descriptions in generated schemas.
  • Fixed file watching in repos where `.git` is a symlink.(@kagura-agent)

TUI

  • Added a collapsed thinking view that can be expanded inline.
  • Added pinned sessions with quick-switch slots in the session picker.
  • Fixed thinking mode defaults so reasoning starts collapsed consistently.
  • Limited session quick-switching to pinned sessions.
  • Fixed Markdown table rendering in chat output.

Core

  • Added an Effect-based core event system for more complete event delivery across sessions and integrations.
  • Ignored invalid exports in custom tool modules instead of failing tool loading.
  • Ignored project instruction lookup errors so sessions keep loading when project instruction discovery fails.
  • Fixed versioned event projector lookups so event replay uses the right handlers.

Desktop

  • Auto-hide the menu bar on Linux and Windows.(@shi-gg)
  • Fixed archived sessions being reprocessed when their archive state did not change.

SDK

  • Restored missing event types in the JavaScript SDK, including session and message events.

Core

  • Added experimental background subagents so tasks can keep running while you continue working.
  • Added the required billing origin header for NVIDIA endpoints.(@nv-kasikritc)
  • Fixed worktree creation requests that omitted the POST body.
  • Fixed sessions getting stuck with interrupted assistant messages after cancellation.
  • Fixed repeated auto-compaction in sessions after compaction reordered messages.
  • Updated LiteLLM compatibility to require `v1.85.0-rc.2+` for current GPT-5 and tool-call behavior.(@Sameerlite)
  • Fixed truncated shell output streams closing cleanly.
  • Stopped exposing internal named defect details from the HTTP API.
  • Fixed Azure `gpt-5.5` requests through the completions API.(@frederiknsgo)
  • Restored automatic image resizing for oversized image attachments.

TUI

Desktop

  • Added MCP connection status for client registration and authentication, with direct re-auth flows in the app.(@OpeOginni)
  • Fixed Windows app detection by reading `where` output correctly.

Extensions

  • Fixed DigitalOcean OAuth to request only the GenAI scopes it needs.(@Spherrrical)

Core

  • Kept HTTP event streams open after the initial connect event so subscribers continue receiving instance updates.
  • Returned proper busy errors when a session is already running prompt or shell work.
  • Let invalid `small_model` config values fall back cleanly instead of breaking small-model selection.
  • Improved missing-model errors with suggestions across CLI and typed callers.

TUI

  • Restored markdown rendering for session output by default.

SDK

  • Added `instance.directory` and `instance.workspace` query support to the v2 model and provider calls.

Core

  • Added the v2 model and provider listing API.
  • Added DigitalOcean OAuth and Inference Router support.(@Spherrrical)
  • Create a global `opencode.jsonc` automatically when no config exists.
  • Enable `customize-opencode` by default with a linked full schema.
  • Autocomplete configured `@mentions` in prompts.
  • Parse fenced Markdown code blocks in patch diffs by default.
  • Fix keymap fallback priority and make TUI config errors clearer.
  • Restore model suggestions for unloaded providers and missing models.
  • Preserve layered permission rule order in config merges.(@asuffield)
  • Preserve attachments returned by custom tools.
  • Keep recent turns after compaction instead of folding them into the summary.
  • Fix prompt cursor movement and mentions for wide characters.
  • Prevent duplicate submits from creating empty phantom sessions.
  • Keep compacted tail history when forking a session.
  • Return proper busy-session errors from the HTTP API.

TUI

  • Add pinned recent sessions, quick slots, and recent-session cycling.
  • Restore non-interactive `run` exit behavior.
  • Make the websearch provider label update reactively.(@NormallyGaussian)
  • Reduce flicker when switching workspaces.
  • Fix `run --json` output draining.
  • Fix prompt history and line up/down commands.

Desktop

  • Add Ctrl/Cmd+number shortcuts to switch projects.
  • Remember whether the todo dock is collapsed.
  • Restore AppStream metadata in Linux desktop builds.
  • Show clearer wrapped server errors in the app.(@OpeOginni)
  • Use the login shell when loading desktop environment variables.(@qwq202)
  • Remember the selected model variant when switching sessions or projects.
  • Open the next available project when closing the current one.
  • Prevent streamed Markdown from being cut off.

Core

  • Preserve original image attachments instead of resizing them before sending them to the model

Core

  • Restored prompt editing keybindings in the TUI textarea, including aliases like `esc` and `enter`
  • Model changes now persist reliably across session activity
  • HTTP API schema validation errors now return a readable 400 response body
  • Scout can now materialize configured reference repositories up front so they are ready to search
  • Large image attachments are now auto-resized before sending, with configurable size limits

TUI

  • File and directory paths now render relative to the session directory when possible
©2026 AnomalyBrandPrivacyTerms