Skip to content
  1. v2.2.3

    Use Claude Code in OpenCode

    Install Claude Code, run claude auth login, then select Claude Agent in /connect to use your Claude Code login and models.#58782

    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

    Breaking changes

    TUI plugins require OpenTUI 0.8

    @opencode/plugin now requires @opentui/core and @opentui/solid 0.8.0 or later. In OpenTUI 0.8, a ScrollBox's wrapper, viewport, content, and scrollbars are facade objects instead of renderables, and a custom RenderContext must implement clock and onAnimationTick. See the OpenTUI 0.8.0 release notes.

    #60385

    Managed policy: integration.use covers integrations only

    integration.use now controls which integration accounts can be used, and the new mcp.use, skill.use, and plugin.use actions control MCP servers, skills, and plugins. Rules with the old mcp:, skill:, and plugin: resource prefixes are converted automatically, but a bare integration.use rule no longer applies to MCP servers, skills, or plugins.

    #60315

    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_blob is 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 PageUp and PageDown timeline 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 LLMResponse output on AIError.partial when 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, and user options 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 execute call rows.#60480
    • TerminalFixed PHP syntax highlighting for code blocks without an opening <?php tag.#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 ⌘W side-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 execute handler can throw available to the AI client.#60431
    • SDKContinued polling queued media generations when providers return unknown intermediate statuses.#59988
    • SDKStopped sending an incompatible filename alongside file_url on OpenAI Responses requests.#60382
    • ExtensionsPreserved null values in Code Mode text encoding.#57639@xiajiahang
    • ExtensionsTidied nested Extensions menus.#59468