Changelog
New updates and improvements to OpenCode
Core
- Upgraded the bundled Bun runtime to 1.4.4, which includes [security fixes](https://bun.com/blog/bun-v1.4.4#security) for Brotli, TLS, HTTP/1.1, HTTP/2, HTTP/3, WebSocket, and `fetch`, and updates root certificates to NSS 3.131.1.
Core
- Configure model reasoning options to generate reasoning variants, replacing catalog variants while preserving your configured variant overrides.
Core
- OpenCode 1 now stays on the 1.x release line: update checks use only the npm `opencode-ai` latest version, so 1.x installs are never offered a 2.x build as a regular update.
- Upgrading to OpenCode 2 remains a separate, explicit choice through the 2.0 offer in `/update` or `opencode upgrade --major`.
- Fix upgrades for installs managed by yarn.
- Skip 1.x updates for Homebrew Core installs, which now track OpenCode 2, and check tap and Chocolatey availability before offering an update.
- The install script refuses to install 2.x versions.
Core
- Session sharing has been discontinued. Existing share links and session-sharing commands are no longer available, and importing sessions from share URLs is unsupported.
Core
- Run `opencode upgrade --major` to upgrade to OpenCode 2.
- Allow the OpenAI `ultrafast` service tier.
- Validate PTY connection origins and tickets before checking whether a PTY exists.
TUI
- Use `/update` to install OpenCode updates or upgrade to OpenCode 2; updates are no longer installed automatically.
Core
- Added canonical redirects and JSON and Markdown data formats for agent-readable stats.
- xAI tool results now include supported images, while unsupported image formats are skipped.(@Jaaneek)
Core
- Send namespaced session and parent-session identity headers with model requests.
- Re-sign locally compiled macOS binaries so they run reliably on macOS 27+.(@ryangamerdev)
- Sign macOS CLI release binaries with a Developer ID.
Core
- Cloudflare AI Gateway models now honor provider response and stream timeouts.(@danlapid)
- MCP browser launch failures are now reported when the launcher exits immediately.
- Debug configuration output now redacts credentials and sensitive headers.
- Gemini thinking defaults and effort options now match the supported controls across model generations.(@markmcd)
Core
- Fixed Bedrock image attachments so they are only hoisted for Claude, Nova, and Llama 4 models.
- Fixed Together AI streaming usage reporting.
Core
- Restored ACP session model, effort, mode, and reasoning chunk boundaries when loading, resuming, or forking sessions.(@JacobNWolf)
TUI
- Show remote config authentication errors during startup and exit with a failure status.
Extensions
- Request summarized adaptive thinking for GitHub Copilot models.
Core
- Added the Astra system prompt for GPT-6 models.
- Preserved Bedrock DeepSeek model IDs, including ARN-based IDs, so they resolve correctly.(@YeEmrick)
- Updated the Azure provider SDK to pick up compatibility fixes.
- Updated the OpenAI provider SDK to pick up compatibility fixes.
- Added reasoning effort variants for supported GitLab GPT and Claude models.(@far-ouq)
Core
- Allow Codex OAuth model filtering to recognize integer GPT versions like `gpt-6`
- Fixes issue of gpt-6-astra not showing up for openai subscription users
Core
- Send the session ID as GitHub Copilot's interaction header to improve request tracking across a session.
Desktop
- Use the desktop client ID during OpenCode account device authentication.
- Increase the open-in app icon size for better visibility.
Core
- Default provider header timeouts to five minutes so slow model startups fail less often.
- Default streamed chunk timeouts to five minutes, with `false` supported to disable them.
- Let Anthropic `thinking.blockBinding` opt out via config when you need to keep the provider default.(@dkindlund)
- Limit Anthropic thinking block binding to Claude 5.1+ models so older deployments do not reject requests.
- Avoid unhandled errors when canceling timed-out SSE reads.(@AlexanderWillner)
Core
- Claude 5 sessions now tolerate stale thinking blocks instead of failing after prompt or tool changes.
- Bedrock GPT-5.6 models now accept `none` reasoning effort.
- Bedrock reasoning and replay handling is more reliable.(@pengzh1)
- Tool call timing now stays accurate when tools update their metadata while still running.(@bartlettroscoe)
- `apply_patch` no longer emits an empty move path in permission metadata.(@altendky)
- Azure CLI sign-in now asks for the resource name directly instead of querying Azure management APIs.
Desktop
- Session renames now save reliably from the title editor and tab context menu.
Core
- Fixed Azure authentication so Azure CLI sign-in works without requiring Bun.
Core
- Bedrock reasoning responses no longer get cached into unreplayable empty messages.
- Azure providers can now sign in with Microsoft Entra ID through the Azure CLI instead of requiring an API key.
- V1 now reads supported V2 config fields so newer config files keep working in more mixed setups.
Desktop
- Archived sessions disappear from the Home list immediately.(@NathanTCode)
Core
- Fixed Cloudflare AI Gateway routing for third-party providers so non-Workers models work through the gateway's REST API.(@superhighfives)
- Fixed Anthropic models through Cloudflare AI Gateway by converting dotted model IDs like `claude-haiku-4.5` to the dashed slug Anthropic expects.(@superhighfives)
- Fixed parent session IDs being sent in request headers for session-aware providers.
TUI
- Fixed GitHub auth for immutable OIDC subject tokens.
Core
- Removed outdated OpenCode Go first-month discount messaging and pricing.
- Fixed OpenCode device login links when servers return relative verification URLs or use a base path.
- Fixed `textVerbosity` being sent to OpenAI-compatible providers that do not support it.(@joelstucki-taulia)
- Updated the Amazon Bedrock provider for compatibility fixes.
Desktop
- Keep model provider headers visible while scrolling the model picker.
Core
- Continue responses when a model reports an unknown finish reason instead of stopping early
- Route Vertex AI `eu` and `us` multi-region Gemini requests through REP endpoints
Desktop
- Keep file search results visible while the next search is loading
- Register the archive session command in both desktop layouts(@NathanTCode)