Changelog
New updates and improvements to OpenCode
v2.2.6 Added Scroll on send in Settings
Added Scroll on send in Settings. Choose Keep (
See all highlights in v2.2.6session.submit_scroll: "keep") to retain your reading position after submitting a prompt.#61460Improvements
- SDKAdded
client.experimental.job.list()and its Effect equivalent for listing background shell, subagent, and image jobs, with session, descendant, kind, and status filters.#60698 - SDKServer embedders can provide a custom
fetchimplementation for OpenCode HTTP, model, web, and remote MCP traffic.#61582
Fixes 10
- TerminalAllow Ctrl+Z to suspend OpenCode while a form or dialog is open.#62118
- TerminalKeep focus on an open dialog when a question arrives and contain plugin dialogs that throw during rendering.#60365#62110
- TerminalShow an error when Ctrl+V cannot read the clipboard. Thanks @jimmyallinai.#61094
- TerminalPrevent session titles containing newlines from crashing the TUI. Thanks @vishalshekhar.#57523
- TerminalImproved message spacing and prevented older history from flashing while scrolling.#62104#59236
- TerminalJump to the first or last message with Home, End, and Ctrl+G in subagent sessions. Thanks @ricky9408.#60817
- TerminalKeypad Home, End, Page Up, and Page Down now navigate the transcript like the main keys in terminals that use the kitty keyboard protocol. Thanks @argszero.#59770
- Terminal
opencode mininow uses the agent colors from your config. Thanks @ferdinandyb.#62067 - TerminalReturn to the
/mcplist after signing in to an MCP server, with that server still selected. Thanks @Tarquinen.#62245 - TerminalAllow favoriting models with Ctrl+F in
/modelswhen they come from a provider declared in config or an add-on instead of a saved connection. Thanks @Tarquinen.#62244
- SDKAdded
v2.2.5 The connect menu no longer lists MCP servers
The connect menu no longer lists MCP servers, which are managed in their own place.#60675
See all highlights in v2.2.5v2.2.4 Publish Interactive Artifacts
Enable
See all highlights in v2.2.4"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.#60351Improvements
- SDKExtended
client.experimental.persistentPty.updateto rename terminals or clear a user title, and exposeduserTitlepluspersistent-pty.updatedevents.#60329
Fixes
- SDKExtended
v2.2.3 Added lazy loading for stored image references when
experimental.media_blobis enabledAdded lazy loading for stored image references when
See all highlights in v2.2.3experimental.media_blobis enabled. Images are downloaded only for previews, while undo, revert, fork, and prompt recall restore referenced attachments safely.#60116Breaking changes
TUI plugins require OpenTUI 0.8
#60385@opencode/pluginnow requires@opentui/coreand@opentui/solid0.8.0 or later. In OpenTUI 0.8, a ScrollBox'swrapper,viewport,content, and scrollbars are facade objects instead of renderables, and a customRenderContextmust implementclockandonAnimationTick. See the OpenTUI 0.8.0 release notes.Improvements
- TerminalAdded a distinct marker for the selected composer suggestion in the new designs.#60393
- 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
Fixes 8
- TerminalFixed PHP syntax highlighting for code blocks without an opening
<?phptag.#60359 - TerminalPreserved
#in file-search paths unless it introduces a valid line range.#60336 - TerminalKept the configured default cursor style after config reloads.#60302
- TerminalMatched the search cursor to the highlighted row when a selection dialog has no query.#60310
- 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
v2.2.2 Exposed
See all highlights in v2.2.2SessionInfo.time.busyfor the latest execution’s start timeImprovements
- SDKAdded
ifanduntilinputs forclient.experimental.schedule.create, plus schedule check results and output fields.#60137 - SDKAdded optional source metadata to prompt file attachments.
Fixes
- TerminalPreserved captured attachments and their original source paths.#60222@OpeOginni
- TerminalPrevented middle-truncated paths from overflowing at very narrow terminal widths.
- TerminalImproved Go usage-limit messages with the reset time and account page link.
- TerminalCorrectly typed and displayed Go and ChatGPT usage-limit errors.
- SDKAdded
v2.2.1 Keep Working Toward a Goal
Run
See all highlights in v2.2.1/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.#59437Improvements
- 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
Fixes
- TerminalShow execution failures that occur before the first model step.#60079
- TerminalKeep the activity spinner visible while a continued subagent runs.#59950
- TerminalSend pasted image and PDF paths correctly when connected to a local server.#59833
- TerminalImprove spacing in an empty
/usagedialog.#59918@Tarquinen
- SDKAdd
v2.2.0 Create, install and share Desktop plugins (experimental)
See all highlights in v2.2.0Breaking changes
TUI plugins require OpenTUI 0.7
#59295@opencode/pluginnow requires@opentui/coreand@opentui/solid0.7.0, up from 0.6.8 or later. Plugins that depend on OpenTUI 0.6 fail to install until they upgrade. In OpenTUI 0.7, custom renderables read their hooks from their class at construction: assignrenderBefore,renderAfter, andonLifecyclePassin the constructor instead of as class fields, callrefreshHooks()after adding a hook by reflection, and replacedefineNativeIntegration()with astatic nativeIntegrationdeclaration. See the OpenTUI 0.7.0 release notes.Improvements
- TerminalReduce CPU use while animated session-tab pulses are visible.#59235
- TerminalList OpenCode Console before OpenCode Go in the integration picker.#59107
- TerminalAdd
/usage, model-picker, prompt, sidebar, warning, and error details for OpenCode Console usage limits.#58731 - TerminalMake CLI service registration more reliable when concurrent processes update its files.#59105
Fixes 15
- TerminalReturn
opencode run --format jsonserver connection errors as JSON.#59366@andreivince - TerminalPreserve pasted prompt text when copying it back out.#59209
- TerminalReliably update the background service on Windows when its files are briefly locked.#59105
- TerminalKeep the background service state directory out of tool shells and identify processes blocking its port.#58815
- TerminalRefresh Git branch details after switching branches.#58982
- TerminalKeep the TUI running when a plugin slot or route renders bare text.#58144@anmol0b@Tarquinen
- TerminalAccept
--serverand--standaloneanywhere in supported CLI commands.#58505 - TerminalRelease closed and background session transcripts to prevent memory growth.#58434#57025
- TerminalConnect remote access tunnels through HTTP proxies.#58464
- TerminalKeep development builds on a separate server, database, and port from released builds.#58331
- 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.19.0 Use
/updateto install OpenCode updates or upgrade to OpenCode 2Use
/updateto install OpenCode updates or upgrade to OpenCode 2; updates are no longer installed automatically.v1.18.31 v1.18.23