OpenCode v2.2.3 新增內建 Claude Agent provider:安裝 Claude Code 並執行 claude auth login 後,在 /connect 中選擇 Claude Agent,即可複用 Claude Code 的登入與模型。桌面端長會話的流式回覆與渲染開銷大幅降低,並修復側欄標籤失效、重複彈出「Session not found」以及通過 HTTP 開啟檔案的問題。
官方在開源客戶端裡接入 Claude Code 登入,多了一條用既有 Claude 帳號驅動 coding agent 的路徑;同時給出 OpenTUI 0.8 與策略配置的破壞性變更,升級前值得核對。
Highlights
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 )
Core
Improvements
Added the built-in Claude Agent provider. Install Claude Code, run claude auth login , and select Claude Agent in /connect ; OPENCODE_CLAUDE_PATH can override the Claude executable. Thanks @Tarquinen . ( #58782 )
Added Code Mode JavaScript checks to experimental schedules, including statically authorized tool calls, persistent state, and custom wake messages. ( #60140 )
Added separate managed-policy actions for connecting to integrations and using integrations, MCP servers, skills, and plugins. ( #60315 )
Bug fixes
Preserved plugin-provided model variants and delayed dynamic provider fallback until external SDK hooks have run. ( #60097 , #60380 )
Preserved permission reasons and feedback in MCP failures, and made Code Mode failures match direct tool-call failures. ( #60102 , #60109 )
Fixed invalid Code Mode schedule checks so creation fails immediately and existing invalid checks pause without repeated execution. ( #60349 )
Removed a session’s persistent terminals when the session is deleted. ( #60322 )
Kept nested tool progress from replacing the parent execute call rows. ( #60480 )
TUI
Improvements
Added 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 )
Added a distinct marker for the selected composer suggestion in the new designs. ( #60393 )
Bug fixes
Fixed PHP syntax highlighting for code blocks without an opening <?php tag. ( #60359 )
Preserved # in file-search paths unless it introduces a valid line range. ( #60336 )
Kept the configured default cursor style after config reloads. ( #60302 )
Matched the search cursor to the highlighted row when a selection dialog has no query. ( #60310 )
Desktop
Improvements
Added a Desktop spellcheck toggle under Settings → General and system-language dictionary selection on Windows and Linux. ( #59129 )
Added PageUp and PageDown timeline paging from the composer without moving the draft cursor or focus. ( #59426 )
Added independently configurable question notifications and sounds under Settings → Notifications → Questions . Thanks @YuriNek0 . ( #60358 )
Added separate project and worktree actions to the new-session control. ( #60486 )
Added one-click version copying in Settings → About . ( #52356 )
Grouped added projects in workspace settings. ( #60221 )
Made question-answer text selectable. ( #60372 )
Adapted the session header to narrow timeline widths. ( #59512 )
Bug fixes
Side-panel tabs close again and New tab launchers respond to clicks, fixing a 2.2.2 regression. ( #60430 , #60436 )
Open file in the side panel works again in the web app over HTTP. ( #60462 )
Kept question options and submit controls reachable on mobile. ( #60335 )
Preserved simultaneous request notifications and inbox scroll position when opening sessions. ( #60378 , #60356 )
Fixed consecutive dropped files so every file mention is inserted into the composer. ( #60463 )
Kept the current @ and command-menu selection stable while results update under a stationary pointer. ( #59434 , #60368 )
Fixed ⌘W side-panel closing and focus restoration when no closable tabs remain. ( #59002 , #60435 )
Kept the mobile session drawer open while a session loads. ( #59427 )
Restored maximized windows on their saved display and retained renderer permissions across shared-session windows. ( #60482 , #60458 )
Fixed timeline growth, zoom-end scrolling, highlighting, and DOM-observer performance issues in long sessions. ( #60489 , #60481 , #60488 , #60513 , #60521 )
Kept models with unknown release dates visible. Thanks @joe-ieta . ( #60496 )
Fixed reasoning-capability detection for models that expose reasoning through variants or compatibility metadata. ( #60457 )
Evicted deleted sessions after a 404 instead of retrying or showing repeated errors. ( #60459 )
Fixed the macOS application icon and added the required folder-access description to the app bundle. ( #60020 , #60503 )
SDK
Improvements
Preserved partial LLMResponse output on AIError.partial when generation, object generation, or a tool loop fails. ( #60477 )
Unified Effect and Promise tool declarations around tool(...) , with optional output schemas and executable or declaration-only tools. ( #60407 )
Added typed OpenRouter debug , models , plugins , provider , and user options to the Responses route. ( #60044 )
Added withMediaRefs , mediaHashFromUri , and MediaRequestOptions to the Promise client for experimental stored-media references. ( #60116 )
Bug fixes
Matched the Promise AI client more closely to the Effect API and accepted typed tools in loops. ( #60465 , #60390 )
Kept tools whose execute handler can throw available to the AI client. ( #60431 )
Continued polling queued media generations when providers return unknown intermediate statuses. ( #59988 )
Stopped sending an incompatible filename alongside file_url on OpenAI Responses requests. ( #60382 )
Extensions
Improvements
Added persistent-terminal renaming to the process daemon, including capability discovery and user titles that override shell-provided titles until cleared. ( #60324 )
Bug fixes
Preserved null values in Code Mode text encoding. Thanks @xiajiahang . ( #57639 )
Tidied nested Extensions menus. ( #59468 )
Claude Code v2.1.307 新增 /claude-api api-version,可把 Claude API 程式碼遷移到 2026-10-21 版本;同時新增 claude_code.safety_event OpenTelemetry 事件,記錄每次工具呼叫被權限規則、自動模式、安全檢查、hook 或沙箱攔截、詢問與退回的情況。
OpenCode 發布 2.2.0 版,桌面端可建立、安裝和共享外掛(實驗性),桌面應用介面也做了重新設計。Sign in with ChatGPT 新增 GPT-6.1 Terra 與 GPT-6.1 Terra Fast 兩個模型,外掛側新增實驗性影像與決策生成 API。破壞性變更包括:@opencode/ai 包根匯出改為 Promise API,Effect API 移至 @opencode/ai/effect;OpenCode GitHub Action 不再發布;