Changelog
New updates and improvements to OpenCode
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
v2.2.4 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.#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
experimental.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
SessionInfo.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
/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)
Breaking 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 v1.18.13