Changelog
New updates and improvements to OpenCode
v2.2.7
See all highlights in v2.2.7session.generatereturnstokensandcostalong withtextBreaking changes
SDK: fewer endpoints wait for plugins to load
On a Location that is still loading plugins,
#62796#63040agent.listreturns the agents loaded so far, andintegration.list,usage.limits,vcs.init,rpc.callandartifact.*no longer wait up to 5 seconds. Entries and actions that a plugin provides appear when it finishes loading, so refresh on the matching*.updatedevent. Model, provider,generate.*,voice.*andwebsearch.queryendpoints still wait.Improvements
- SDK
credential.updatedincludes theintegrationIDandcredentialIDof the login that changed.#62762 - SDKPredicate questions in
client.experimental.generate.decisionsaccept optionalcriteria: { true?, false? }.#62819 - ExtensionsACP clients can redirect a running turn with the
_session/steeringextension, advertised as_meta.steering.supportedininitialize.#54394@smagnuso
- SDK
v2.2.6 GUI Plugin Themes and New Slots
GUI plugins can now add color themes, render or add actions to code blocks, and use native settings and menu components.#61485#61533#61527#61509
See all highlights in v2.2.6Improvements
- 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
- SDKAdded
v2.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
- 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.#60116Improvements
- 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
- 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
- SDKPreserved partial
v2.2.2 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
See all highlights in v2.2.2Improvements
- 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
- ExtensionsCorrected visible flowchart edges connected through Merman subgraphs.
- 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
- ExtensionsLet Code Mode extension globals return Effects and declare required services.#59948
- SDKAdd
v2.2.0 Create, install and share Desktop plugins (experimental)
See all highlights in v2.2.0Fixes
- 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.17.12 Add a live event subscription stream
Improvements
- SDKAdd SDK access to active sessions.
- SDKRestore session runtime operations such as event streaming, interrupts, and message lookup.
- SDKAdd paged durable session history.
- SDKAdd session permission request create and fetch endpoints.
Fixes
- SDKPreserve
V2Eventnames in SSE streams. - SDKWake embedded session execution after new prompts.
- SDKImprove V2 runtime tool results and avoid duplicate model switch events.
- SDKResolve MIME types for prompt attachments sent by URI.
v1.17.10 Exposed provider integration IDs in the SDK
Improvements
- ExtensionsAdded namespaced plugin hook APIs.
- ExtensionsAdded the V2 plugin API for Effect and Promise plugins.