OpenCodeOpenCode

Changelog

Nouvelles mises à jour et améliorations pour OpenCode

Core

  • Fix `clangd` choosing `CMakeLists.txt` or `Makefile` as the project root in C and C++ workspaces.(@nonbanana)
  • Add permission prompts for GitLab Duo Workflow tool calls instead of auto-running them.(@vglafirov)
  • Hide unsupported variants for Big Pickle models.

TUI

  • Show an OpenCode Go subscribe prompt when free usage limits are reached.
  • Simplify provider labels in the model and provider pickers.

Desktop

  • Fix terminal connections in same-origin desktop and web app setups.(@OpeOginni)
  • Fix session review and change lists when diff data arrives in inconsistent shapes.

SDK

  • Fix the generated SDK and OpenAPI types for `/providers` and session shell responses.

Breaking Changes in SDK

    Core

    • Added OTLP observability export support.
    • Fixed failed web fetches leaving stale timeouts behind.
    • Improved `opencode login` transport error messages.
    • Retried Alibaba provider rate-limit errors instead of failing immediately.
    • Kept model variants scoped to the selected model.
    • Added full HTTP proxy support.
    • Fixed OpenRouter provider issues.
    • Aligned GitHub Copilot Anthropic reasoning levels and removed incorrect Qwen variants.
    • Reduced TypeScript LSP memory use by using the native project config.(@derekbar90)

    TUI

    • Added a keybinding option for "Switch model variant".(@ariane-emory)
    • Added PDF drag and drop for attachments.(@gitpush-gitpaid)
    • Added `opencode run --dangerously-skip-permissions` to auto-approve non-denied permission prompts.

    Desktop

    • Improved subagent sessions with clearer titles, navigation, and progress states.
    • Moved auto-accept permissions into Settings.
    • Showed full file names on attachment chips.

    Core

    • Cloudflare Workers AI and AI Gateway now prompt for missing account details and show clear setup errors when required Cloudflare variables are missing(@mchenco)

    TUI

    • Restored the default kitty keyboard handling on Windows terminals to avoid input issues from the workaround rollback

    Core

    • Support Azure model options on both chat and responses paths(@meruiden)
    • Expose session model and mode config options through ACP(@georgeharker)
    • Add a separating blank line before read tool file contents for clearer output
    • Fix output token totals when reasoning tokens are reported separately

    TUI

    • Default `Ctrl+Z` to undo on Windows instead of terminal suspend
    • Let you disable TUI mouse capture in config or with `OPENCODE_DISABLE_MOUSE`(@blackheaven)
    • Hide org switching when there is only one org to choose from
    • Label Console-managed providers and let you switch orgs from the provider UI

    Extensions

    • Fix plugin installs from npm aliases and git URLs, including Windows cache path issues

    Core

    • Prevent npm installs from failing when Arborist hits the compiled binary's `node-gyp` path

    Core

    • Restored git-backed review modes, including uncommitted and branch diffs.
    • Fixed revert chains so restoring an earlier message also restores the right snapshot state.(@natewill)
    • Added macOS managed preferences for MDM-enforced config.(@lennyvaknine43)
    • Fixed sessions getting stuck after tool calls with OpenAI-compatible providers.(@valenvivaldi)
    • Kept compaction summaries in the conversation's language.(@aaron-he-zhu)
    • Added Venice AI as a provider.(@dpuyosa)
    • Respected model-specific `limit.input` overrides.(@ykswang)

    TUI

    • Kept the prompt cursor with dialogs instead of refocusing the background prompt.
    • Added a one-time confirmation before sharing a session for the first time.
    • Applied scroll settings consistently across TUI scroll views.
    • Kept text selections intact during global key handling.
    • Fell back to the first available agent if the last-used agent is unavailable.

    Desktop

    • Added file mentions in review comments.
    • Restored prompt focus after closing agent, model, and variant pickers.
    • Added keyboard navigation and shortcuts to the question dock.
    • Hid model controls in shell mode.
    • Stopped the todo dock from auto-scrolling while tasks update.

    SDK

    • Fixed JS SDK server and TUI launch and shutdown on Windows.
    • Fixed object-defined `Tool.define()` tools from wrapping `execute` multiple times.(@jpcarranza94)

    Extensions

    • Added support for theme-only plugin packages.

    Core

    • Enabled prompt caching and cache token tracking for Google Vertex Anthropic.(@major)
    • Fixed Azure provider options being forwarded correctly after the AI SDK v6 migration.

    TUI

    • Fixed plugin `replace` slots mounting content more than once.

    Core

    TUI

    • Improve TUI terminal output passthrough so external command output renders more reliably.

    Extensions

    • Skip plugins that do not expose a matching server or TUI entrypoint, warn instead of failing, and apply default options from package exports on install.
    • Pin explicit plugin versions during install and block package install scripts from running.

    Core

    • Subagent tool calls stay clickable while they are pending.
    • Improved storage migration reliability so malformed legacy records or failed migrations do not corrupt upgraded state.

    TUI

    • Improved muted text contrast in the Catppuccin themes.

    Core

    • Fixed plugin entrypoint resolution for paths without leading dot

    Core

    • Added first-class PowerShell support on Windows
    • Plugin installs now preserve JSONC comments in configuration files
    • Fixed `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` not being respected for project-level CLAUDE.md

    TUI

    • Improved variant modal behavior to be less intrusive
    • Added theme colors for dialog textarea placeholders

    TUI

    • PR #19917: Fixed variant dialog search so typing now properly filters the list of variants

    Desktop

      Core

      • PR #19758: Fixed token usage double-counting for Anthropic and Amazon Bedrock providers that caused inflated token counts in session metrics

      Core

      • Fix plugin hooks to properly handle async operations
      • Adjust GPT prompt to be more minimal and fix file reference annoyances

      Core

      • Add prompt slot feature
      • Update opencode-gitlab-auth to 2.0.1(@vglafirov)
      • Refactored session processor to use effect-based architecture
      • Use AppFileSystem instead of raw Filesystem for better abstraction
      • Upgrade OpenTUI to version 0.1.91
      • Adjust bash tool description to increase cache hit rates between projects
      • Update Effect to version 4.0.0-beta.42
      • Refactor session compaction service to use Effect
      • Add single target plugin entrypoints
      • Use ChildProcessSpawner instead of Process.spawn for formatting
      • Move more responsibility to workspace routing
      • Refactor Session service to use Effect-based architecture
      • Add support for AI SDK v6
      • Add additional overflow error patterns to error handling
      • Fix flaky plugin tests by removing mock.module which is not supported in Bun
      • Split out instance and route through workspaces
      • Effectify Plugin service internals
      • Effectify Skill service internals
      • Add TUI plugins support
      • Refactor tool registry to yield Config and Plugin services using Effect.forEach
      • Ignore generated models snapshot files
      • Replace async git() with ChildProcessSpawner in VCS module
      • Yield services instead of promise facades in Effect refactor
      • Fixed web UI bundle build on Windows
      • Improve app startup performance
      • Close MCP transport on failed or timed-out connections
      • Use cachedInvalidateWithTTL for config and bump Effect to beta.37
      • Refactor Config service to use Effect
      • Remove workspace server and WorkspaceContext, improve routing architecture
      • Add GPT prompt so non-Codex GPT models have their own system prompt modeled after Codex CLI
      • Refactor LSP service with InstanceState using Effect

      TUI

      • Use theme color for prompt placeholder
      • Add dialog variant menu and improve subagent functionality
      • Open dialog for model variant selection instead of cycling
      • Check KV theme before falling back to default theme
      • Add top spacing to session view and remove obsolete documentation prompt
      • Restore subagent footer and fix style guide violations
      • Add model variant selection dialog
      • Remove variant cycle display from footer
      • Move session context into prompt footer

      Desktop

      • Improved app startup efficiency
      • Use Azure Artifact Signing for Windows releases
      • Default file tree to closed with minimum width
      • Resize layout viewport when mobile keyboard appears(@BYK)
      • Persist queued followups across project switches
      • Reduce markdown jank while responses stream in UI
      • Remove fork session button from app
      • Default shell tool to collapsed state
      • Don't bundle fonts in app

      TUI

      • Bypass local SSE event streaming in worker for improved performance (#19183)
      • Fix image paste support on Windows Terminal 1.25+ with kitty keyboard enabled (#17674)

      Desktop

      • Embed WebUI directly in the binary with configurable proxy flags (#19299)
      • Fix agent normalization in desktop app (#19169)
      • Fix project switch flickering when using keybinds by pre-warming globalSync state (#19088)
      • Move message navigation from cmd+arrow to cmd+opt+[ / cmd+opt+] to preserve native cursor movement (#18728)
      • Add createDirectory option to directory picker in Electron app (#19071)
      • Remove `.json` extension from electron-store for seamless Tauri to Electron migration (#19082)

      Core

      • Initial implementation of event-sourced syncing system for session data (#17814)
      • Fix enterprise URL not being set properly during authentication flow (#19212)
      • Classify ZlibError from Bun fetch as retryable instead of unknown error (#19104)
      • Skip snapshotting files larger than 2MB to improve performance (#19043)
      • Respect agent permission configuration for todowrite tool (#19125)
      • Fix DWS workflow tools being silently cancelled due to missing tool approval support (#19185)
      • Fix MCP servers disappearing after transient errors and improve OAuth handling (#19042)

      Misc

      • Revert git-backed review modes to restore compatibility with older CLI builds (#19295)

      TUI

      • Added heap snapshot functionality allowing users to capture memory snapshots of both TUI and server processes via the "Write heap snapshot" command. Snapshots are saved to `tui.heapsnapshot` and `server.heapsnapshot` files.

      Features

      • Added Poe as a built-in authentication provider with OAuth and API key support (#18477)
      • Enabled token caching for custom Amazon Bedrock providers (#18959)
      • Added syntax highlighting support for Kotlin, HCL, Lua, and TOML files (#18198)
      • Added manual lock/unlock for theme mode (#18905)

      Fixes

      • Fixed session timeline jumping when scrolling (#18993)
      • Fixed GitLab Duo Workflow models showing incorrect identity (#18928)
      • Fixed theme mode switching between dark and light modes (#18851)
      • Fixed console account URL handling for better navigation (#18809)
      • Fixed session busy state handling for better responsiveness (#18758)
      • Fixed stale session hover preview (#18727)
      • Fixed project hover state (#18732)
      • Fixed prompt history navigation (#18775)
      • Fixed filtering of non-renderable part types (#18926)
      • Fixed ProviderIcon optional chaining issue (#18927)
      • Fixed process cleanup when closing terminal tabs (#16057)
      • Fixed batching of multi-file prompt attachments via picker, paste, and drag-drop (#18722)
      • Fixed patch tool counts visibility when displaying files with long names (#18678)
      • Fixed project avatar popover flicker when switching projects via sidebar (#18660)

      Improvements

      • Improved startup efficiency (#18985)
      • Updated Feishu community links for Chinese (zh) locales (#18975)
      • Improved file tree panel to maintain its minimum width when resized (#18777)
      • Improved desktop app stability with more robust sidecar process cleanup (#18742)
      • Changed command palette shortcut to `Cmd+K` (with `Cmd+P` still working as fallback) (#18731)
      • Restored keyboard project switching in open sidebar with proper Enter key activation (#18682)

      Important

      • Removed anthropic oauth plugin, see: https://github.com/anomalyco/opencode/pull/18186/changes

      New Features

      • **GitLab Agent Platform** (#18014): GitLab Agent Platform is now fully supported with automatic discovery of workflow models from your GitLab instance. Workflow models can use opencode's local tools (file read/write, shell, etc.) over WebSocket.
      • **Git-backed Session Review** (#17961): Added git-backed session review modes, enabling users to review uncommitted changes and branch diffs directly within opencode. Git changes are now the default review source with the desktop review tree staying synchronized with your selected source.
      • **Multistep Authentication** (#18103, #18035): TUI and Desktop both support multistep authentication flows which means providers like Github Copilot for Enterprise deployments now work as intended
      • **Interactive Update Flow** (#18662): Major and minor updates now show a confirmation dialog before upgrading, allowing you to review changes before updating. You can also skip specific versions if you prefer to stay on your current release.
      • **Node.js Support** (#18324): opencode can now run on Node.js in addition to Bun, with a dedicated Node.js entry point and build script that bundles the server with database migrations.

      Desktop App Improvements

      • **Project Navigation** (#18502): Navigate between projects faster using keyboard shortcuts (cmd+option+arrow keys).
      • **File Uploads** (#18403): Desktop app now supports file type filters and multiple file selection when uploading files.
      • **Workspace Switching** (#18207): Fixed visual flickering when switching between workspaces or projects - the interface now transitions smoothly without showing loading spinners during navigation.
      • **Sidebar Resize** (#18647): Fixed issue where sidebar would automatically close when being resized to minimum width. The sidebar now clamps at minimum width instead of closing.
      • **Loading States** (#18501): Improved loading state management across the app for smoother, more consistent feedback during async operations.
      • **Console Login** (#18281): Fixed console device login to properly handle pending authorization states, ensuring the login process continues polling instead of failing while waiting for approval.

      Terminal & Editor

      • **Terminal Rename** (#18263): Fixed terminal renaming from the context menu, which previously failed due to dropdown focus conflicts.
      • **Terminal Error Recovery** (#17591): Fixed an issue where terminals would become unresponsive when the server returned a "not found" error for terminal sessions. Terminals now properly reinitialize and remain interactive.
      • **Paste Operations** (#18079): Paste operations now preserve raw byte data, enabling proper handling of binary content and special characters when pasting into the terminal.
      • **Prevent Duplicate Submits** (#18148): Fixed issue where rapidly pressing Enter could submit prompts multiple times. Now ignores repeated Enter submits.

      Providers & Models

      • **xAI Responses API** (#18175): Improved xAI reasoning models performance in long multi-turn conversations by switching to the responses API with encrypted content support.
      • **GPT Model List** (#18101): Updated the GPT subscription model list with the latest available models.
      • **Vertex AI Fix** (#18283): Fixed Vertex AI errors with non-thinking models (like gemini-2.0-flash) by only applying thinking configuration to models that support reasoning capabilities.
      • **vLLM Context Overflow** (#17763): Improved error detection for vLLM context overflow errors, providing clearer feedback when context limits are exceeded during inference.
      • **Cost Chunk Format** (#16817): Fixed streaming error where cost data was sent in upstream provider format instead of client-requested format, preventing validation errors when mixing provider formats.

      Review & Collaboration

      • **File Attachments** (#17815): Fixed file and image attachments being silently lost when reusing or forking a previous prompt with attachments.
      • **Snapshot Revert** (#18093): Fixed snapshot revert issues where overlapping file changes could apply the wrong patch hash, and resolved a sorting bug in hidden file ordering.

      Authentication & Account

      • **Stale Credentials** (#18426): Fixed stale server URL and email on re-login. Previously, logging into a different server could fail due to cached credentials from a previous environment.
      • **Codex Access** (#18337): OAuth plan users can now access codex instructions freely without the previous whitelisting restrictions.

      UI/UX Improvements

      • **Theme Improvements** (#17958): Improved UI contrast and reduced brightness of hover/active elements for better readability and reduced eye strain.
      • **System Prompt** (#18140): Cleaner AI responses with a streamlined fallback system prompt that removes unnecessary boilerplate text.
      • **Agent & Skill Ordering** (#18261): More consistent AI responses with improved prompt caching by stabilizing the order of agents and skills in system prompts.

      Bug Fixes

      • **Remote Server Switching** (#17214): Fixed issues when switching between remote servers that caused stale project data, broken terminal spawning, and sidebar showing incorrect projects.
      • **Windows Commands** (#18010): Fixed Windows command execution for shims (.cmd/.bat files) to resolve failures during upgrades, uninstalls, IDE installs, and LSP launches.
      • **Tool Discovery** (#18320): Fixed tool discovery for npm-installed packages by including the cache bin directory in PATH lookups, ensuring locally installed tools are properly found.
      • **Error Messages** (#18165): Tool and session error messages now display in clean, human-readable format instead of showing confusing technical error strings.
      • **Chunk Timeout** (#18264): Disabled chunk timeout by default to prevent issues across various use cases; users can still enable it in their configuration if needed.
      • **Event Ordering** (#18259): Events in real-time streams now process sequentially in order, ensuring consistent and predictable event display instead of potentially out-of-order delivery.
      • **Desktop Stability** (#18300): Improved desktop stability with more reliable workspace and session routing, fixing sidebar selection mismatches and race conditions when switching projects.
      ©2026 AnomalyMarqueConfidentialitéConditions