Changelog
New updates and improvements to Zingpop
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.
Core
- Recover from expired remote config auth by prompting you to log in again instead of failing to load config(@Ayushlm10)
- Let subagents use their own configured permissions again
Desktop
- Restore Linux launcher and icon identity so pinned apps keep opening correctly(@neriousy)
- Restore the device attachment picker(@rexdotsh)
Core
- References can include usage descriptions for agents, show up in the new docs, and be hidden from `@` autocomplete when needed.
- Deprecated `reference` config entries continue to load under the newer `references` config key.
- MCP prompt and resource requests now respect configured server timeouts.
- Anthropic fallback responses are handled correctly again.
- MCP servers that fail during client setup now fail cleanly instead of leaving a broken connection behind.
Desktop
- The new desktop session flow now has a dedicated `/new-session` route with draft tabs that keep your prompt and project selection together until you start the session.
- Restored macOS auto-updates.
Core
- Faster file search across large projects with the new `fff`-backed search tools.(@dmtrKovalenko)
- Added `X-Session-Id` headers for proxy setups that need sticky routing.(@songchaow)
- Added Cohere North model support.
- Added `reasoning` as an interleaved field option for vLLM providers.(@delta9000)
- `mcp add` now works in non-interactive flows.
- `auth logout` now supports search when choosing an account.
- Improved MCP connection status messages so failures are easier to act on.
- Added Claude Fable reasoning support.
- MCP tool calls now receive abort signals, so cancellations stop more reliably.
- MCP catalogs now paginate correctly instead of truncating larger lists.
- OpenRouter reasoning variants now generate for all models.(@AnthonyMLau)
- Added MiniMax M3 thinking toggle support.
- Java multi-module Maven workspaces now resolve JDTLS from the topmost `pom.xml`.(@areyouok)
- MCP servers now respect advertised capabilities.
- Session lists now respect directory filters in workspace setups.(@rexdotsh)
- Sessions can recover once from provider context-overflow errors instead of failing immediately.
- Bedrock Mantle config now honors configured API key and region settings.
TUI
- The session move flow now highlights project copies more clearly and keeps the current location selected.
- Project copies can now be deleted directly from the move dialog.
- New project copies are now bootstrapped before the TUI switches into them.
- Moving a session now injects a reminder about the new working directory.
Desktop
- Added a help button to the tabs bar.
- Prompt drafts are preserved while you switch tabs.
- File attachments now open in the active project.
- App updates now stay responsive and persist across restarts.
- Added WSL-backed Desktop support and WSL server management on Windows.
- Improved the sessions list UI.(@arvsrn)
- Improved the servers UI.(@arvsrn)
- Updated Electron and fixed related panel layout issues.
- Fixed several WSL Desktop bugs.(@neriousy)
- Hidden agents no longer get cycled accidentally.
- MCP status now refreshes when the active directory changes.
- The Home screen now keeps a larger recent-session list with scrolling.
SDK
- Large v2 tool outputs are now bounded and expose retained output paths for follow-up inspection.
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.
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.