Changelog
New updates and improvements to OpenCode
v2.2.5 Worktree and Shell Mode Shortcuts
Press
⌘⌥Oon macOS orCtrl+Alt+Oon Windows and Linux to choose a worktree, and⌘⌥BorCtrl+Alt+Bto choose its base branch.⌘⇧XorCtrl+Shift+Xnow toggles shell mode in the composer.#60713Send Quotes From the Comment Popup
Hold
⌘orCtrlin the quote popup to turn its checkmark into send, or press⌘EnterorCtrl+Enter, to send just that quote and comment while leaving the rest of the composer untouched.#60640Improvements
- DesktopAdded flat input surfaces and a compact input size.#60598
Fixes
v2.2.4 Persistent Desktop Terminals
Desktop terminals now belong to the session, survive server restarts with their scrollback, and stay synchronized with the TUI and other windows. Renamed terminals also keep their names across restarts.#60346
Publish Interactive Artifacts
Enable
"experimental": { "artifacts": true }inopencode.jsonto let agents publish, update, and serve HTML or static artifacts through the built-in local provider or plugin-provided storage.#60351Guided Claude Agent Setup
Select Claude Agent from the provider picker to copy
claude auth login, install Claude Code, and verify the connection before continuing to model selection.#60603Choose a Base Branch Quickly
While creating a worktree, open Choose base branch with
⌘⌥.on macOS orCtrl+Alt+.on Windows and Linux. The command is also available in the command palette and Settings › Shortcuts.#60579Improvements
Fixes
- DesktopKept terminal tab clicks and rename fields attached to the intended tab.#60645
- DesktopListed matching commands before sessions in command-palette search.#60616
- DesktopRestored copying user messages from an open actions menu.#60576
- DesktopReduced repeated work and allocations while streaming Markdown, especially in long sessions.#60549#60562#60577
v2.2.3 Faster Long Sessions in Desktop
Streaming replies and long conversations now do much less rendering work.#60489#60521#60513#60481
Desktop Stability Fixes
Fixes side-panel tabs, repeated "Session not found" toasts, and Open file over HTTP.#60430#60436#60459#60462
Improvements 13
- Terminal, SDKAdded lazy loading for stored image references when
experimental.media_blobis enabled. Images are downloaded only for previews, while undo, revert, fork, and prompt recall restore referenced attachments safely.#60116 - DesktopAdded a Desktop spellcheck toggle under Settings → General and system-language dictionary selection on Windows and Linux.#59129
- DesktopAdded
PageUpandPageDowntimeline paging from the composer without moving the draft cursor or focus.#59426 - DesktopAdded independently configurable question notifications and sounds under Settings → Notifications → Questions.#60358@YuriNek0
- DesktopAdded separate project and worktree actions to the new-session control.#60486
- DesktopAdded one-click version copying in Settings → About.#52356
- DesktopGrouped added projects in workspace settings.#60221
- DesktopMade question-answer text selectable.#60372
- DesktopAdapted the session header to narrow timeline widths.#59512
- SDKPreserved partial
LLMResponseoutput onAIError.partialwhen generation, object generation, or a tool loop fails.#60477 - SDKUnified Effect and Promise tool declarations around
tool(...), with optional output schemas and executable or declaration-only tools.#60407 - SDKAdded typed OpenRouter
debug,models,plugins,provider, anduseroptions to the Responses route.#60044 - ExtensionsAdded persistent-terminal renaming to the process daemon, including capability discovery and user titles that override shell-provided titles until cleared.#60324
Fixes 17
- DesktopKept question options and submit controls reachable on mobile.#60335
- DesktopPreserved simultaneous request notifications and inbox scroll position when opening sessions.#60378#60356
- DesktopFixed consecutive dropped files so every file mention is inserted into the composer.#60463
- DesktopKept the current
@and command-menu selection stable while results update under a stationary pointer.#59434#60368 - DesktopFixed
⌘Wside-panel closing and focus restoration when no closable tabs remain.#59002#60435 - DesktopKept the mobile session drawer open while a session loads.#59427
- DesktopRestored maximized windows on their saved display and retained renderer permissions across shared-session windows.#60482#60458
- DesktopFixed timeline growth, zoom-end scrolling, highlighting, and DOM-observer performance issues in long sessions.#60489#60481#60488#60513#60521
- DesktopKept models with unknown release dates visible.#60496@joe-ieta
- DesktopFixed reasoning-capability detection for models that expose reasoning through variants or compatibility metadata.#60457
- DesktopFixed the macOS application icon and added the required folder-access description to the app bundle.#60020#60503
- SDKMatched the Promise AI client more closely to the Effect API and accepted typed tools in loops.#60465#60390
- SDKKept tools whose
executehandler can throw available to the AI client.#60431 - SDKContinued polling queued media generations when providers return unknown intermediate statuses.#59988
- SDKStopped sending an incompatible
filenamealongsidefile_urlon OpenAI Responses requests.#60382 - ExtensionsPreserved
nullvalues in Code Mode text encoding.#57639@xiajiahang - ExtensionsTidied nested Extensions menus.#59468
- Terminal, SDKAdded lazy loading for stored image references when
v2.2.2 Faster Worktree Selection
On the new-session screen, click the current Git branch to open that project’s “Run session in” worktree picker directly.#60263
Unified Quotes and Annotations
Timeline quotes, terminal quotes, and browser annotations now share a compact optional-comment editor, while source highlights remain attached to local drafts.#60164
Improvements 8
- DesktopRestored classic question cards by default and added Settings → Experimental → New question UI for the redesigned keyboard-oriented dock.#59723
- DesktopAdded a side-panel tab menu and kept close buttons visible when tabs overflow.
- DesktopMoved user-message actions into a compact menu.
- DesktopRedesigned the active todo pill to show the current task and concurrent work more clearly.
- DesktopAdded consistent styling for searchable dialogs and composer pills.
- SDKAdded
ifanduntilinputs forclient.experimental.schedule.create, plus schedule check results and output fields.#60137 - SDKExposed
SessionInfo.time.busyfor the latest execution’s start time. - SDKAdded optional source metadata to prompt file attachments.
Fixes 11
- DesktopStopped queued prompts from dropping frames as their content grows.
- DesktopCounted queued quotes and browser annotations as attachments.
- DesktopReported failures to persist composer attachments through the normal error UI.
- DesktopMade Markdown fragment links scroll to the referenced heading.
- DesktopKept each tab’s timeline state when switching directories.
- DesktopOrdered the inbox’s Working shelf by execution start time.
- DesktopFixed side-panel launchers and automatic closing when the final tab is removed.
- DesktopFocused the matching navigation arrow while reviewing changes.
- DesktopPreserved pending model labels only when a queued prompt actually changes models.
- DesktopAdded reset details, an account link, and a composer tray for Go usage limits.
- ExtensionsCorrected visible flowchart edges connected through Merman subgraphs.
v2.2.1 Keep Working Toward a Goal
Run
/goal <objective>in the TUI or Desktop to let the session continue until a reviewer confirms the objective is met. Use/goal pause,/goal resume, or/goal clearto control it.#59437Inspect Background Shells
Click a running shell in the Desktop activity pill to see its live output and stop it without leaving the menu.#59496
New Default Model Picker
Search favorites, recent models, providers, and variants from the redesigned model picker, which is now the default in Desktop.#59997
Improvements 11
- DesktopAdd
/reloadto reload configuration without restarting.#59887 - DesktopRedesign the integrations dialog and always include OpenCode free models in the model picker.#59976#60047
- DesktopAdd project, worktree, open-in-app, and terminal actions to the session location menu.#59607
- DesktopRefine project and worktree selection, command search, prompt-history focus, composer model labels, and artifact preview controls.#59397#59604#59626#59735#59657
- DesktopHighlight quoted timeline content while you write its first comment.#59286
- DesktopKeep draft attachment bytes local when using experimental media URIs.#59104
- SDKAdd
client.experimental.schedule.{create,list,get,pause,resume,delete}for managing scheduled prompts.#59457 - SDKGroup experimental generated-client methods under
client.experimental; previous locations remain as deprecated aliases until the next minor release.#59072 - SDKExpose compaction through the Promise AI client.#59987
- SDKAdd freeform tool support and Responses routes for OpenRouter, DigitalOcean, and Venice.#59963#59991
- ExtensionsLet Code Mode extension globals return Effects and declare required services.#59948
Fixes
- DesktopFollow each plugin server’s configured endpoint when connecting to its event stream.#60087
- DesktopTreat the reachable scroll boundary as the end when Desktop zoom is active.#60034
- DesktopPrevent shell text from showing through copy buttons and avoid restyling the transcript when closing a side panel.#59901#59878
- DesktopKeep rendering malformed tool metadata instead of crashing the timeline.#59736
- DesktopMake dropdowns open immediately and keep the new-session location shortcut working after tooltip interactions.#59268#59680
- DesktopRemove edge halos from macOS application icons.#59900
- DesktopAdd
v2.2.0 Create, install and share Desktop plugins (experimental)
Refreshed the desktop app experience
Restored the Todo tool in desktop via opt-in
Improvements 51
- DesktopAdd a persistent desktop zoom setting.#59277
- DesktopCapture heap snapshots in desktop debug builds on
SIGUSR2when explicitly enabled.#58317 - DesktopShow the open session title in the browser tab.#59131
- DesktopLoad session history once when returning to a session tab.#59166
- DesktopAnswer questions with number keys and show multi-select choices as checkboxes.#58595
- DesktopLet you edit line comments and copy shell output.#58970#58974
- DesktopRender Mermaid diagrams in messages much faster, sized to fit the column.#57483#57004
- DesktopAdd opt-in memory logging and remote debugging for desktop debug builds.#58315
- DesktopShow web sources for a turn behind the experimental Sources setting.#58307
- DesktopJump from a completed shell notification to its shell output.#58663
- DesktopKeep the composer usable while the voice-call panel floats.#58587
- DesktopUse the Soft Radar activity spinner by default and provide experimental variations.#58010#57903
- DesktopAdd an experimental new model picker.#58413
- DesktopAdd experimental Console voice calls in Desktop beta.#58249
- DesktopAdd a timeline width setting.#58308
- DesktopImprove command, session, and model search lists with sticky sections.#58222
- DesktopAdd search to recently closed sessions.#55721
- DesktopOpen extension configuration and skills in side tabs.#58023
- DesktopOpen session extension lists on hover and follow keyboard navigation.#58021
- DesktopAdd video previews with zoom controls.#57924
- DesktopAdd generated project avatars and an experimental avatar-style switcher.#57871#57930
- DesktopAdd recently closed side tabs to the new-tab view.#57863
- DesktopAdd a searchable prompt history picker.#57716
- DesktopFind settings from the command palette.#57651
- DesktopGroup queued and steered messages, and group consecutive user messages under one metadata line.#57561#57552
- DesktopImprove file-tree and folder-picker performance.#57573#57557
- DesktopKeep branch search results visible while new results load.#57531
- DesktopAdd a session-details menu to the session header.#57528
- DesktopShow a subagent's model, status, and elapsed time in its composer area.#57473
- DesktopLet you delete sessions from tab menus and rename the current session with Ctrl+R.#57453#57423
- DesktopRestore session summary and project menu actions.#57781
- DesktopAdd text-rendering controls to the debug bar.#57326
- DesktopShow elapsed time for background work.#57218
- DesktopImprove streamed Markdown rendering reliability and performance.#57016
- DesktopSplit the side pane and add a draggable bottom pane with tabs.#56960
- DesktopOpen multiple file tabs at once and open side-panel content in tabs.#57182#57094
- DesktopMove running work to the background when you steer a session.#57142
- DesktopLet the timeline scroll beneath the composer while keeping its content visible.#57141
- DesktopQuote selected timeline or terminal text into the composer.#55664#58420
- DesktopAdd a Reduce motion appearance setting.#57103
- DesktopAttach the new-session location picker below the composer.#56952
- DesktopOpen image previews directly from message and composer thumbnails.#56896
- DesktopAdd a sidebar toggle for vertical tabs.#55646
- DesktopAdd ⌘1–9 and ⇧⌘[ / ⇧⌘] shortcuts for side-panel tabs.#57301
- DesktopLet you choose a new directory or worktree when a session location is unavailable.#56087
- DesktopRefresh the Manage models, MCP, and fork dialogs with compact searchable lists.#56029#56028
- DesktopInstall future Windows desktop updates in about a second.#55933
- DesktopShow individual Code Mode tool calls in Execute rows.#55649
- DesktopAdd a Commentary timeline category and display setting.#55248
- DesktopSupport
@links to other sessions in messages.#57480 - DesktopPolish spacing, alignment, borders, and typography across the session header, titlebar, composer, file tree, browser pane, timeline, and Settings.#58195#57776#57570#57782#57336#57363#58100#58979
Fixes 58
- DesktopPrevent duplicate tab shortcuts and remove uninstalled plugin commands from Shortcuts.#59499
- DesktopKeep todo items from shrinking in the todo panel.#59430
- DesktopKeep question-dock answers and controls positioned correctly when changing questions.#59383
- DesktopKeep the @ menu open while it searches.#59425
- DesktopFinish quitting after Cmd+Q on macOS.#59144@anmol0b
- DesktopToggle MCP servers for the current session location from Settings.#59132
- DesktopDeliver steering messages when an earlier move was missed.#58984
- DesktopKeep session and command-palette search results stable while searching.#58908#57479
- DesktopRestrict Search projects to the project list.#58978
- DesktopLet custom Close tab shortcuts close terminal and browser tabs.#58945
- DesktopPrevent live status rows from jumping or leaving gaps above the composer.#58691#58697
- DesktopKeep browser tabs still behind open dialogs.#58958
- DesktopKeep side-panel content and browser pages visible while the sidebar or panel moves.#58202#58185
- DesktopRender session diffs reliably.
- DesktopKeep keyboard focus in terminals, side panels, dialogs, and the composer when appropriate.#57980#57297#56273
- DesktopPreserve empty browser and side-panel tabs instead of closing them automatically.#58440
- DesktopReduce desktop memory use by releasing closed transcripts, discarded tool-result images, retained UI batches, and aborted timeline work.#57025#58434#58427#58560#58447#58439#58432
- DesktopRestore horizontal scrolling and sticky change badges in the file tree.#58117
- DesktopShow live Thinking for reasoning-only turns.#58299
- DesktopStop loading older history after completing the initially visible turn and prioritize the first transcript page.#57700#57741
- DesktopKeep Home project and session lists reliable during refreshes.
- DesktopKeep deleted sessions from reappearing on Home.#55349
- DesktopFind sessions immediately in @ mentions, including multi-word titles.#57683
- DesktopKeep queued messages editable while changes sync with the server.#57569
- DesktopOpen image and video URLs in the browser pane.#57562
- DesktopMark submitted generated forms as complete and send each response only once.#57537
- DesktopImprove file-view performance with reused views, virtualized medium files, and cached diffs.#57551
- DesktopGroup untracked folders into one expandable review row.#57527
- DesktopLet you paste into the composer from the session view.#57545
- DesktopRecover failed beta background servers and preserve their required CLI versions.#57321
- DesktopKeep the running server available while beta updates install.#57309
- DesktopMake links in user messages, shell output, and Code Mode output clickable.#57211#57303
- DesktopMake Check for Updates always report its result.#57296
- DesktopReopen the last closed side-panel tab with ⇧⌘T and open a browser tab with ⌘T.#57269#57156
- DesktopKeep OpenCode keyboard shortcuts working in the browser pane.#56697#55240
- DesktopPreview image attachments supplied by file path.#57249
- DesktopApply configured code and UI fonts consistently.#57242
- DesktopKeep activity and busy indicators steady while switching sessions.#57196
- DesktopReserve ⇧⌘W for closing the window so ⌘W does not.#57150
- DesktopMake image preview transitions resize smoothly without clipping or blocking clicks.#56997#57324
- DesktopReturn focus to the prompt after keyboard model selection.
- DesktopKeep tables visible beneath sticky headers.#57050
- DesktopFit provider connection steps without shifting a dialog's top edge.#57006
- DesktopGive unavailable-server panels clear error styling.#57003
- DesktopKeep long Execute tool code contained and show successful Code Mode output.#56915
- DesktopFocus the most useful control when dialogs open, including Cancel in delete confirmations.#57453
- DesktopInstall Windows beta, stable, and nightly builds into separate directories.#56904
- DesktopKeep session tabs recoverable when their server becomes unreachable.#56248
- DesktopKeep the composer model's provider and session-model resolution consistent with the TUI.#56225
- DesktopReread open files without resetting their scroll position.#55899
- DesktopHide agent names when agents are disabled.#57525
- DesktopPolish sidebar, panel, composer, activity, question-dock, loading, and motion behavior across light and dark themes.#57449#58013#58577#57944#58052#58494#58073#58114
- DesktopPolish hover states, cursors, tooltips, focus rings, scrollbars, and transitions across desktop controls.#57653#57787#57304#58971#57221#57192#58575#58580
- SDKFix generated Promise client input types for TypeScript consumers.#58875
- SDKLet SDK clients discard inline tool-result file payloads to reduce memory use.#59101
- SDKAvoid unnecessary catalog refreshes for locations an SDK client has not loaded.#55237#59099
- SDKRestore running sessions created while an SDK client was disconnected.#53012
- SDKRelease omitted tool-image payloads from memory instead of retaining their base64 data.#58560
v1.18.31 v1.18.28 Use the desktop client ID during OpenCode account device authentication
Fixes
- DesktopIncrease the open-in app icon size for better visibility.
v1.18.26 v1.18.24