< cd ..

OpenCode

~/sst/opencode

Minimal, fast AI coding CLI with a beautiful TUI. Multi-provider support, MCP servers, and headless mode for scripting.

latest

v1.14.30

total

30

stable

30

first tracked

Apr 4, 2026

updated

9h ago

last checked: 9h ago Tier 2 refresh
#ai #cli #minimal
●●● clwatch

Check if your agent is current:

$ clwatch diff opencode
$ clwatch refresh opencode

learn more about clwatch →

●●● quick start // get running in 60s

install

$ npm install -g opencode-ai

first command

$ opencode

/changelog

v1.14.30 [Apr 29, 2026] details → github →

Core

  • Fixed missing sessions in Desktop caused by path mismatches, including recovery for existing stored data.
  • Fixed Azure Responses defaults to avoid reasoning item ordering errors.
  • Improved DeepSeek compatibility with providers that vary model naming.
  • Added Mistral Medium 3.5 with reasoning support. (@rubdos)
  • Made instruction precedence more predictable by applying global instructions before project and skill instructions.
  • Reconnected editor context when switching to a session in another directory.
  • Fixed forked sessions so compacted history stays intact. (@spark4862)
  • Reduced memory growth in long-running bash tool usage.
  • Sessions now filter to the current path by default, with a setting to show the whole project.
  • Kept GitHub Copilot model variants in sync with the latest API capabilities.
  • Fixed Zed selections with UTF-8 text so editor context uses the right ranges.

TUI

  • Added a quick toggle for paste summaries.
  • Invalid custom themes no longer crash the TUI on startup.
