v2.2.3 Use Claude Code in OpenCode
Install Claude Code, run
claude auth login, then select Claude Agent in/connectto use your Claude Code login and models.#58782Faster 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
Breaking 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.Managed policy:
integration.usecovers integrations only
#60315integration.usenow controls which integration accounts can be used, and the newmcp.use,skill.use, andplugin.useactions control MCP servers, skills, and plugins. Rules with the oldmcp:,skill:, andplugin:resource prefixes are converted automatically, but a bareintegration.userule no longer applies to MCP servers, skills, or plugins.Improvements
- CoreAdded Code Mode JavaScript checks to experimental schedules, including statically authorized tool calls, persistent state, and custom wake messages.#60140
- CoreAdded separate managed-policy actions for connecting to integrations and using integrations, MCP servers, skills, and plugins.#60315
- 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 - TerminalAdded a distinct marker for the selected composer suggestion in the new designs.#60393
- 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
- CorePreserved plugin-provided model variants and delayed dynamic provider fallback until external SDK hooks have run.#60097#60380
- CorePreserved permission reasons and feedback in MCP failures, and made Code Mode failures match direct tool-call failures.#60102#60109
- CoreFixed invalid Code Mode schedule checks so creation fails immediately and existing invalid checks pause without repeated execution.#60349
- CoreRemoved a session’s persistent terminals when the session is deleted.#60322
- CoreKept nested tool progress from replacing the parent
executecall rows.#60480 - 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
- 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