Thank you to 3 community contributors:
  • @Vect0rM:
  • docs: add Atomic Chat provider section (#23069)
  • @spark4862:
  • fix(session): remap compaction tailstartid when forking (#24898)
  • @rubdos:
  • feat: add Mistral Medium 3.5 with reasoning support (#24996)
v1.14.29 [Apr 28, 2026] details → github →

Core

  • Sessions now keep a relative workspace path.
  • Moonshot and Kimi tool schemas are sanitized to avoid rejected tool calls.
  • MCP OAuth errors now match the native API more closely.
  • Provider OAuth authorize errors now match the native API more closely.
  • Shell cancellations now finish cleanly instead of leaving aborted commands in a bad state.
  • Creating a session over HTTP now works with an empty request body.
  • Workspace HTTP API routes are now mounted through the bridge.
  • Tool streaming now defaults off for non-Anthropic models when using the Anthropic SDK.
  • DeepSeek OpenAI-compatible setups now keep reasoning_content interleaved by default.
  • The experimental LSP tool now forwards the workspace symbol query.
  • Google Vertex now defaults tool call streaming off.

TUI

  • Zed context polling stays responsive.
  • Pressing Enter in dialogs now triggers the dialog instead of leaking through. (@CasualDeveloper)
  • File context is clearer, can be turned off, and clears after sending.
  • opencode agent create now writes a valid permissions.deny config. (@21pounder)

Desktop

  • Per-workspace icon overrides now stay applied for subdirectories in the same repo.
  • Sync state loading is more reliable for MCP, LSP, and workspace refreshes.
Thank you to 3 community contributors:
  • @21pounder:
  • fix(opencode): agent create generates permissions field with deny ins… (#24482)
  • @SeashoreShi:
  • docs: fix duplicated word in CLI env var table (#24614)
  • @CasualDeveloper:
  • fix(tui): consume Enter in dialog useKeyboard handlers (#23390)
v1.14.28 [Apr 27, 2026] details → github →

Core

  • Fixed issue with opencode upgrade failing for bun installs unless in a directory with package.json
v1.14.27 [Apr 27, 2026] details → github →

Core

  • Added a configurable default shell for terminals and agent shell commands, with a Desktop setting to manage it.
  • Reduced extra terminal noise while creating TUI workspaces.

TUI

  • Hid provider connection checks until onboarding is complete.
  • Restored the default toast timeout when no custom duration is provided. (@OpeOginni)
Thank you to 1 community contributor:
  • @OpeOginni:
  • fix(tui): update toast duration handling to use default value (#23395)
v1.14.26 [Apr 26, 2026] details → github →

Core

  • Fixed config parsing to preserve permission rule order.
  • Fixed OpenRouter DeepSeek reasoning output handling.
  • Sent an opencode/<version> User-Agent header with HTTP requests.

TUI

  • Added Zed editor selection support for editor context.
  • Show a /connect tip when no models are configured.
  • Fixed editor lock detection to ignore locks from unrelated workspaces. (@jjjermiah)
Thank you to 2 community contributors:
  • @ariane-emory:
  • fix: correct typo in comment (#24420)
  • @jjjermiah:
  • fix(editor): reject lock files with no workspace match for cwd (#24323)
v1.14.25 [Apr 25, 2026] details → github →

Core

  • Fixed permission config preserving rule order and exposes full IntelliSense for tool permission keys
  • LSP permission prompts now include request details like the operation, file, and cursor position
  • Shell commands keep the correct working directory after login shell startup files run
  • Added Roslyn LSP support for Razor, .cshtml, and C# script files
  • GPT-5.5 with OpenAI OAuth now uses the correct context limits to avoid compaction issues
Thank you to 2 community contributors:
  • @altendky:
  • fix(opencode): clarify git amend condition to require verifying commit landed (#19937)
  • @b0o:
  • fix(build): add prettier to devDependencies (#23255)
v1.14.24 [Apr 24, 2026] details → github →

Core

  • Fixed DeepSeek assistant messages so reasoning is always included, avoiding provider formatting failures.
  • Fixed inherited model configs so interleaved-capability models keep working when that field falls back to an existing model. (@07akioni)
  • Added an experimental HTTP API endpoint for MCP server status.
  • Added experimental HTTP API endpoints to list files, read file contents, and check project file status.
Thank you to 1 community contributor:
  • @07akioni:
  • fix: use existingModel as fallback for interleaved field (#24172)
v1.14.23 [Apr 24, 2026] details → github →

Core

  • Respect custom .npmrc registry settings when checking package versions and updates.

TUI

  • Render all non-synthetic text in a user message instead of showing only the first text block.
v1.14.22 [Apr 23, 2026] details → github →

Core

  • Respect .npmrc settings during npm installs.
  • Let projects store a custom icon override so the chosen icon persists correctly.

Desktop

  • Fix session views and nested session items not getting stuck with stale state when switching between sessions.
v1.14.21 [Apr 23, 2026] details → github →

Core

  • Support pull diagnostics from LSP servers that use them, including C# and Kotlin.
  • Fix project detection and caching for bare Git repos and worktrees. (@StevenTCramer)
  • Improve session compaction so long threads keep more useful context when older history is summarized.
  • Preserve UTF-8 BOMs when files are edited, patched, or rewritten through tools.
  • Use Roslyn Language Server for C# support instead of csharp-ls. (@jmbryan4)
  • Add the high reasoning variant for supported Mistral Small models. (@rubdos)
  • Hide unsupported variants for Kimi models that do not expose them.

TUI

  • Fail fast when opening an invalid or missing session instead of starting the TUI in a broken state.
  • Skip upgrade checks when auto-update is disabled. (@rahuliyer95)

Desktop

  • Keep project avatar previews consistent between the sidebar and edit dialog.
  • Improve project icon overrides so uploaded icons and color fallbacks behave correctly in the edit dialog.
  • Improve Linux desktop metadata for app listings and categorization. (@NN708)
Thank you to 6 community contributors:
  • @rahuliyer95:
  • fix(tui): don't check for version upgrades if it's disabled by the user (#20089)
  • @github-actions[bot]:
  • Update VOUCHED list
  • @rubdos:
  • feat: add Mistral Small reasoning variant support (issue #19479) (#23735)
  • @jmbryan4:
  • feat: replace csharp-ls with roslyn-language-server (#14463)
  • @NN708:
  • fix(desktop): update desktop file and MetaInfo file (#14933)
  • @StevenTCramer:
  • fix(project): use git common dir for bare repo project cache (#19054)
v1.14.20 [Apr 21, 2026] details → github →

Core

  • Fixed a system theme regression in the TUI.
  • Added GET /config to the experimental HTTP API.
  • Fixed local dynamic imports on Windows when running under Node, improving plugin and tool loading.

TUI

  • Fixed permission replies using remote workspaces so they are sent to the correct workspace.

Desktop

  • Stopped prompt controls from replaying their fade-in animation on every render.
  • Added a setting to hide the session progress bar while the agent is working.
  • Fixed the Select Server dialog layout so the server list and actions size correctly. (@OpeOginni)
  • Fixed synced project updates so desktop project state changes apply reliably.
  • Fixed sidebar project avatars to fall back to icon.url when no override is set. (@ysm-dev)

SDK

  • Fixed the WorkspaceAdaptor.create type to include the env parameter. (@jamesmurdza)
Thank you to 4 community contributors:
  • @heimoshuiyu:
  • fix(ui): use parentID matching instead of positional scan for assistant messages (#23093)
  • @ysm-dev:
  • fix(app): fall back to icon.url in sidebar avatar (#18747)
  • @jamesmurdza:
  • fix(plugin): add env parameter to WorkspaceAdaptor.create type (#23235)
  • @OpeOginni:
  • fix(desktop): adjust layout properties in DialogSelectServer component (#23589)
v1.14.19 [Apr 20, 2026] details → github →

Core

  • Prevented compiled binaries from failing on startup because of a circular session schema dependency.
  • Renamed the compaction setting to preserverecenttokens for the budget that keeps recent turns verbatim.
  • Preserved concurrent edits to the same file instead of letting parallel edits overwrite each other.
  • Fixed managed installs on Windows and added bundled ripgrep support for Windows ARM64.
  • Added NVIDIA as a built-in provider option, including connection docs and required attribution headers. (@anniesurla)
  • Kept recent conversation turns verbatim during session compaction so follow-up work keeps more local context.
  • Fell back to summarizing the full conversation when preserved recent turns include too much media to fit safely.

Desktop

  • Reduced loading flicker when opening projects and bringing prompt controls online.
  • Added a separate terminal font setting and bundled JetBrainsMono Nerd Font Mono.
Thank you to 1 community contributor:
  • @anniesurla:
  • feat(provider): add NVIDIA to popular providers, docs, and attribution headers (#22927)
v1.14.18 [Apr 19, 2026] details → github →

Core

  • Restore the native ripgrep backend so file search and file listing work reliably again.
Thank you to 1 community contributor:
  • @ariane-emory:
  • docs: document --dangerously-skip-permissions CLI flag (#23371)
v1.14.17 [Apr 19, 2026] details → github →

Core

  • Preserve executable permissions before Docker builds when artifacts lose their exec bits.
  • Fix plugins reinstalling more often than needed.
  • Use display: summarized by default for Anthropic Bedrock Opus 4.7 requests.
  • Detect attachment types from file contents so images and PDFs still work with incorrect or missing extensions.
  • Support OTELRESOURCEATTRIBUTES for custom telemetry resource tags.
  • Fix package installs when node_modules is missing.
  • Fix GitHub Copilot Anthropic Haiku requests by disabling unsupported tool streaming.

TUI

  • Add a full-session option when forking from the session dialog.
  • Show the session ID in the sidebar on non-production channels.
Thank you to 1 community contributor:
  • @OpeOginni:
  • fix(desktop): adjust ui tool diff sticky header offset (#23149)
v1.4.11 [Apr 18, 2026] details → github →

Core

  • Fixed workspace routing so requests reach the correct workspace instance.
  • Stopped share sync attempts for sessions that were never shared.
v1.4.10 [Apr 17, 2026] details → github →

Core

  • Restored workspace history on connect so existing sessions catch up before live sync resumes
  • Passed OTEL exporter settings into managed workspaces so telemetry works there too
  • Normalized provider metadata defaults so models still load when catalog data is incomplete
  • Passed EXAAPIKEY to the websearch tool to reduce rate limits (@rasdani)

TUI

  • Added a restore flow for sessions whose workspace is unavailable, with clearer workspace status indicators
  • Fixed agent cycling when no agent is selected and improved prompt key handling
Thank you to 1 community contributor:
  • @rasdani:
  • fix(opencode): pass EXAAPIKEY to websearch tool to avoid rate limits (#16362)
v1.4.9 [Apr 17, 2026] details → github →

Core

  • Added LLM Gateway as a provider, including config support and model usage reporting. (@smakosh)
  • Limited GitHub Copilot Opus 4.7 models to medium reasoning effort to avoid unsupported variants. (@OpeOginni)
  • Improved remote workspace reconnection with exponential backoff and clearer failure handling.

TUI

  • Fixed --session-id so it opens the requested session after app startup.
  • Fixed light mode detection in Ghostty.

Desktop

  • Fixed the beta desktop app so the file tree still appears when enabled in settings.
Thank you to 3 community contributors:
  • @OpeOginni:
  • fix(opencode): rescrict github copilot opus 4.7 variants to "medium" (#23097)
  • @jenperson:
  • docs: adding Mistral to docs as a provider (it is already a provider, just docs update) #23070 (#23072)
  • @smakosh:
  • feat: add LLM Gateway provider (#7847)
v1.4.8 [Apr 17, 2026] details → github →

Core

  • Fixed a crash when experimental mode was enabled.
  • Let plugin tools return metadata in execute results. (@jquense)
  • Show real filenames instead of /dev/null in revert diffs.
  • Improved workspace session handling when a workspace no longer exists.
  • Fixed Windows ctrl+z terminal suspend and input undo behavior.
  • Enabled Azure prompt caching with a default per-session cache key.

TUI

  • Preserve prompt input when views unmount and remount.
  • Keep session list dialogs ordered more consistently within each day.

Desktop

  • Fixed desktop workspace loading so ready state persists correctly.
  • Fixed desktop session syncing when loading project data from query cache.
  • Added beta desktop settings to hide title bar tools like navigation, search, terminal, status, and file tree.
  • Improved desktop session change loading in the review panel.
Thank you to 1 community contributor:
  • @jquense:
  • fix: preserve plugin tool metadata in execute result (#22827)
v1.4.7 [Apr 16, 2026] details → github →

Core

  • GitHub Copilot gpt-5-mini now uses low reasoning effort for better request compatibility. (@thakrarsagar)
  • Workspaces now receive your auth context, so provider sign-in carries across workspace sessions.
  • Cloudflare AI Gateway now drops max_tokens for OpenAI reasoning models so GPT-5 and o-series requests stop failing. (@kobicovaldev)
  • Azure models now default store=true, fixing requests that require stored responses.
  • Claude Opus 4.7 now supports xhigh adaptive reasoning. (@GrahamCampbell)
  • Claude Opus 4.7 now shows summarized thinking by default.
  • TUI plugins now load against the correct project when multiple directories are open.
  • The bash tool uses less memory on large command output.
  • Experimental workspaces now wait for sync to finish before returning writes, reducing stale reads and missed updates.
  • Session restore can now replay a session into another workspace in batches.
  • Sessions now retry provider 5xx errors even when the provider SDK does not mark them retryable.

TUI

  • Pasting files or large text no longer inserts content twice.
  • --agent on the command line is no longer overwritten by the session's saved agent. (@CarloWood)
  • Empty LSP, MCP, formatter, and session status responses no longer break TUI sync state.

Desktop

  • Desktop builds now show a Beta or Dev badge in the title bar when applicable.
Thank you to 8 community contributors:
  • @ariane-emory:
  • fix(core): Remove dead code and documentation related to the obsolete list tool. (#22672)
  • @CarloWood:
  • fix(tui): Don't overwrite the agent that was specified on the command line (#20554)
  • @jerome-benoit:
  • fix(nix): add shared package to bun install filters (#22665)
  • @GrahamCampbell:
  • feat: Add support for claude opus 4.7 xhigh adaptive reasoning effort (#22833)
  • @B67687:
  • fix: align stale bot message with actual 60-day threshold (#22842)
  • @trbutler4:
  • fix: add missing glob dependency (#22851)
  • @kobicovaldev:
  • fix(opencode): drop max_tokens for OpenAI reasoning models on Cloudflare AI Gateway (#22864)
  • @thakrarsagar:
  • fix(opencode): use low reasoning effort for GitHub Copilot gpt-5 models (#22824)
v1.4.6 [Apr 15, 2026] details → github →

Core

  • Fixed snapshot staging for very long file lists and improved staging performance.
  • Fixed OTEL header parsing when a header value contains =.

Desktop

  • Fixed prompt submission state updates to avoid failed or inconsistent sends.
  • Improved session title input spacing while editing.
Thank you to 1 community contributor:
  • @github-actions[bot]:
  • Update VOUCHED list
v1.4.5 [Apr 15, 2026] details → github →

Core

  • Export AI SDK telemetry spans to OTLP trace backends.
  • Expose the experimental question API schema and OpenAPI spec from @opencode-ai/server.
  • Expose a reusable question handler factory for custom question API hosts.

Desktop

  • Start desktop shell commands from the home directory.
  • Avoid bootstrap error popups while global sync initializes.
v1.4.4 [Apr 15, 2026] details → github →

Core

  • Restored instance and logger context during prompt runs so prompt-time tools and logging behave correctly.
  • Kept GitHub Copilot compaction requests valid.
  • Restored the flat reply shape for question API responses.
  • Persisted MCP OAuth connections that finish immediately, so authenticated servers stay connected.
  • Prevented duplicate user messages in ACP clients.
  • Stopped emitting usermessagechunk events during session and prompt turns in ACP clients. (@RAIT-09)
  • Fixed reasoning summary injection for @ai-sdk/openai-compatible providers. (@nazarhnatyshen)
  • Added the experimental compaction.autocontinue hook to stop auto-continuing after compaction.
  • Added Alibaba provider support with cache support.
  • Snapshots now fully respect .gitignore, including previously tracked files.
  • Reading images no longer counts against quota.
  • Sessions can now update project permissions mid-run. (@remorses)
  • Enabled thinking for zhipuai-coding-plan and fixed Korean IME truncation. (@claudianus)

TUI

  • Added opencode export --sanitize to redact PII and confidential transcript data.
  • Fixed diff line number contrast in built-in themes.
  • Plugin auth login now asks for an API key when a plugin needs authorization. (@goniz)
  • Plugin auth no longer asks for an API key when the plugin has no authorize method. (@goniz)

Desktop

  • Fixed the Windows desktop backend hanging before shutdown.

SDK

  • The JavaScript SDK now throws a clear error when an older server responds with HTML instead of the API.

Extensions

  • Plugins can now register custom workspace adaptors that appear in workspace creation.
Thank you to 9 community contributors:
  • @claudianus:
  • fix: enable thinking for zhipuai-coding-plan & prevent Korean IME truncation (#22041)
  • @remorses:
  • feat: allow session permission updates (#22070)
  • @simonklee:
  • chore(github): vouch simonklee (#22127)
  • @shafdev:
  • fix(opencode): remove spurious scripts and randomField from package.json (#22160)
  • @goniz:
  • fix(cli): auth login now asks for api key in handlePluginAuth (#21641)
  • fix(cli): handlePluginAuth asks for api key only if authorize method exists (#22475)
  • @github-actions[bot]:
  • Update VOUCHED list
  • @nazarhnatyshen:
  • fix(provider): guard reasoningSummary injection for @ai-sdk/openai-compatible providers (#22352)
  • @RAIT-09:
  • fix(acp): stop emitting usermessagechunk during session/prompt turn (#21851)
  • @gigamonster256:
  • chore(nix): remove external ripgrep (#22482)
v1.4.3 [Apr 10, 2026] details → github →

Core

  • Fixed agent create for OpenAI accounts authenticated with OAuth.
  • Interrupted Bash commands now keep their final output and truncation details instead of ending as aborted.
  • Added fast mode variants for supported Claude and GPT models.

TUI

  • Restored the hidden session scrollbar as the default.

Extensions

  • Added configurable OAuth redirect URIs for remote MCP servers. (@egze)
Thank you to 2 community contributors:
  • @egze:
  • feat(mcp): add OAuth redirect URI configuration for MCP servers (#21385)
  • @simonklee:
  • opencode: lazy-load top-level CLI commands
  • Revert "opencode: lazy-load top-level CLI commands" (#21726)
v1.4.2 BREAKING [Apr 9, 2026] details → github →

TUI

  • Fix subagents not being clickable until finished

Desktop

  • Removed the forced loading delay while the app connects
v1.4.1 [Apr 9, 2026] details → github →

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.
Thank you to 3 community contributors:
  • @OpeOginni:
  • fix(app): skip url password setting for same-origin server and web app (#19923)
  • @vglafirov:
  • feat(llm): integrate GitLab DWS tool approval with permission system (#19955)
  • @nonbanana:
  • fix(lsp): remove CMakeLists.txt and Makefile from clangd root markers (#21466)
v1.4.0 BREAKING [Apr 8, 2026] details → github →

Breaking Changes in SDK

Due to some performance issues we had to make a few breaking changes in our data model.

Diff metadata

The diffs contained in the metadata for the edit and patch tool will no longer contain a to and from field with full file contents. they will only contain a patch field with the unified diff Additionally all snapshot diffs contained in user message and session diff will follow this format

UserMessage.variant

Before the user message had a variant field - it is now nested under model so userMessage.model.variant

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.
Thank you to 4 community contributors:
  • @derekbar90:
  • fix(lsp): MEMORY LEAK: ensure typescript server uses native project config (#19953)
  • @mchenco:
  • docs: update Cloudflare provider setup to reflect /connect prompt flow (#20589)
  • @gitpush-gitpaid:
  • feat(opencode): Add PDF attachment Drag and Drop (#16926)
  • @ariane-emory:
  • fix(tui): use sentence case for theme mode command palette items (#21192)
  • feat(tui): allow variant_list keybind for the "Switch model variant" command (#21185)
v1.3.17 [Apr 6, 2026] details → github →

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
Thank you to 1 community contributor:
  • @mchenco:
  • fix: show clear error when Cloudflare provider env vars are missing (#20399)
v1.3.16 [Apr 6, 2026] details → github →

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 OPENCODEDISABLEMOUSE (@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
Thank you to 3 community contributors:
  • @blackheaven:
  • feat(tui): make the mouse disablable (#6824, #7926) (#13748)
  • @georgeharker:
  • fix(core): implement proper configOptions for acp (#21134)
  • @meruiden:
  • fix: pass both 'openai' and 'azure' providerOptions keys for @ai-sdk/azure (#20272)
v1.3.15 [Apr 4, 2026] details → github →

Core

  • Prevent npm installs from failing when Arborist hits the compiled binary's node-gyp path
Thank you to 1 community contributor:
  • @Yuxin-Dong:
  • refactor: remove redundant Kimi skill section (#20393)
v1.3.14 [Apr 4, 2026] details → github →

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.
Thank you to 12 community contributors:
  • @github-actions[bot]:
  • Update VOUCHED list
  • @JosXa:
  • fix: normalize filepath in FileTime to prevent Windows path mismatch (#20367)
  • @valenvivaldi:
  • fix(core): prevent agent loop from stopping after tool calls with OpenAI-compatible providers (#14973)
  • @aaron-he-zhu:
  • fix(session): compaction agent responds in same language as conversation (#20581)
  • @dpuyosa:
  • feat(opencode): Add Venice AI package as dependency (#20570)
  • @noamzbr:
  • feat: add optional messageID to ShellInput (#20657)
  • feat(acp): Add messageID and emit usermessagechunk on prompt/command (#18625)
  • @BYK:
  • fix(format): use biome format instead of check to prevent import removal (#20545)
  • @lennyvaknine43:
  • feat: add macOS managed preferences support for enterprise MDM deployments (#19178)
  • @ykswang:
  • fix(opencode): honor model limit.input overrides (#16306)
  • @jpcarranza94:
  • fix: prevent Tool.define() wrapper accumulation on object-defined tools (#16952)
  • @kflansburg:
  • feat: Send x-session-affinity and x-parent-session-id headers (#20744)
  • @natewill:
  • fix(core): fix restoring earlier messages in a reverted chain (#20780)