Open-Source Terminal-Coding-Assistent
25. Februar 2026
## Core - Add message delete endpoint (@shantur) ## TUI - Consume stdout concurrently with process exit in auth login (@Ayushlm10) **Thank you to 2 community contributors:** - @Ayushlm10: - fix: consume stdout concurrently with process exit in auth login (#15058) - @shantur: - feat(core): add message delete endpoint (#14417)
Features
25. Februar 2026
## Core - Synchronize changes - Temporarily disable plan enter tool to prevent unintended mode switches during task execution - Migrate Bun.spawn to Process utility with timeout and cleanup - Disable Bun config cache in CI - Await git ID cache write in project module - Import custom tools via file URL ## TUI - Add Go SDK code generation script - Show LSP errors for apply_patch tool ## Desktop - Enhance Windows app resolution and UI loading states (@neriousy) - Update desktop README for accuracy **Thank you to 1 community contributor:** - @neriousy: - feat(desktop): enhance Windows app resolution and UI loading states (#13320)
Features
24. Februar 2026
## Core - Add workspace-serve command (experimental) - ACP both live and load share synthetic pending status preceding actual data (@noamzbr) - Replace structuredClone with spread operator for process.env in tests - Add 50ms tolerance for NTFS mtime precision in Windows FileTime assertions - Replace Unix-only test assumptions with cross-platform alternatives - Use path.sep in discovery test for cross-platform path matching - Normalize backslash paths in config rel() and file ignore on Windows - Fix plugin resolution with createRequire fallback on Windows - Harden preload cleanup against Windows EBUSY errors - Normalize git excludesFile path for Windows in tests - Stream bash output and add synthetic pending events to ACP (@noamzbr) - Add git flags for snapshot operations and fix tests for cross-platform on Windows - Handle CRLF line endings in markdown frontmatter parsing on Windows - Use path.join for cross-platform glob test assertions - Upgrade to Bun 1.3.10 canary and force baseline builds always - Normalize paths at permission boundaries on Windows - Windows path support and canonicalization (@edemaine) - Upgrade OpenTUI to v0.1.81 - Change detection on Windows, especially Cygwin (@edemaine) - Cache platform binary in postinstall for faster startup - Revert caching platform binary in postinstall for faster startup - Cache platform binary in postinstall for faster startup - Publish desktop beta releases to a separate repository - Add experimental endpoint to list all sessions - Fixed terminal issues in the app - Respect info exclude in snapshot staging - Missing plugin dependencies cause TUI to black screen (@elithrar) ## TUI - Support variant parameter in GitHub Actions and OpenCode GitHub run command (@elithrar) ## Desktop - Ignore stale part deltas in the application - Fix bug where lines remain highlighted after canceling a comment (@neriousy) - Replace error handling with serverErrorMessage utility and add ConfigInvalidError checks (@OpeOginni) - Preserve native path separators in file path helpers - Remove file tree tooltips - Update createOpenReviewFile test to match new call order - Wait for loadFile to complete before opening file tab - Windows E2E test failures due to IPv6 networking issues resolved - Correct inverted chevron direction in todo list (@kevinWangSheng) - Feed customization options - Add beta icon to desktop application - E2E test updated to current version - Remove double-border in share button - Better sound effect disabling UX - Add custom scroll view to app - Show and hide reasoning summaries in the app - Stay pinned with auto-scroll on todos, questions, and permissions - Bring back -i flag in sidecar arguments for desktop - Large text pasted into prompt input no longer causes main thread to lock ## SDK - Scripts using Turbo commands would not run on Windows **Thank you to 10 community contributors:** - @elithrar: - fix(cli): missing plugin deps cause TUI to black screen (#14432) - fix(github): support variant in github action and opencode github run (#14431) - @tuhin-cmd: - docs: add Bangla README translation (#14331) - @Seungjun0906: - docs(ko): improve wording in gitlab, ide, index, keybinds, and lsp docs (#14517) - @github-actions[bot]: - Update VOUCHED list - @pirrozani: - docs(tui): correct typo in TUI documentation (#14604) - @edemaine: - fix(desktop): change detection on Windows, especially Cygwin (#13659) - fix: Windows path support and canonicalization (#13671) - @kevinWangSheng: - fix(app): correct inverted chevron direction in todo list (#14628) - @noamzbr: - feat: ACP - stream bash output and synthetic pending events (#14079) - fix: ACP both live and load share synthetic pending status preceeding… (#14916) - @OpeOginni: - refactor: replace error handling with serverErrorMessage utility and checks for if error is ConfigInvalidError (#14685) - @neriousy: - fix(app): on cancel comment unhighlight lines (#14103)
Features
20. Februar 2026
## Desktop - Don't spawn sidecar if default is localhost server ## SDK - Build SDK to dist/ instead of dist/src **Thank you to 1 community contributor:** - @rmk40: - docs: clarify tool name collision precedence (#14313)
Features
20. Februar 2026
## Core - Add missing id, sessionID, and messageID to MCP tool attachments (@NatChung) - Remove unnecessary deep clones from session loop and LLM stream - Remove User-Agent header assertion from LLM test to fix failing test ## TUI - Use structuredClone instead of remeda's clone for better performance and native support (@mhart) ## Desktop - Restore settings header mask **Thank you to 2 community contributors:** - @mhart: - Use structuredClone instead of remeda's clone (#14351) - @NatChung: - fix: add missing id/sessionID/messageID to MCP tool attachments (#14345)
Features
19. Februar 2026
## Core - Support adaptive thinking for Claude Sonnet 4.6 (@tctev) ## TUI - Add custom tool and MCP call responses that are visible and collapsible (@yanosh-k) ## Desktop - Black screen on launch with sidecar server fixed - Clear todos on abort **Thank you to 2 community contributors:** - @yanosh-k: - feat(tui): add custom tool and mcp call responses visible and collapsable (#10649) - @tctev: - feat(opencode): support adaptive thinking for claude sonnet 4.6 (#14283)
Features
19. Februar 2026
## Core - Fixed terminal rendering and interaction issues in the application - Normalize file status paths relative to instance directory (@shantur) - Migrate from Bun.Glob to npm glob package - Bump AI SDK packages for Google, Google Vertex, Anthropic, Bedrock, and provider utils - Add support for medium reasoning with Gemini 3.1 - Remove use of Bun.file - Text files misclassified as binary - Fetch default server at top level in desktop application - Terminal rework in the app - Bake in the AWS and Google authentication packages - Token substitution in OPENCODE_CONFIG_CONTENT now works correctly (@ariane-emory) - Revert migration from Bun.file() to Filesystem module - Migrate project.ts from Bun.file() to Filesystem/stat modules - Migrate read tool from Bun.file() to Filesystem module - Migrate write tool from Bun.file() to Filesystem module - Migrate Edit tool from Bun.file() to Filesystem module - Migrate remaining tool files from Bun.file() to Filesystem/stat modules - Migrate storage.ts from Bun.file()/Bun.write() to Filesystem module - Migrate src/storage/json-migration.ts from Bun.file() to Filesystem module - Migrate MCP auth module from Bun file APIs to Filesystem module - Migrate storage database from Bun.file() to statSync for file existence checks - Migrate session prompt module from Bun.file() to Filesystem/stat modules - Fix crash in `opencode run` and show errored tool calls in output - Migrate skill discovery to use Filesystem module instead of Bun file APIs - Migrate session instruction handling from Bun.file() to Filesystem module - Migrate provider.ts from Bun.file() to Filesystem module - Migrate shell.ts from Bun.file() to statSync for improved file system operations - Migrate log utility from Bun.file() to Node.js fs module for better compatibility - Migrate models.ts from Bun.file()/Bun.write() to Filesystem module - Use HashiCorp releases API for installing terraform-ls (@edubxb) - Migrate LSP server from Bun.file()/Bun.write() to Filesystem module - Migrate session command from Bun.file() to statSync for improved file system operations - Migrate agent.ts from Bun.file() to Filesystem module - Migrate auth module from Bun.file()/Bun.write() to Filesystem module - Pass sessionID and callID to shell.env hook input (@tesdal) - Fix terminal cross-talk issue in the application - Update SST version - Migrate src/global/index.ts from Bun.file() to Filesystem module - Emit PROMPT_TOO_LARGE error when GitHub context overflows (@elithrar) - Migrate src/bun/index.ts from Bun.file()/Bun.write() to Filesystem module - Migrate config/markdown.ts from Bun.file() to Filesystem module - Migrate file/index.ts from Bun.file() to Filesystem module - Migrate format/formatter.ts from Bun.file() to Filesystem module - Allow readJson to be called without explicit type parameter - Migrate file/ripgrep.ts from Bun APIs to Filesystem module - Migrate index.ts from Bun.file() to Filesystem module - Add Julia language server support (@zarly) - Bump GitLab AI provider to 3.6.0 to add Sonnet 4.6 support (@vglafirov) - Add centralized filesystem module for Bun.file migration - Fix Clojure syntax highlighting (@finalfantasia) - Ensure explore subagent prompts for external directory permission instead of auto-denying - Don't autoload kilo - Add Kilo as a native provider (@Nomadcxx) - Simplify redundant ternary in updateMessage (@yikayiyo) - Ensure Read tool uses fs/promises for all file system operations - Make read tool more memory efficient - Surface plugin auth providers in the login picker (@anoldguy) - Invalidate OAuth credentials when OAuth provider indicates they are invalid (@GreenStage) - Don't fetch models.dev on completion (@gigamonster256) - Recover state after SSE reconnect and harden SSE streams - Keep message part order stable when files resolve asynchronously - Drop IDs from attachments in tools and assign them in prompt.ts instead ## TUI - Improve GitHub action branch detection and handle 422 errors (@elithrar) - Ensure onExit callback fires after terminal output is written - Migrate TUI thread module from Bun.file() to Filesystem module - Migrate agent command from Bun.file()/Bun.write() to Filesystem module - Migrate import command from Bun.file() to Filesystem module - Update pasteImage to only increment count when the previous attachment is an image (@OpeOginni) - Migrate editor.ts from Bun.file()/Bun.write() to Filesystem module - Migrate clipboard.ts from Bun.file() to Filesystem module - Migrate CLI run command from Bun.file() to Filesystem/stat modules - Session list --max-count parameter now correctly limits the number of sessions displayed (@mharris717) - Exit cleanly without hanging after session ends - Style scrollbox for permission and sidebar (@akronb) - Increase button heights and improve permission prompt layout alignment - Display new session banner with logo and project details in TUI ## Desktop - Update Japanese translations for WSL integration (@taroj1205) - Made localhost URLs work correctly in isLocal function - Navigate to last session when navigating to a project - Fix typecheck errors in app - Deduplicate allServers list in app - Adjust session turn horizontal padding - Tighten prompt dock padding in app - Fixed sidecar spawning a window on Windows - Delay prompt mode toggle tooltip - Shorten prompt mode toggle tooltips in the app - Reduce review panel padding - Tweak search button style in UI - Expanded color state on titlebar buttons - Tweak hover and active styles for title bar buttons - Share button now has a border - Adjust file tree background color - Handle sidecar key in projectsKey for desktop projects - Fixed desktop app incorrectly identifying local servers - Refactor server management backend - Use group-hover for file tree icon color swap at all nesting levels - Simplify mode toggle icon styling in TUI - Clean up desktop implementation - Temporarily disable WSL support in desktop application - Use radio group in prompt input - Simplify prompt mode toggle icon colors via CSS and tighten message timeline padding in TUI - Fix prompt input quirks in app - Terminal disconnect and resync functionality fixed - Replicate tauri-plugin-shell logic in desktop application - Improve modified file visibility and button spacing in TUI - Show monochrome file icons by default in tree view, revealing colors on hover to reduce visual clutter - Fix share button text styling to use consistent 12px regular font weight - Add warning icon to permission requests for better visibility - Extract dock prompt shell component - UI no longer flashes when switching tabs (@neriousy) - Avoid sidecar health-check timeout on shell startup in desktop app (@ysm-dev) - Increase prompt mode toggle height for better clickability - Add more end-to-end tests for desktop application (@neriousy) - Update magnifying-glass icon in UI - Tighten titlebar action padding - Refine titlebar search and open padding - Center titlebar search and soften keybind styling - Align titlebar search text size - Match titlebar active background to hover - Use weak borders in titlebar actions - Reduce titlebar right padding - Keep file tree toggle visible - Adjust icon button spacing in UI - Session timeline and turn handling reworked in app - Keep Escape handling local to prompt input on macOS desktop (@itskritix) - Hide server CLI window on Windows ## SDK - Fix nested exports transformation in SDK publish script **Thank you to 25 community contributors:** - @itskritix: - fix(app): keep Escape handling local to prompt input on macOS desktop (#13963) - @vynnlee: - docs(ko): improve Korean translation accuracy and clarity in Zen docs (#13951) - @chenmijiang: - docs: improve zh-cn and zh-tw documentation translations (#13942) - @hmu332233: - fix(docs): correct reversed meaning in Korean plugins logging section (#13945) - @neriousy: - feat(desktop): more e2e tests (#13975) - fix(app): ui flashing when switching tabs (#13978) - @ysm-dev: - fix(desktop): avoid sidecar health-check timeout on shell startup (#13925) - @alexcarpenter: - fix: Homepage video section layout shift (#13987) - @gigamonster256: - fix: don't fetch models.dev on completion (#13997) - @GreenStage: - fix: Invalidate oauth credentials when oauth provider says so (#14007) - @anoldguy: - feat: surface plugin auth providers in the login picker (#13921) - @akronb: - fix(tui): style scrollbox for permission and sidebar (#12752) - @yikayiyo: - refactor: simplify redundant ternary in updateMessage (#13954) - @Nomadcxx: - feat: add Kilo as a native provider (#13765) - @finalfantasia: - fix(opencode): fix Clojure syntax highlighting (#13453) - @mharris717: - fix(cli): session list --max-count not honored, shows too few sessions (#14162) - @vglafirov: - feat: GitLab Duo - bump gitlab-ai-provider to 3.6.0 (adds Sonnet 4.6) (#14115) - @zarly: - feat: add Julia language server support (#14129) - @elithrar: - fix(github): emit PROMPT_TOO_LARGE error on context overflow (#14166) - fix(github): action branch detection and 422 handling (#14322) - @OpeOginni: - fix(opencode): update pasteImage to only increment count when the previous attachment is an image too (#14173) - @tesdal: - feat(plugin): pass sessionID and callID to shell.env hook input (#13662) - @edubxb: - fix(lsp): use HashiCorp releases API for installing terraform-ls (#14200) - @ariane-emory: - fix: token substitution in OPENCODE_CONFIG_CONTENT (alternate take) (#14047) - @Seungjun0906: - docs(ko): improve wording in ecosystem, enterprise, formatters, and github docs (#14220) - @shantur: - fix(core): normalize file.status paths relative to instance dir (#14207) - @taroj1205: - feat(i18n): update Japanese translations to WSL integration (#13160)
Features
16. Februar 2026
## Core - Add dfmt formatter support for D language files (@burner) - Bump GitLab provider and auth plugin for mid-session token refresh (@vglafirov) - Remove unnecessary per-message title LLM calls (@rmk40) - Prioritize user-defined variables over environment variables in Google Vertex AI configuration - Add OpenAI-compatible endpoint support for Google Vertex provider (@leehack) - Add Venice support for temperature, topP, topK, and smallOption parameters (@dpuyosa) - Add cljfmt formatter support for Clojure files (@finalfantasia) ## TUI - Make use of server directory path for file references in prompts (@OpeOginni) - Add database migration command to convert JSON storage to SQLite - Add --continue and --fork flags to attach command - Fixed inaccurate tips in TUI (@imanolmzd-svg) ## Desktop - Normalize Linux Wayland/X11 backend and decoration policy (@bnema) - Use process-wrap library instead of manual job object handling in desktop (@Brendonovich) **Thank you to 12 community contributors:** - @finalfantasia: - feat(opencode): add `cljfmt` formatter support for Clojure files (#13426) - @pkx07: - fix(website): correct zh-CN translation of proprietary terms in zen.mdx (#13734) - @Brendonovich: - desktop: use process-wrap instead of manual job object (#13431) - @dpuyosa: - feat(opencode): Add Venice support in temperature, topP, topK and smallOption (#13553) - @bnema: - fix(desktop): normalize Linux Wayland/X11 backend and decoration policy (#13143) - @leehack: - feat: add openai-compatible endpoint support for google-vertex provider (#10303) - @hobostay: - fix(docs): correct critical translation errors in Russian zen page (#13830) - @rmk40: - fix(core): remove unnecessary per-message title LLM calls (#13804) - @imanolmzd-svg: - fix (tui): Inaccurate tips (#13845) - @vglafirov: - fix: bump GitLab provider and auth plugin for mid-session token refresh (#13850) - @OpeOginni: - fix(tui): make use of server dir path for file references in prompts (#13781) - @burner: - feat(opencode): add `dfmt` formatter support for D language files (#13867)
Features
15. Februar 2026
## Core - Ensure SQLite migration logs to stderr instead of stdout ## Desktop - Fixed issue viewing new files opened from the file tree (@shanebishop1) - Only navigate prompt history at input boundaries (@nexxeln) - Add keyboard shortcut Shift+Tab to the application (@neriousy) - Focus window after update and relaunch (@zerone0x) - Add GeistMono Nerd Font to available mono font options (@brandon-julio-t) **Thank you to 7 community contributors:** - @brandon-julio-t: - feat: Add GeistMono Nerd Font to available mono font options (#13720) - @zerone0x: - fix(desktop): focus window after update/relaunch (#13701) - @dector: - docs: add Ukrainian README translation (#13697) - @neriousy: - fix(app): keybind [shift+tab] (#13695) - @nexxeln: - fix(app): only navigate prompt history at input boundaries (#13690) - @shanebishop1: - fix(desktop): issue viewing new files opened from the file tree (#13689) - @alexyaroshuk: - feat(app): localize "free usage exceeded" error & "Add credits" clickable link (#13652)
Features
15. Februar 2026
## Core - Add db command for database inspection and querying - Derive all IDs from file paths during JSON migration ## Desktop - Clear notifications action - Fixed stack overflow issue in file tree component
Features
15. Februar 2026
## Core - Ensure Anthropic models on OpenRouter also have variant support - Add WAL checkpoint on database open - Ensure Vercel variants pass Amazon models under Bedrock key
Features
14. Februar 2026
## Core - Add comprehensive test coverage for Session.list() filters - Filter sessions at database level to improve session list loading performance - Fix Vercel gateway variants - Bump Vertex AI packages
Features
14. Februar 2026
v1.2.0 and beyond includes a data migration that will execute on first run. It will migrate all flat files in data directory to a single sqlite database. Depending on how much data you have and speed of computer this can take some time. if anything goes wrong you can retrigger the migration by deleting `~/.local/share/opencode/opencode.db*` files (%APPDATA% on windows) If you have any issues with the migration the original data is not yet deleted and downgrading should work. But please open an issue so we can investigate and include sqlite in the issue title. SDK Users We now have a PartDelta event which sends only incremental changes to parts. This avoids sending the full content of text parts over and over when it is updated ## Core - Show all project sessions from any working directory - Tweak websearch tool description date info to avoid cache busts
Features
14. Februar 2026
This release includes a data migration that will execute on first run. It will migrate all flat files in data directory to a single sqlite database. Depending on how much data you have and speed of computer this can take some time. if anything goes wrong you can retrigger the migration by deleting ~/.local/share/opencode/opencode.db* files (%APPDATA% on windows) If you have any issues with the migration the original data is not yet deleted and downgrading should work. But please open an issue so we can investigate and include sqlite in the issue title. SDK Users We now have a PartDelta event which sends only incremental changes to parts. This avoids sending the full content of text parts over and over when it is updated ```js PartDelta: BusEvent.define( "message.part.delta", z.object({ sessionID: z.string(), messageID: z.string(), partID: z.string(), field: z.string(), delta: z.string(), }), ) ``` ## Core - Revert to SQLite database implementation - Move timeout configuration from programmatic API to CLI flag (@yanhao98) - Update AI SDK packages and use adaptive reasoning for Claude Opus 4.6 on Vertex, Bedrock, and Anthropic ## TUI - Prevent crash when tool inputs are malformed during opencode run (@0xK3vin) - Add --dir option to run command (@BlankParticle) ## Desktop - Fix Rust compilation issues in desktop application (@Brendonovich) - Remove OPENCODE_SQLITE environment variable from desktop (@Brendonovich) - Terminal resize handling fixed in app - Use prompt_async endpoint to avoid timeout over VPN/tunnel (@eytans) - Remount SDK and sync tree when server URL changes (@ysm-dev) - Sync docs locale cookie on alias redirects (@Seungjun0906) - Performance optimization for showing large diffs and files in desktop (@neriousy) **Thank you to 12 community contributors:** - @BlankParticle: - feat(cli): add --dir option to run command (#12443) - @neriousy: - fix(desktop): performance optimization for showing large diff & files (#13460) - @Seungjun0906: - fix(web): sync docs locale cookie on alias redirects (#13109) - docs(ko): polish Korean phrasing in acp, agents, config, and custom-tools docs (#13446) - @ysm-dev: - fix(app): remount SDK/sync tree when server URL changes (#13437) - @Annopick: - docs: Fix zh-cn translation mistake in tools.mdx (#13407) - @eytans: - fix(web): use prompt_async endpoint to avoid timeout over VPN/tunnel (#12749) - @G36maid: - docs: add pacman installation option for Arch Linux alongside AUR (#13293) - @yanhao98: - fix(test): move timeout config to CLI flag (#13494) - @niushuai1991: - fix: standardize zh-CN docs character set and terminology (#13500) - @kitlangton: - fix(ui): support cmd-click links in inline code (#12552) - @0xK3vin: - fix: prevent opencode run crash on malformed tool inputs (#13051) - @Brendonovich: - desktop: remote OPENCODE_SQLITE env (#13545) - desktop: fix rust
Features
13. Februar 2026
## Core - Revert token substitution in OPENCODE_CONFIG_CONTENT - Ensure @-mentioning a directory uses the read tool instead of deprecated list tool - Add tool.definition hook for plugins to modify tool description and parameters (@spoons-and-mirrors) - Remove worktree delete functionality - Resolve ACP hanging indefinitely in thinking state on Windows (@ASidorenkoCode) ## Desktop - Reconnect event stream on disconnect - Toggle all provider models in settings - Clean up desktop loading page (@Brendonovich) - Notification should navigate to session - Fix prompt input behavior quirks - Failed to create store in app - Only show loading window if SQLite migration is necessary (@Brendonovich) **Thank you to 3 community contributors:** - @ASidorenkoCode: - fix: resolve ACP hanging indefinitely in thinking state on Windows (#13222) - @Brendonovich: - desktop: only show loading window if sqlite migration is necessary - cleanup desktop loading page - @spoons-and-mirrors: - feat(hook): add tool.definition hook for plugins to modify tool description and parameters (#4956)
Features
12. Februar 2026
## Core - Token substitution in OPENCODE_CONFIG_CONTENT environment variable (@ariane-emory) - Look for recent model in fallback in CLI (@smitchaudhary) - Baseline CPU detection fixed (@Hona) - Windows selection behavior and manual Ctrl+C handling (@Hona) - Terminal PTY isolation for app ## TUI - Do not open console on error ## Desktop - Option to turn off sound effects - Normalize OAuth error messages - Suggestion active state broken - Fixed remote HTTP server connections in the app **Thank you to 4 community contributors:** - @amankalra172: - docs: update STACKIT provider documentation with typo fix (#13357) - @Hona: - feat: windows selection behavior, manual ctrl+c (#13315) - fix: baseline CPU detection (#13371) - @smitchaudhary: - fix: look for recent model in fallback in cli (#12582) - @ariane-emory: - fix: token substitution in OPENCODE_CONFIG_CONTENT (#13384)
Features
12. Februar 2026
## Core - Return image attachments from webfetch tool - Expose tool arguments in shell hook for plugin visibility ## Desktop - Project icons no longer unload unexpectedly - Preserve undo history for plain-text paste in app (@gitRasheed) - Refactor app for better SolidJS hygiene - More defensive session context metrics handling in app **Thank you to 2 community contributors:** - @dtfiedler: - fix(docs): correct `format` attribute in `StructuredOutputs` (#13340) - @gitRasheed: - fix(app): preserve undo history for plain-text paste (#13351)
Features
12. Februar 2026
## Core - Allow model configurations without npm/api provider details - Tool outputs are now more LLM-friendly ## Desktop - Add diff virtualization to improve performance for large diffs - Display progress bar for SQLite migrations in desktop app (@Brendonovich) **Thank you to 1 community contributor:** - @Brendonovich: - desktop: sqlite migration progress bar (#13294) - Testing SignPath Integration (#13308)
Features
12. Februar 2026
## Core - Support Claude agent SDK-style structured outputs in the OpenCode SDK (@K-Mistele) - Support custom API URL per model - Add automatic variant generation for Venice models (@dpuyosa) - Use Promise.all for MCP listTools calls to improve performance - Upgrade OpenTUI to version 0.1.79 - Improve compaction check logic - Make read tool offset 1-indexed to match line numbers and avoid confusion - Add directory reading capability to the read tool ## TUI - Use FFI to resolve Windows raw input and Ctrl+C handling issues (@Hona) - Add toggle to hide session header in TUI (@kitlangton) ## Desktop - Guard randomUUID in insecure browser contexts - Workspace reset functionality fixed (@neriousy) **Thank you to 6 community contributors:** - @neriousy: - fix(app):workspace reset (#13170) - @github-actions[bot]: - Update VOUCHED list - @dpuyosa: - feat(opencode): Venice Add automatic variant generation for Venice models (#12106) - @kitlangton: - feat(tui): add toggle to hide session header (#13244) - @K-Mistele: - feat: support claude agent SDK-style structured outputs in the OpenCode SDK (#8161) - @Hona: - fix(win32): use ffi to get around bun raw input/ctrl+c issues (#13052)
Features
11. Februar 2026
## Desktop - Add translations support to the application - I don't have access to git commands. Could you provide the full commit message or the PR description for #13166 so I can create an appropriate changelog entry? (@neriousy) - Add more end-to-end tests for the application - Fixed sidebar remounting issue **Thank you to 1 community contributor:** - @neriousy: - Fix/reverception (#13166)
Features
11. Februar 2026
## TUI - Dismiss dialogs with Ctrl+C in TUI (@kitlangton) - Keep /share command available to copy existing share link (@kitlangton) - Add mode-specific input placeholders to improve context-aware prompts (@kitlangton) - Prevent home wordmark corruption in height-constrained terminals (@kitlangton) ## Desktop - Revert WSL backend mode feature for desktop - Notifications enabled on child sessions - Terminal PTY buffer now properly carries over between sessions - Terminal resize functionality fixed in app **Thank you to 1 community contributor:** - @kitlangton: - fix(tui): prevent home wordmark corruption in height-constrained terminals (#13069) - feat(prompt): mode-specific input placeholders (#12388) - fix(tui): keep /share available to copy existing link (#12532) - fix(tui): dismiss dialogs with ctrl+c (#12884)
Features
11. Februar 2026
## Core - Add additional context overflow cases and remove overcorrecting ones - Ensure compaction is more reliable by adding reserve token buffer to provide enough room for input window compaction - Improve /review prompt to detect behavior changes more explicitly - Improve Amazon Bedrock check to include container credentials (@OpeOginni) ## TUI - Default session sidebar to auto ## Desktop - Fixed terminal copy/paste functionality - Copy path button styles fixed in app - Use tracing for logging in desktop application (@Brendonovich) - Enhance Windows app resolution and UI loading states (@neriousy) - Improve desktop app server spawn resilience - Read Wayland preference from store in desktop application (@Brendonovich) - Add WSL backend mode for desktop (@Brendonovich) ## SDK - Encode non-ASCII directory paths in v1 SDK HTTP headers (@MrMushrooooom) **Thank you to 9 community contributors:** - @github-actions[bot]: - Update VOUCHED list - @OpeOginni: - fix(tui): improve amazon-bedrock check to include container credentials (#13037) - @ariane-emory: - docs: remove 'Migrating to 1.0' documentation section (#13076) - @Brendonovich: - feat(desktop): add WSL backend mode (#12914) - fix(desktop): read wayland preference from store (#13081) - desktop: use tracing for logging (#13135) - @webwww123: - fix(docs): avoid footer language selector truncation (#13124) - @Seungjun0906: - docs(ko): improve translations for intro, cli, and commands (#13094) - @neriousy: - feat(desktop): enhance Windows app resolution and UI loading states (#13084) - @MrMushrooooom: - fix: encode non-ASCII directory paths in v1 SDK HTTP headers (#13131) - @taroj1205: - fix(web): prevent language select label truncation (#13100)
Features
10. Februar 2026
## Desktop - Task tool rendering fixed in app - Open apps with executables on Windows (@neriousy) - Don't close sidebar on session change **Thank you to 1 community contributor:** - @neriousy: - fix(desktop): open apps with executables on Windows (#13022)
Features
10. Februar 2026
## Core - Increase test timeout to 30s to prevent failures during package installation - Memory leak fixed in platform fetch for events - Show helpful message when free usage limit is exceeded ## Desktop - Disable terminal transparency
Features
10. Februar 2026
## Core - No changes in review pane - Fix terminal replay in application - Fix workspace reset issues in the app - Resolve Homebrew upgrade requiring multiple runs (@GeneCodeSavvy) - Publish session.error event for invalid model selection (@surma) - Create file if it doesn't exist when writing via ACP (@BryceRyan) - Adjust agent variant logic to check if variant is available for model instead of requiring exact match - Add new ContextOverflowError type - Remove obsolete Copilot model enablement instructions (@fgonzalezurriola) - Enable thinking for all reasoning models on Alibaba Cloud (DashScope) (@AdJIa) - Parse mid-stream OpenAI response errors to prevent infinite retries on unrecoverable errors - Revert web input focus shortcut feature (@gigamonster256) - Add web input focus shortcut (@ChangeHow) - Add models.dev schema reference for model autocomplete in opencode.json (@remorses) - Set variant in assistant messages (@shantur) - Add skill discovery from URLs via well-known RFC - Clean up orphaned worktree directories (@maharshi365) - Properly encode file URLs with special characters (@yudgnahk) - SessionPrompt.shell() now triggers loop if messages are queued (@goniz) - Use reasoning summary auto for GPT-5 models that are not chat (@scratchmex) - Add specific system prompt for Trinity model (@mariamjabara) - Correct prefix selection for amazon-bedrock provider in getSmallModel (@NachoFLizaur) - Don't rely on metadata.summary in task tool render - Handle step-start and step-finish parts in GitHub response text extraction (@elithrar) - Bump @gitlab/gitlab-ai-provider to 3.5.0 (@vglafirov) - Add directory parameter to plugin client for multi-project support (@cooooooooooode) - Correct /data API usage and data format for importing share URLs (@yuvrajvirk) - Parallelize skill downloads for faster loading in TUI - Add skill discovery from URLs via well-known RFC - Handle dollar sign character with file pattern in configuration (@hstove) ## TUI - Clean up dialog-model.tsx per code review - Revert addition of version to session header and status dialog - Revert showing connected providers in /connect dialog - Use sender color for queued messages in TUI (@mcostasilva) - Revert footer restoration in session view - Add Claude Code-style --fork flag to duplicate sessions before continuing (@ariane-emory) - Restore footer to session view (@ariane-emory) - Increase skill dialog width - Improve skills dialog readability (@kynnyhsap) ## Desktop - Back to platform fetch for now - Include basic authentication in app - Fixed global event default fetch behavior in app - Fixed memory leak in event fetch operation - Don't dispose instance after reset workspace - Based on the commit message "fix(app): regressions" without access to the actual changes, I can only provide a generic summary: Fix regressions in the app - Use agent configured variant in app - Persist defensiveness in app - Add redo and undo end-to-end test (@neriousy) - Use absolute paths for sidebar session navigation (@riftzen-bit) - New session in workspace now correctly uses the selected workspace - Add Cmd+[/] keybinds for session history navigation (@kitlangton) - Correct module name for linux_display in main.rs (@Hona) - Set maximum widths in app - Incorrect workspace on new session - Update tab file contents on change - Polish Open in icon treatment - Add fallback for when crypto.randomUUID is unavailable - Allow creating sessions on touch devices (@kitlangton) - Add native Wayland toggle on Linux desktop (@IsraelAraujo70) - Include sandboxes in project unseen message and error notifications (@Brendonovich) - Persist current sidecar URL in state when isSidecar prop is true (@OpeOginni) - Track current sidecar URL in desktop application (@Brendonovich) - Exclude devtools from production builds (@sneycampos) - Add isSidecar prop to AppInterface and persist sidecar server URLs (@OpeOginni) - Localize "close tab" in command palette (@alexyaroshuk) - Improve workspace header truncation and item interaction (@kitlangton) - Add default clipboard copy affordance to TextField component (@kitlangton) - Fix stale context in prompt input - Tighten slash command autocomplete matching (@kitlangton) - Display toast notification when session is missing on prompt submit (@DNGriffin) - Add native clipboard image paste and fix text paste in desktop app (@invarrow) - Respect terminal toggle keybind when terminal is focused (@ryanmiville) - Keep /share available to copy existing link (@kitlangton) - Disable 3 Safari prompt-input annoyances (@DNGriffin) - Add drag-and-drop support for @mentioning files in the app (@DNGriffin) - Handle Windows paths in frontend file URL encoding (@yudgnahk) - Move workspace New session button into header (@kitlangton) - Toggle file tree and review panel with improved UX (@ProdigyRahul) - Allow agent select to use full width on Windows (@abdiths) - Keep startup script field scrollable in edit project dialog (@itskritix) - Fix terminal replay issues in app - Added macOS support for displaying only installed editors and added Sublime Text editor (@OpeOginni) - Remove extra error page and use default error boundary - Add loading window and restructure Rust desktop code (@Brendonovich) - Hide 'open in app' button on narrow viewports - Update server removal logic to clear default server URL if removed (@OpeOginni) - Display session last updated time in command palette search (@alexyaroshuk) - Add Windows File Explorer icon for session header (@maharshi365) - Support desktop titlebar double-click maximize (@crob19) - Add keyboard accelerators to menu items (@Brendonovich) - Add more basic menu bar items to desktop application (@Brendonovich) - Always show project menu button on mobile for accessibility (@DNGriffin) - Maximize main window by default (@Brendonovich) **Thank you to 44 community contributors:** - @kynnyhsap: - fix(opencode): improve skills dialog readability (#12356) - @hstove: - fix(config): handle $ character with {file:} pattern (#12390) - @AksharP5: - feat(tui): highlight esc label on hover in dialog (#12383) - @Brendonovich: - desktop: maximize main window by default (#12433) - desktop: add more basic menu bar items - desktop: add key accelerators to menu itms - desktop: add loading window and restructure rust (#12176) - desktop: track currentSidecarUrl - app: include sandboxes in project unseen/error notifs - @DNGriffin: - fix(app): always show project menu button for mobile a11y (#11258) - feat(app): drag-n-drop to @mention file (#12569) - fix(app): disable 3 safari prompt-input annoyances (#12558) - fix(app): Toast when session is missing on prompt-submit (#12654) - @crob19: - fix(desktop): support desktop titlebar double-click maximize (#12459) - @maharshi365: - fix(ui): add Windows File Explorer icon for session header (#12386) - fix(opencode): cleanup orphaned worktree directories (#12399) - @alexyaroshuk: - feat(app): session last updated time display in command pallete's search (#12376) - fix(app): localize "close tab" in command pallete (#12756) - @OpeOginni: - fix(desktop): update server removal logic to clear default server URL if removed (#12372) - feat(desktop): added Macos support for displaying only installed editors & added sublime text editor (#12501) - fix(docs-windows-wsl): update caution note for server security (#12467) - feat(desktop): add isSidecar prop to AppInterface and logic to persist sidecar server urls (#12366) - feat(desktop): persist currentSidecarUrl in state when isSidecar prop is true (#12792) - @yuvrajvirk: - fix: correct /data API usage and data format for importing share URLs (#7381) - @cooooooooooode: - fix: add directory parameter to plugin client for multi-project support (#11344) - @vglafirov: - chore(deps): bump @gitlab/gitlab-ai-provider to 3.5.0 (#12496) - @elithrar: - fix(github): handle step-start/step-finish parts in extractResponseText (#12470) - @ariane-emory: - feat(tui): restore footer to session view (#12245) - feat(tui): add Claude Code-style --fork flag to duplicate sessions before continuing (resolves #11137) (#11340) - docs(cli): add documentation for --fork flag (#12561) - @NachoFLizaur: - fix(opencode): correct prefix selection for amazon-bedrock provider in getSmallModel (#12281) - @mariamjabara: - feat: add specific system prompt for Trinity model (#12144) - @scratchmex: - feat(opencode): use reasoning summary auto for gpt-5 models that are not chat (#12502) - @dbpolito: - feat(desktop): Session Review Images (#12360) - @goniz: - fix(opencode): SessionPrompt.shell() now triggers loop if messages are queued (#10987) - @itskritix: - fix(app): keep startup script field scrollable in edit project dialog (#12431) - @abdiths: - fix(desktop): allow agent select to use full width on windows (#12428) - @yudgnahk: - fix: properly encode file URLs with special characters (#12424) - fix(app): handle Windows paths in frontend file URL encoding (#12601) - @shantur: - feat(core): Set variant in assistant messages too (#12531) - @remorses: - feat: add models.dev schema ref for model autocomplete in opencode.json (#12528) - @ProdigyRahul: - fix(app): toggle file tree and review panel better ux (#12481) - @kitlangton: - fix(app): move workspace New session into header (#12624) - fix(web): keep /share available to copy existing link (#12533) - refine(app): tighten slash autocomplete matching (#12647) - ui: default TextField copy affordance to clipboard (#12714) - fix(layout): improve workspace header truncation and item interaction (#12655) - fix(app): allow creating sessions on touch devices (#12765) - feat(app): add Cmd+[/] keybinds for session history navigation (#12880) - @ChangeHow: - feat(app): add web input focus shortcut (#12493) - @gigamonster256: - fix: revert "feat(app): add web input focus shortcut (#12493)" (#12639) - feat(nix): disable build time models.dev fetching (#12644) - feat(nix): expose overlay for downstream use (#12643) - @ryanmiville: - fix(app): respect terminal toggle keybind when terminal is focused (#12635) - @invarrow: - fix(desktop): add native clipboard image paste and fix text paste (#12682) - @jerome-benoit: - refactor(nix): use native Bun APIs and propagate errors (#12694) - fix(nix): watch scripts in nix-hashes workflow (#12818) - fix(nix): restore install script in fileset for desktop build (#12842) - @AdJIa: - fix: enable thinking for all reasoning models on alibaba-cn (DashScope) (#12772) - @fgonzalezurriola: - fix(provider): remove obsolete copilot model enablement instructions (#12739) - @sneycampos: - feat: exclude devtools from production builds (#12290) - @IsraelAraujo70: - feat(desktop): add native Wayland toggle on Linux (#11971) - @jcampuza: - fix(app): make keyboard focus visible in settings (#12612) - @BryceRyan: - fix(opencode): ACP File write should create the file if it doesn't exist (#12854) - @Hona: - fix(desktop): correct module name for linux_display in main.rs (#12862) - @surma: - fix: publish session.error event for invalid model selection (#8451) - @mcostasilva: - fix(tui): use sender color for queued messages (#12832) - @github-actions[bot]: - Update VOUCHED list - @GeneCodeSavvy: - fix: resolve homebrew upgrade requiring multiple runs (#5375) (#10118) - @riftzen-bit: - fix: use absolute paths for sidebar session navigation (#12898) - @neriousy: - test(e2e): redo & undo test (#12974)
Features
5. Februar 2026
## Core - Load user plugins after built-in plugins - Fix unhandled errors when aborting with queued messages - User plugins override built-in plugins for the same provider (@rmk40) - Move Codex 5.3 model definition to plugin to avoid showing unsupported model to other users - Add session usage tracking to ACP (@SteffenDE) - Update transforms for GPT-5.3 ## TUI - Allow mouse escape via "esc" labels in dialogs (@AksharP5) ## Desktop - Make close comment button visible in prompt input (@alexyaroshuk) - Hide prompt input when there are permissions requests or questions - More terminal stability fixes - Modified file color contrast in app for better visibility - Add button to open files in external applications - Allow toggling file tree closed independently - Stop showing SessionSkeleton on new workspace (@dbpolito) - Set workspace name earlier to improve creation and deletion (@dbpolito) **Thank you to 7 community contributors:** - @SteffenDE: - feat(acp): add session usage (#12299) - @dbpolito: - feat(desktop): Set Workspace Name Earlier to Improve Creation / Deletion (#12213) - feat(desktop): Stop Showing SessionSkeleton on New Workspace (#12209) - @alexyaroshuk: - fix(app): make close comment button visible in prompt input (#12349) - @edoedac0: - docs: add Bosnian README translation (#12341) - @ariane-emory: - docs: websearch tool (#12359) - @rmk40: - fix(plugin): user plugins override built-in plugins for same provider (#12361) - @AksharP5: - fix(tui): allow mouse escape via "esc" labels in dialogs (#11421)
Features
5. Februar 2026
## Core - Enable Claude 3.5 Sonnet (new) model support - Silently ignore proxy command failures to prevent config initialization crashes - Ensure GitHub Copilot plugin properly sets headers when used in clients other than TUI - Bundle GitLab auth plugin directly instead of dynamic install - Fix plugin installation to use direct package.json manipulation instead of bun add - Fix image reading with OpenAI-compatible providers like Kimi K2.5 (@zhming0) - Downgrade xai ai-sdk package due to errors - Revert model autocomplete feature using models.dev schema reference - Add models.dev schema reference for model autocomplete in opencode.json (@remorses) - Adjust task tool description and input to reduce tool call failures with GPT models - Wait for dependencies before loading custom tools and plugins - Allow the function to hide or show thinking blocks to be bound to a key (@ariane-emory) - Skip dependency installation in read-only configuration directories (@shantur) - Ensure Kimi for Coding plan has thinking enabled by default for k2p5 (@monotykamary) - Fixed Cloudflare Workers AI provider - Prevent random hangs in plugin installs when using HTTP proxy by adding --no-cache flag - Session errors when attachment file not found are now handled gracefully - Support remote server connections in terminal and fix GLIBC compatibility (@lucas-jo) ## TUI - Add running spinner to bash tool in TUI (@goniz) - Add hover states to question tool tabs (@maharshi365) ## Desktop - File changes not always available in app - File tree kept in sync with filesystem changes - Add Bosnian locale (@edoedac0) - Fix terminal URL handling issues - Remove extra horizontal padding around prompt input on mobile (@Brendonovich) - Refresh workspace sessions when switching projects (@neriousy) - Fixed terminal URL handling in the application - Fix terminal end-of-line handling issues - Refresh file contents when changing workspaces to prevent stale data (@ParkerSm1th) - Derive terminal WebSocket URL from browser origin instead of hardcoded localhost (@0xdsqr) - Last turn changes rendered in review pane - Safety triangle for sidebar hover to prevent menu from closing - Clear comments on prompt submission - Fix e2e test action in app - Terminal hyperlink clicks now work correctly - Fix dated e2e tests in app - Don't show scroll-to-bottom button unnecessarily - File tree not staying in sync across projects/sessions - Move session options to the session page - Add session options to app - Opened tabs follow created session - Removed compression from RPM bundle to save 15 minutes in CI (@goniz) **Thank you to 13 community contributors:** - @lucas-jo: - fix(terminal): support remote server connections and fix GLIBC compatibility (#11906) - @goniz: - fix(desktop): removed compression from rpm bundle to save 15m in CI (#12097) - feat(tui): add running spinner to bash tool in TUI (#12317) - @monotykamary: - fix: ensure kimi-for-coding plan has thinking on by default for k2p5 (#12147) - @0xdsqr: - fix(app): derive terminal WebSocket URL from browser origin instead o… (#12178) - @ParkerSm1th: - fix(desktop): Refresh file contents when changing workspaces to not have stale contents (#11728) - @shantur: - fix(core): skip dependency install in read-only config dirs (#12128) - @maharshi365: - fix(tui): add hover states to question tool tabs (#12203) - @ariane-emory: - feat: Allow the function to hide or show thinking blocks to be bound to a key (resolves #12168) (#12171) - @neriousy: - fix(app): refresh workspace sessions on project switch (#12189) - @remorses: - feat: add models.dev schema ref for model autocomplete in opencode.json (#12112) - @zhming0: - fix(opencode): Fixes image reading with OpenAI-compatible providers like Kimi K2.5. (#11323) - @Brendonovich: - app: remove extra x padding around prompt input on mobile - @edoedac0: - feat(i18n): add Bosnian locale (#12283)
Features
4. Februar 2026
## Core - Revert change that caused headers to be double merged if provider was authenticated in multiple places - Document the built-in agents - Prevent double-prefixing of Bedrock cross-region inference models (@sergical) - Prioritize OPENCODE_CONFIG_DIR for AGENTS.md (@lgladysz) ## TUI - Restore direct OSC52 support ## Desktop - Tighten up session padding-top for mobile (@DNGriffin) **Thank you to 4 community contributors:** - @lgladysz: - fix: prioritize OPENCODE_CONFIG_DIR for AGENTS.md (#11536) - @DNGriffin: - fix(app): tighten up session padding-top for mobile (#11247) - @sergical: - fix: prevent double-prefixing of Bedrock cross-region inference models (#12056) - @schaoss: - docs: add agent-compatible paths to skills documentation (#12067)
Features
4. Februar 2026
## Core - Prevent memory leaks from AbortController closures (@MaxLeiter) - Revert addition of Trinity model system prompt support - Add Trinity model system prompt support (@mariamjabara) - Add shell.env hook for manipulating environment in tools and shell (@tylergannon) - Use official ai-gateway-provider package for Cloudflare AI Gateway (@elithrar) - Allow theme colors in agent customization (@IdrisGit) - Add support for reading skills from .agents/skills directories - Provider headers from config not applied to fetch requests (@cloudyan) - Ensure MCP tools are sanitized - Add .slnx to C#/F# LSP root detection (@workedbeforepush) - Improve skills system with better prompting, fix permission requests after skill invocation, and ensure agents can locate scripts and resources - Exclude k2p5 from reasoning variants (@neavo) - Handle nested array items for Gemini schema validation (@mugnimaestra) - Plugins are always reinstalled (@neriousy) - Strip properties and required fields from non-object types in Gemini schema (@ChickenBreast-ky) - Make CLI run command non-interactive ## TUI - Add --thinking flag to show reasoning blocks in run command - Always fall back to native clipboard after OSC52 (@MartinWie) ## Desktop - Faster end-to-end tests (@neriousy) - Update command palette placeholder text - Model selector truncating too soon - Improve spacing in application UI - Allow empty prompt with review comments in desktop (@dbpolito) - Fixed terminal serialization bug in app - Don't force mount tooltips in the app - Restore previously opened session tabs on app restart (@ProdigyRahul) - Edit project dialog icon now shows on hover (@ProdigyRahul) - Move session search to command palette - Fix custom providers overflow in app (@DNGriffin) **Thank you to 18 community contributors:** - @ChickenBreast-ky: - fix(provider): strip properties/required from non-object types in Gemini schema (#11888) - @neriousy: - fix(core): plugins are always reinstalled (#9675) - refactor(e2e): faster tests (#12021) - @DNGriffin: - fix(app): custom providers overflow (#11252) - @ProdigyRahul: - fix(app): edit project dialog icon on hover (#11921) - fix(app): session tabs to open the previous opened (#11914) - @luiz290788: - docs: add --mdns-domain flag documentation (#11933) - @dbpolito: - feat(desktop): Allow empty prompt with review comments (#11953) - @mugnimaestra: - fix: handle nested array items for Gemini schema validation (#11952) - @neavo: - fix: exclude k2p5 from reasoning variants (#11918) - @workedbeforepush: - feat: Add .slnx to C#/F# LSP root detection (#11928) - @cloudyan: - fix: provider headers from config not applied to fetch requests (#11788) - @MartinWie: - fix: always fall back to native clipboard after OSC52 (#11994) - @IdrisGit: - docs: add missing environmental flags to the list (#11146) - feat(tui): allow theme colors in agent customization (#11444) - @elithrar: - fix(opencode): use official ai-gateway-provider package for Cloudflare AI Gateway (#12014) - @tylergannon: - feat(plugin): add shell.env hook for manipulating environment in tools and shell (#12012) - @tlinhart: - docs: fix logging example for plugin (#11989) - @Evren-os: - docs: fix grammar and formatting in README (#11985) - @mariamjabara: - feat: add Trinity model system prompt support (#12025) - @MaxLeiter: - fix: prevent memory leaks from AbortController closures (#12024)
Features
3. Februar 2026
## Core - Revert pull request that was mistakenly merged - Add --mdns-domain flag to customize mDNS hostname (@luiz290788) - Added and deleted file status now correctly calculated in app - Add User-Agent header for GitLab AI Gateway requests (@vglafirov) - Add Ormolu code formatter for Haskell (@mimi1vx) - Use OpenTUI OSC52 clipboard implementation - Convert system message content to string for Copilot provider (@jogi47) - Give OPENCODE_CONFIG_CONTENT proper priority for setting config based on docs (@OpeOginni) - Fixed session title generation with OpenAI models (@oomathias) - Simplify directory tree output for prompts - Fix task status to show current tool state from message store - Allow starting new sessions after errors by fixing stuck session status - Adjust resolve parts to properly order tool calls when messages contain multiple @ references - Hide badge for builtin slash commands - Add workspace tests to the app (@neriousy) - Send custom agent prompts as developer messages instead of user messages when using Codex subscriptions - Fixed variant logic for Anthropic models through OpenAI compatibility endpoint - Add prompt caching support for Claude Opus on AWS Bedrock (@rgodha24) - Scope agent variant to model (@neavo) - Prevent duplicate AGENTS.md injection when reading instruction files (@code-yeongyu) - OpenCode no longer hangs when using client.app.log() during initialization (@desmondsow) - Remove outer backtick wrapper in session transcript tool formatting (@zerone0x) - Allow user plugins to override built-in auth plugins (@JosXa) - Binary file handling in file view (@alexyaroshuk) - Ensure switching Anthropic models mid-conversation works without errors and fix reasoning opaque not being picked up for Gemini models - Fix issue where folders and files starting with "." could not be mentioned with @ - Show actual retry error message instead of generic error message - Use process.env directly for runtime environment mutations in provider (@jerome-benoit) - Add reasoning variants support for SAP AI Core (@jerome-benoit) - Add UTF-8 encoding defaults for Windows PTY (@01luyicheng) ## TUI - Respect terminal transparency in system theme (@pablopunk) - Truncate session title in exit banner to prevent display overflow - Show exit message banner in TUI - Add spinner animation for Task tool - Correct pluralization of match count in grep and glob tools (@adamjhf) - Remove extra padding between search and results in dialog-select - Add UI for skill tool in session view - Conditionally render bash tool output in TUI - Add skill dialog for selecting and inserting skills - Enable password authentication for remote session attachment - Fix documentation issues (@lailoo) - Revert skill slash commands feature - Add skill slash commands to the app ## Desktop - Fix prompt input overflow issue in app (@neriousy) - Sidebar losing projects on collapse has been fixed - Add workspace toggle command to command palette and prompt input (@alexyaroshuk) - Search through sessions - Standardize icon sizes in the application - Navigate to last project on open - User messages not rendering consistently - Add project context menu on right-click - Open project search in app (@neriousy) - Add tab close keybind to app (@ProdigyRahul) - Enhance responsive design with additional breakpoints for larger screen layout adjustments (@OpeOginni) - Add keyboard shortcuts for navigating between unread sessions (@Brendonovich) - Fix Rust build and bindings formatting in desktop application (@Brendonovich) - Remove unnecessary setTimeout in desktop app (@Brendonovich) - Throttle window state persistence in desktop application (@Brendonovich) - Integrate tauri-specta for desktop application (@Brendonovich) - Keep macOS titlebar stable under zoom (@Brendonovich) - Kill zombie server process on startup timeout (@heyitsmohdd) - Show skill and MCP badges for slash commands - Use static language names in Thai localization (@alexyaroshuk) - Add tests for general settings, shortcuts, providers and status popover (@neriousy) - Fixed session header 'share' button to hug content (@alexyaroshuk) **Thank you to 29 community contributors:** - @alexyaroshuk: - fix(app): session header 'share' button to hug content (#11371) - fix(app): use static language names in Thai localization (#11496) - fix(app): binary file handling in file view (#11312) - feat(app): add workspace toggle command to command palette and prompt input (#11810) - @01luyicheng: - fix(pty): Add UTF-8 encoding defaults for Windows PTY (#11459) - docs: improve zh-TW punctuation to match Taiwan usage (#11574) (#11589) - @jerome-benoit: - feat(opencode): add reasoning variants support for SAP AI Core (#8753) - fix(nix): restore native runners for darwin hash computation (#11495) - fix(provider): use process.env directly for runtime env mutations (#11482) - fix(ci): portable hash parsing in nix-hashes workflow (#11533) - @lailoo: - docs: fix documentation issues (#11435) - @neriousy: - test(app): general settings, shortcuts, providers and status popover (#11517) - fix(app): rendering question tool when the step are collapsed (#11539) - fix(app): show retry status only on active turn (#11543) - docs: prefer wsl over native windows stuff (#11637) - test(app): workspace tests (#11659) - fix(app): open project search (#11783) - fix(app): prompt input overflow issue (#11840) - @adamjhf: - fix: correct pluralization of match count in grep and glob tools (#11565) - @AlperKartkaya: - docs: add Turkish README translation (#11524) - @JosXa: - fix: allow user plugins to override built-in auth plugins (#11058) - @AxelMrak: - fix(ecosystem): fix link Daytona (#11621) - @zerone0x: - fix(tui): remove outer backtick wrapper in session transcript tool formatting (#11566) - @desmondsow: - fix: opencode hanging when using client.app.log() during initialization (#11642) - @code-yeongyu: - fix: prevent duplicate AGENTS.md injection when reading instruction files (#11581) - @neavo: - fix(opencode): scope agent variant to model (#11410) - @gigamonster256: - fix(desktop): nix - add missing dep (#11656) - @rgodha24: - fix: prompt caching for opus on bedrock (#11664) - @sum2it: - docs (web): Update incorrect Kimi model name in zen.mdx (#11677) - @aaroniker: - feat(ui): Select, dropdown, popover styles & transitions (#11675) - feat(ui): Smooth fading out on scroll, style fixes (#11683) - @oomathias: - fix: session title generation with OpenAI models. (#11678) - @OpeOginni: - fix(opencode): give OPENCODE_CONFIG_CONTENT proper priority for setting config based on docs (#11670) - fix(desktop): added inverted svg for steps expanded for nice UX (#10462) - feat(app): enhance responsive design with additional breakpoints for larger screen layout adjustments (#10459) - @jogi47: - fix: convert system message content to string for Copilot provider (#11600) - @heyitsmohdd: - fix(desktop): kill zombie server process on startup timeout (#11602) - @Brendonovich: - fix(desktop): keep mac titlebar stable under zoom (#11747) - chore(desktop): integrate tauri-specta (#11740) - fix(desktop): throttle window state persistence (#11746) - fix(desktop): remove unnecessary setTimeout - desktop: fix rust build + bindings formatting - feat(app): unread session navigation keybinds (#11750) - @ldelelis: - fix(ui): adjusts alignment of elements to prevent incomplete scroll (#11649) - @sam-huckaby: - Fix(app): the Vesper theme's light mode (#9892) - @mimi1vx: - feat(opencode): ormolu code formatter for haskell (#10274) - @ProdigyRahul: - feat(app): add tab close keybind (#11780) - @vglafirov: - feat(provider): add User-Agent header for GitLab AI Gateway requests (#11818) - @pablopunk: - fix(tui): respect terminal transparency in system theme (#8467) - @luiz290788: - feat(server): add --mdns-domain flag to customize mDNS hostname (#11796)
Features
31. Januar 2026
## Core - Sync changes - Allow specifying custom models file path via OPENCODE_MODELS_PATH environment variable - Ensure models configuration is not empty before loading - Make skills invokable as slash commands in the TUI - Don't follow symbolic links by default in grep and ripgrep operations - Prevent parallel test runs from contaminating environment variables - Ensure Mistral ordering fixes also apply to Devstral - Add Copilot-specific provider to properly handle reasoning tokens (@SteffenDE) - Respect OPENCODE_MODELS_URL environment variable in build process (@bbartels) - Use snake_case for thinking parameter with OpenAI-compatible APIs (@Chesars) - Bump AI SDK packages - Ensure ask question tool isn't included when using acp - Handle redirected statement treesitter node in bash permissions (@pschiel) - Remove special case handling for Google Vertex Anthropic provider in response generation (@MichaelYochpaz) - Exclude chat models from textVerbosity setting ## Desktop - Revert transitions, spacing, scroll fade, and prompt area updates - Add session actions tests (@neriousy) - Refactored tests and added project tests (@neriousy) **Thank you to 7 community contributors:** - @neriousy: - refactor(app): refactored tests + added project tests (#11349) - test(app): session actions (#11386) - @MichaelYochpaz: - refactor(provider): remove google-vertex-anthropic special case in ge… (#10743) - @pschiel: - fix: handle redirected_statement treesitter node in bash permissions (#6737) - @IdrisGit: - docs: update agents options section to include color and top_p options (#11355) - @Chesars: - fix(provider): use snake_case for thinking param with OpenAI-compatible APIs (#10109) - @bbartels: - feat(build): respect OPENCODE_MODELS_URL env var (#11384) - @SteffenDE: - feat(opencode): add copilot specific provider to properly handle copilot reasoning tokens (#8900)
Features
30. Januar 2026
## Core - I need to see the actual commit message to summarize it. Could you please provide the commit message you'd like me to summarize for the changelog entry?
Features
30. Januar 2026
## Core - Remove unused experimental keys from TUI (@IdrisGit) - Add continuous integration configuration - Remove AI SDK middleware that was preventing think blocks from being sent back as assistant message content ## Desktop - Change language test in app (@neriousy) - Add transitions, spacing improvements, scroll fade effects, and prompt area updates (@aaroniker) **Thank you to 3 community contributors:** - @aaroniker: - feat: Transitions, spacing, scroll fade, prompt area update (#11168) - @neriousy: - test(app): change language test (#11295) - @IdrisGit: - chore(tui): remove unused experimental keys (#11195)
Features
29. Januar 2026
## Core - Revert to Anthropic completions endpoint to avoid rate limiting issues with copilot - Fix frontmatter adding newlines causing invalid model IDs - Ensure that Kimi doesn't have fake variants available - Add sequential numbering for forked session titles (@ariane-emory) ## TUI - Add additional timeout race condition guards - Guard destroyed input field in timeout callback - Include cache tokens in CLI statistics (@bold84) **Thank you to 2 community contributors:** - @bold84: - feat(cli): include cache tokens in stats (#10582) - @ariane-emory: - feat: Sequential numbering for forked session titles (Issue #10105) (#10321)
Features
29. Januar 2026
## Core - Ensure variants for Copilot models work with maxTokens being set - Fixed maxOutputTokens being accidentally hardcoded to undefined which caused kimi-k2.5 issues on some inference providers (@ideallove) - Include provider ID in SDK cache key to prevent cache collisions (@saba-ch) - Allow media-src data: URL for small audio files in Content Security Policy (@tanapok) - Update experimental environment variables in CLI documentation (@bbabou) - Add `ctx.abort` to grep tool - Add AbortSignal support to Ripgrep.files() and GlobTool (@goniz) ## Desktop - Make settings more responsive for mobile and small web/desktop (@DNGriffin) - Fixed type errors in app package (@Brendonovich) - Auto scroll to file tabs on open and enable mouse wheel scrolling (@alexyaroshuk) - Remove duplicate keys causing TypeScript failures (@eXamadeus) - Normalize Chinese punctuation for Chinese UI (@MaxMiksa) - Fill missing Chinese translation keys to avoid English fallback (@MaxMiksa) - Fix alignment and padding in dialogs (@alexyaroshuk) **Thank you to 12 community contributors:** - @R44VC0RP: - fix(script): remove highlights template from release notes (#11052) - @zerone0x: - fix(ui): allow KaTeX inline math to be followed by punctuation (#11033) - @alexyaroshuk: - fix(app): alignment and padding in dialogs (#10866) - fix(app): file tabs - auto scroll on open & scroll via mouse wheel (#11070) - @MaxMiksa: - fix(app): fill missing zh keys to avoid English fallback (#10841) - fix(opencode): normalize zh punctuation for Chinese UI (#10842) - fix(ui): improve zh duration display formatting (#10844) - @goniz: - fix(opencode): add `AbortSignal` support to `Ripgrep.files()` and `GlobTool` (#10833) - @eXamadeus: - fix(typescript errors): remove duplicate keys causing typescript failures (#11071) - @Brendonovich: - fix(app): types - @bbabou: - docs: update experimental environment variables in CLI docs (#11030) - @DNGriffin: - fix(app): make settings more responsive for mobile and small web/desktop (#10775) - @tanapok: - fix(opencode): allow media-src data: URL for small audio files (#11082) - @saba-ch: - fix(provider): include providerID in SDK cache key (#11020) - @ideallove: - fix: maxOutputTokens was accidentally hardcoded to undefined (#10995)
Features
28. Januar 2026
## Core - Add SubtaskPart with metadata reference (@YangTianz) - Add global configuration support to app - Global configuration updates in app package - Bump plugins ## TUI - Add streaming prop to markdown element (@remorses) ## Desktop - Close review pane when pressing escape key - Enable ctrl+n and ctrl+p for popover navigation in desktop app (@sairajchouhan) - Add Thai locale support (@natt-v) - Add custom provider support to app **Thank you to 4 community contributors:** - @natt-v: - feat(i18n): add th locale support (#10809) - @sairajchouhan: - fix(desktop): enable ctrl+n and ctrl+p for popover navigation (#10777) - @YangTianz: - fix: add SubtaskPart with metadata reference (#10990) - @remorses: - fix(markdown): Add streaming prop to markdown element (#11025)
Features
28. Januar 2026
## Core - Prevent AGENTS.md from being loaded multiple times during parallel tool execution - Bump plugin version - Ensure unsubscribe from PartUpdated is always called in TaskTool (@goniz) - Restore brand integrity of CLI wordmark (@mynameistito) - Add experimental OpenTUI markdown component to app (@remorses) **Thank you to 4 community contributors:** - @remorses: - feat(app): use opentui markdown component behind experimental flag (#10900) - @jamesmurdza: - docs: add Daytona OpenCode plugin to ecosystem (#10917) - @mynameistito: - fix(cli): restore brand integrity of CLI wordmark (#10912) - @goniz: - fix(opencode): ensure unsub(PartUpdated) is always called in TaskTool (#9992)
Features
28. Januar 2026
## Core - Support headless authentication for ChatGPT/Codex (@rgodha24) - Add recommended topP and temperature settings for Kimi K2.5 model - Adjust retry check to be more defensive - Handle Venice cache creation tokens (@dpuyosa) - Add worktree to plugin tool context - Expose Instance.directory to custom tools - Use Instance.directory instead of process.cwd() in read tool - Fix reactive file tree to properly update when files change - Attach Anthropic beta headers when using Messages API for Copilot - Add retry logic to handle certain provider problems - Ensure OpenAI 404 errors are retried (@tim-smart) - Use Anthropic-compatible messages API for Anthropic models through Copilot - Upgrade OpenTUI to v0.1.75 - Dynamically resolve AGENTS.md files from subdirectories as agent explores them - Add agent description to OpenCode (@SteffenDE) - Fix query selector handling of non-Latin characters - Await SessionRevert.cleanup for shell to prevent race conditions (@noamzbr) - Don't override source in custom provider loaders - Add provider settings to app - Run start command after reset in app - Remove log statement ## TUI - Handle 4-5 digit codes in copy logic - Make diff wrapping toggle always available in command list and fix type error (@ariane-emory) - Add visual feedback for diff wrap and conceal toggles (@IdrisGit) - Adjust TUI syncing logic to prevent agents from being undefined or missing - Remove broken app.tsx command option - Move animations toggle to global System category (@ariane-emory) ## Desktop - Reintroduce review tab in app - Auto-scroll to keep relevant content in view - Add 'connect provider' button to the manage models dialog (@alexyaroshuk) - Fix terminal corruption issue in app - File tree not always loading in app - Fix outdated e2e test in app package - Do not auto-navigate to last project on app load - Add Tauri localization support to desktop application - Add internationalization support for Tauri desktop application - Better memory management in app - Don't connect to localhost through VPN - Show 5 highlights in app - Highlight selected change in the app - Set filetree padding to 6px - Align file tree change styling - Delay navigation tooltips - Adjust titlebar left spacing - Shorten navigation tooltips - Add filetree tooltips with diff labels - Color file tree change dots by diff kind - Improved app layout - Fix session diffs not always loading in app - New end-to-end smoke tests for app - Add translations to the app - Update settings in general settings - Swallow file search errors in app - Fix tooltips causing getComputedStyle errors in model select - Clean up Tailwind CSS versus pure CSS usage in app - Navigate to tabs when opening file in app - Open markdown links in external browser - Shared terminal ghostty-web instance for better performance - Cleanup connect provider timers - Don't keep parts in memory - Don't show session skeleton after workspace reset - Add max-width to tabs with text truncation - Use smaller close icon on tabs to match comment cards - Only show left border on plus button when sticky - Update review empty states to 14px font size and align select file empty state - Center file tree empty state with 32px top margin - Implement non-fatal error handling in app - Fix agent fallback colors in app - Added forward and back navigation buttons - Add missing tooltips in app - Auto-scroll button sometimes sticks in the app - Deduplicate Tauri configuration files (@Brendonovich) - Only show files in select dialog when clicking + tab - Disable magnification gestures on macOS desktop (@ysm-dev) - Add Connect provider in model selector (@ProdigyRahul) - Add file tree specification tests - Enable file watcher in app - Improve file tree performance in app - Add highlights feature - Add new release modal - Fix Zen mode disconnect not working in app - Disconnect Zen provider - Fix e2e test in app package - Disable tooltips in file tree tabs - Move file tree toggle button to the right side - Fade filetree guide lines on hover - Dim non-deep filetree guide lines in the app interface - Reduce file tree folder indent - Refine file tree row spacing and indentation - Use medium font weight for filetree items - Use chevron icons for filetree folders - Tighten file tree row spacing - Adjust filetree panel padding - Scope filetree pill tabs styling - Add Vercel AI Gateway provider description - Add provider descriptions to settings - Add transition to command palette - Add transition to select provider dialog - Add optional transition animations to dialog - Style view all button with interactive color and margin - Add models icon and use in settings UI - Add providers icon and use in settings - Use default cursor for environment provider text - Add hover text for environment-connected providers - Set provider row height to 56px - Update button styles and disconnect button size in UI - Fix session synchronization issue in application - Add missing i18n strings in app - Add session load limit to prevent excessive memory usage - Add end-to-end test for sidebar navigation - Replace signals with createStore in app - Add file tree mode to app - Add file tree view to app - Use focus-visible instead of focus to prevent sticky hover effect on click (@ProdigyRahul) - Better sidebar hover behavior when collapsed - Make sidebar full-height in app - Add full-height hover effect to sidebar - Add model settings to application - Add model settings interface to app - Handle non-tool call permissions in app - Default servers on web - Performance improvements in the app - Add missing translations for status messages - Don't allow workspaces in non-VCS projects **Thank you to 17 community contributors:** - @MartinWie: - docs: fix permission event name (permission.asked not permission.updated) (#10588) - @ariane-emory: - fix(tui): Move animations toggle to global System category (resolves #10495) (#10497) - fix: Make diff wrapping toggle always available in command_list and correct a type error (resolves #10682) (#10683) - @R44VC0RP: - Add highlight tag parsing for changelog with video support - Add collapsible sections, sticky version header, and style refinements for changelog highlights - fix(web): update spacing on the changelog page - docs: add warning about Claude Pro/Max subscription support (#10595) - fix: move changelog footer outside content div to fix padding (#10712) - fix: add 44px top padding to sticky version header on changelog (#10715) - feat(release): add highlights template to draft releases (#10745) - feat: add /learn command to extract session learnings to scoped AGENTS.md files (#10717) - @IdrisGit: - fix(tui): add visual feedback for diff wrap and conceal toggles (#10655) - @noamzbr: - fix: await SessionRevert.cleanup for shell (#10669) - @SteffenDE: - feat(opencode): add agent description (#10680) - @sam-huckaby: - fix(app): Order themes alphabetically (#10698) - @alexyaroshuk: - fix(app): restore external link opening in system browser (#10697) - feat(app): add 'connect provider' button to the manage models dialog (#10887) - @ProdigyRahul: - fix(ui): use focus-visible instead of focus to prevent sticky hover effect on click (#10651) - fix(app): add connect provier in model selector (#10706) - @zerone0x: - fix(enterprise): add message navigation to share page desktop view (#10071) - @tim-smart: - fix: ensure openai 404 errors are retried (#10590) - @fabiomartino: - docs: add Italian README (#10732) - @ysm-dev: - fix(desktop): disable magnification gestures on macOS (#10605) - @Brendonovich: - desktop: deduplicate tauri configs - @dpuyosa: - feat(opencode): Handle Venice cache creation tokens (#10735) - @OpeOginni: - chore(docs): Better explanation on how to allow tools in external directories (#10862) - @rgodha24: - feat: support headless authentication for chatgpt/codex (#10890)
Features
25. Januar 2026
## Core - Enable thinking for Google Vertex Anthropic models (@MichaelYochpaz) - Make question validation more lax to avoid tool call failures ## TUI - Prevent crash when theme search returns no results (@ishaksebsib) ## Desktop - Visual cleanup in app - Scroll to comment on click in app - Fixed crash when no default model is set - Performance improvements in the app package - Clean up comment component usage in app **Thank you to 5 community contributors:** - @MichaelYochpaz: - fix(provider): enable thinking for google-vertex-anthropic models (#10442) - @ProdigyRahul: - fix(app): cursor on resize (#10293) - @DNGriffin: - fix(app): mobile horizontal scrolling due to session stat btn (#10487) - @ishaksebsib: - fix(tui): prevent crash when theme search returns no results (#10565) - @R44VC0RP: - fix(web): add & fix the download button (#10566)
Features
25. Januar 2026
## Core - Add tests - Sync changes from upstream - Fix models snapshot loading to prevent caching issues - Fix Nix configuration - Fix unicode filename handling in snapshot diff by disabling quote escaping - Deep merge providerOptions in applyCaching to preserve nested configuration (@zerone0x) - Construct apply_patch metadata before requesting permission in web interface (@brittlewis12) - Remove models.dev macro - Tell the model what model it is in the environment section of the prompt - Retry web fetch with simple user agent on 403 errors (@Arasple) - Allow GPT-5.1-Codex model in Codex auth plugin (@Danztee) - Bump gitlab-ai-provider version (@vglafirov) - Add model information as part of task metadata (@shantur) - Add xhigh reasoning effort for GitHub Copilot GPT-5 models (@Arthur742Ramos) - Normalize path separators for session diff filtering on Windows (@alexyaroshuk) - Faster workspace creation ## TUI - Fix question selection click when terminal is unfocused (@maharshi365) - Use min/maxHeight for question textarea - Permission prompt should ignore keyboard events while dialog stack length is greater than zero (@justfortheloveof) - Use selectedForeground for question prompt tab text visibility (@ariane-emory) - Always center selected item in selection dialogs (@ariane-emory) ## Desktop - Fix submit button state in app - Fix unnecessary suspense flash in app - Add active state to comment cards in prompt input - Fix type error - Terminal clone needs remount to function properly - Remove terminal connection error overlay - Remove space between ellipsis and truncated text in comment card tooltip - Update status popover empty state text color and centering - Prevent focus on share popover text field - Add link icon and use it for copy-to-clipboard buttons in UI - Adjust share popover position 64px to the left - Update share popover gutter to 6px and radius to match status dropdown - Add 8px spacing between share button and icon buttons in titlebar - Replace Popover with DropdownMenu for server options in app - Update options icon button styling with improved active state and hover effects - Change server item actions div padding from px-4 to pl-4 - Add onFilter callback to List component and hide add server row during search - Position status circle inside input wrapper and fix dialog padding - Remove hover background color from server list items - Allow add server row to grow for error messages in app - Update add server button and row styling in app - Update manage servers dialog styling and behavior - Add truncation tooltip to server items in status popover - Update server and MCP item styles in status popover - Update status popover styling and positioning - Use 4px border radius (rounded-sm) consistently in app components - Update titlebar spacing and status popover styling in app - Enable submit button when comment cards are present in app - Add back button in subagent sessions (@tomzhu1024) - Model select dropdown not closing when pressing Escape key - Improve model selector user experience - Fix inability to select text when creating a new session - Fix scrolling in unpaid model selector - Fix Adam integration issue - Add critical shadow for comment input validation and set editor popover radius to 14px - Improve comment popover with better error styling and click-outside detection - Change prompt placeholder based on comment count in app - Adjust prompt container padding to 16px on bottom and horizontal sides - Adjust prompt input positioning to 12px from bottom and right edges, remove session panel bottom padding - Add escape/click-away to close read-only comment popovers, 10px radius, and remove 'Click to view context' text - Don't use findLast in app package - Add state to pause existing audio for demo menus and add support for audio controls (@jcampuza) - Implement new server management for web and desktop (@OpeOginni) - New workspace appears expanded and at the top of the list - Missing translations in app - Better error screen when connecting to sidecar - Fix line selection issues in the app - Fixed reactive loops in the app - Better session stream rendering performance - Add Iosevka as a font choice in desktop app (@ariane-emory) - Always close hovercard when view-sessions is clicked (@DNGriffin) - Close comment input popover on Escape key or click away - Use shadow-lg-border-base on read-only comment popovers and align label spacing - Remove border from comment input popover - Position read-only comment popover below icon with 4px gutter - Style comment popovers with 14px radius, move label below comment, and adjust text colors and sizes - Move filename and line count below comment text in popovers - Add tooltip with path, 6px spacing before close icon, and reduce filename truncation to 14 characters in editor tabs - Add middle truncation for filename in comment card - Truncate filename from start to show end of path in the app - Remove gap between filename and comment in comment card - Add shadow-xs-border with hover state to comment card - Fix comment card styling with 48px height, 2px gap, and truncated filename while preserving line count visibility - Increase comment font size to 12px in the app - Add 8px gap before close icon and truncate long filenames in app - Keep close icon in top right of comment card - Add transition-all to comment card hover states - Add close-small icon and use it for comment card dismiss button - Truncate comment text and set card max-width to 200px in app - Indent comment text to align with filename in context card - Style submitted comment icons to match comment popup style - Update prompt input styling with refined borders, hover states, and spacing - Update context cards styling with 8px padding/gap and 6px border radius - Add button-primary-base variable and use primary variant for Comment button - Improve comment popup styling and add new comment icon - Center checkbox indicator in provider selection (@ProdigyRahul) - Auto-open OAuth links for Codex and Copilot (@edoedac0) - Close delete workspace dialog immediately - Don't remount directory layout in app for better performance - Reapply work in progress changes for line selection feature in app - Revert line selection work in progress - Fix view all sessions flakiness in app (@DNGriffin) **Thank you to 18 community contributors:** - @ProdigyRahul: - fix(app): enable dialog dismiss on model selector (dialog.tsx) (#10203) - fix(app): center checkbox indicator in provider selection (#10267) - fix(app): tooltip text in light mode to use inverted neutral scale (#9786) - fix(app): markdown rendering with morphdom for better dom functions (#10373) - @DNGriffin: - fix(app): View all sessions flakiness (#10149) - fix(app): Fix plan mode btn keyboard a11y issues (#10330) - fix(app): Always close hovercard when view-sessions clicked (#10326) - @shantur: - docs(ecosystem): Add CodeNomad entry to ecosystem documentation (#10222) - feat(tasks): Add model info as part of metadata (#10307) - @edoedac0: - feat(app): auto-open oauth links for codex and copilot (#10258) - @ariane-emory: - feat: always center selected item in selection dialogs (resolves #10209) (#10207) - feat(desktop): add Iosevka as a font choice (resolves #10103) (#10347) - fix(tui): Use selectedForeground for question prompt tab text visibility (resolves #10334) (#10337) - @alexyaroshuk: - fix(app): normalize path separators for session diff filtering on Windows (#10291) - @Arthur742Ramos: - fix: add xhigh reasoning effort for GitHub Copilot GPT-5 models (#10092) - @vglafirov: - fix: bump gitlab-ai-provider version (#10255) - @Danztee: - fix: allow gpt-5.1-codex model in codex auth pluginFixes (#10181) - @Arasple: - fix: retry webfetch with simple UA on 403 (#10328) - @neriousy: - feat(docs): add a desktop troubleshooting guide (#10397) - @justfortheloveof: - fix: permission prompt should ignore keyboard events while dialog stack len > 0 (#10338) - @brittlewis12: - fix(web): construct apply_patch metadata before requesting permission (#10422) - @OpeOginni: - feat(web): implement new server management for web and desktop (#8513) - @zerone0x: - fix(provider): deep merge providerOptions in applyCaching (#10323) - @jcampuza: - fix: add state to pause existing audio for demo menus, add support fo… (#10428) - @maharshi365: - fix(opentui): question selection click when terminal unfocused (#9731) - @tomzhu1024: - feat(app): back button in subagent sessions (#10439)
Features
23. Januar 2026
## Desktop - Fixed a reactive feedback loop in the global project cache sync (@Eric-Guo) - Add line selection functionality to the app **Thank you to 1 community contributor:** - @Eric-Guo: - fix(desktop): Fixed a reactive feedback loop in the global project cache sync (#10139)
Features
23. Januar 2026
## Core - Add thinking presets for Google Vertex Anthropic provider (@zerone0x) - Added support for OpenAI-based GitLab Duo models (@vglafirov) - Show file path in apply_patch request permission screen (@iltenahmet) ## TUI - Add weight to fuzzy search to maintain title priority in TUI (@IdrisGit) ## Desktop - Session shouldn't be keyed - Flash of fallback icon for projects fixed - Fix project icon color flash on load - Fixed folder suggestions missing last part in path completion - Allow adding projects from any directory depth - Allow adding projects from root directory in the app - Non-git projects can now be renamed - Add app version display to settings (@alexyaroshuk) **Thank you to 5 community contributors:** - @iltenahmet: - fix(ui): show file path in apply_patch request permission screen (#10079) - @alexyaroshuk: - feat(app): add app version display to settings (#10095) - @IdrisGit: - fix(tui): add weight to fuzzy search to maintain title priority (#10106) - @vglafirov: - feat(gitlab): Added support for OpenAI based GitLab Duo models (#10108) - @zerone0x: - fix(provider): add thinking presets for Google Vertex Anthropic (#9953)
Features
22. Januar 2026
<highlight source="Desktop"> <h2>Multi-Language Support</h2> <p short="OpenCode Desktop now available in 14 languages."> OpenCode Desktop now available in 14 languages. </p> https://github.com/user-attachments/assets/e5d612cf-20fc-4d55-824d-7f66b9733da2 </highlight> ## Core - Revert handling of special characters in paths and git snapshot reading logic - Revert snapshot regression fix - Ensure cat command triggers external directory permission check in Bash tool - Print MCP stderr to OpenCode log file (@karta0807913) - Write refresh tokens to OpenAI auth in Codex (@CasualDeveloper) - Add workspace startup script to projects - Ensure images are properly returned as tool results - Rename `setSessionModel` to `unstable_setSessionModel` in ACP (@maxious) - Correct spelling of 'supercedes' to 'supersedes' (@luojiyin1987) - Add prompt cache key support for Venice provider (@dpuyosa) - Include noop tool in activeTools for LiteLLM proxy compatibility (@danielfrg) ## TUI - Allow remote directory specification in attach command (@gricha) ## Desktop - Add Brazilian Portuguese locale support (@ygorsimoes) - Make 'Learn More' link functional in theme settings (@LAG-4) - Render images in session review - Fix Windows path handling in app tests - Fix new session button in app - Add translations support to app - Delete sessions - Close projects from hover card - Don't auto-navigate to workspace after reset - Expand font stacks to include macOS Nerd Font default names (@bewareoftheleopard) - Clear session hover state on navigation (@kyashrathore) - Correct NO_PROXY environment variable syntax in desktop application (@Brendonovich) - Improve desktop connection reliability (@Brendonovich) - Add terminal smoke test to app test suite - Add file viewer smoke test - Add model picker smoke test - Add smoke test for @ attachment functionality - Add slash command smoke tests to app - Settings smoke tests - Fix type error in codebase - Fix TypeScript satisfies operator usage - Fix hover card scrolling behavior - Auto-scroll to bottom when new messages arrive - Add scrollbar styling to session page (@alexyaroshuk) - Add support for Norwegian translations (@Finityno) - Snap to bottom when user submits a prompt - Add accessibility translations to the app - Change project path tooltip position to bottom in desktop app (@ProdigyRahul) - Session screen accessibility improvements (@ndarilek) - Move markdown rendering to Rust in desktop app (@nexxeln) - Add 8px left margin to sidebar toggle on desktop - Match terminal toggle button size with sidebar and review toggles - Update jump to latest button with circular design and animation - Add Arabic language support (@NourEldin-Osama) - Always show Toggle-Review button in app (@DNGriffin) - Open terminal pane when creating new terminal (@kearns-cu) **Thank you to 24 community contributors:** - @R44VC0RP: - fix: scope PR recap to only PRs from today (#9905) - @danielfrg: - fix: include _noop tool in activeTools for LiteLLM proxy compatibility (#9912) - @dpuyosa: - feat: Add promptCacheKey for Venice provider (#9915) - @kearns-cu: - fix(app): open terminal pane when creating new terminal (#9926) - @luojiyin1987: - fix: correct spelling 'supercedes' to 'supersedes' (#9935) - @maxious: - fix(acp): rename setSessionModel to unstable_setSessionModel (#9940) - @IdrisGit: - docs: add API server section in CONTRIBUTING.md (#9888) - @DNGriffin: - feat(app): always show Toggle-Review button (#9944) - @NourEldin-Osama: - feat(i18n): add Arabic language support (#9947) - @nexxeln: - refactor(desktop): move markdown rendering to rust (#10000) - @ndarilek: - fix(app): session screen accessibility improvements (#9907) - @ProdigyRahul: - fix(desktop): change project path tooltip position to bottom (#9497) - @Finityno: - feat: Add support for Norwegian translations (#10018) - @alexyaroshuk: - feat(app): add scrollbar styling to session page (#10020) - fix(ui): prevent copy buttons from stealing focus from prompt input (#10084) - @Brendonovich: - fix(desktop): attempt to improve connection reliability - fix(desktop): correct NO_PROXY syntax - @kyashrathore: - fix(app): clear session hover state on navigation (#10031) - @ryanmiville: - fix(app): support ctrl-n/p in lists (#10036) - @bewareoftheleopard: - fix(desktop): Expand font stacks to include macOS Nerd Font default names (#10045) - @CasualDeveloper: - fix(codex): write refresh tokens to openai auth (#10010) (#10011) - @karta0807913: - feat(mcp log): print mcp stderr to opencode log file (#9982) - @LAG-4: - fix: make 'Learn More' link functional in theme settings (#10078) - @shubh73: - feat(ui): add aura theme (#10056) - @ygorsimoes: - feat(i18n): add br locale support (#10086) - @gricha: - fix(attach): allow remote --dir (#8969)
Features
22. Januar 2026
## Core - Mark subagent sessions as agent-initiated to exclude them from quota limits - Add chat.headers hook and update codex and copilot plugins to use it (thanks to @ananas-viber for catching) ## TUI - Add Gruvbox theme to Web and App (@swolg) ## Desktop - Add Traditional Chinese language support and rename Chinese to Chinese (Simplified) (@alexyaroshuk) - Add Russian language support (@alexyaroshuk) - Polish translations in app (@neriousy) **Thank you to 4 community contributors:** - @neriousy: - feat(app): polish translations (#9884) - @alexyaroshuk: - feat(i18n): add Russian language support (#9882) - feat(i18n): add Traditional Chinese language support & rename 'Chinese' to 'Chinese (Simplified)' (#9887) - @swolg: - feat(ui): add gruvbox theme (Web/App) (#9855) - @R44VC0RP: - feat: add daily Discord recaps for issues and PRs (#9904)
Features
21. Januar 2026
## Core - Add session list and session fork support to ACP (@remorses) - Fix metadata matching to use model.id instead of model.api.id to support legacy model identifiers - Adjust textVerbosity and reasoningEffort defaults to better align with Codex CLI behavior - Implement home directory expansion for permission patterns using `~` and `$HOME` prefixes (@Danztee) - Add back todo list tools for OpenAI models - Persist loaded model and mode when loading ACP sessions (@noamzbr) - Update GitLab packages for better self-hosted instance support (@vglafirov) - Make the models.dev domain configurable for offline environments (@bartbroere) ## Desktop - Rename favicon on web again - Improve provider OAuth error handling in app - Fix renaming non-git projects affecting other projects - Tab should select suggestion in the app - Fix type error - Fix terminal issues and regressions - Remove terminal button border to align with close button (@allanhvam) - Fixed navigation issues when working with large sessions in desktop app (@dbpolito) **Thank you to 8 community contributors:** - @bartbroere: - feat: Make the models.dev domain configurable for offline environments (#9258) - @vglafirov: - chore(deps): update GitLab packages for better self-hosted instance support (#9856) - @noamzbr: - fix: Persist loaded model and mode on ACP session load (#9829) - @Danztee: - feat: implement home directory expansion for permission patterns using `~` and `$HOME` prefixes. (#9813) - @dbpolito: - fix(desktop): Navigation with Big Sessions (#9529) - @allanhvam: - fix(app): remove terminal button border to align with close button (#9874) - @remorses: - feat(acp): add session/list and session/fork support (#7976) - @gigamonster256: - fix: update pre-push hook to allow caret version differences (#9876)
Features
21. Januar 2026
## Core - Adjust skill tool description to clarify available skills - Add caching support for Claude with Bedrock custom inference profiles (@stevoland) - Add Laravel Pint as a PHP formatter (@nunomaduro) - Change session title prompt to respond in user's language (@spoons-and-mirrors) - Terminal improvements including focus handling, rename functionality, error state management, and CSP compliance (@unitythemaker) - Fix snapshot regression in core module - Handle special characters in paths and git snapshot reading logic (@shirukai) - Update session summary after revert to show file changes - Add OPENCODE_DISABLE_PROJECT_CONFIG environment variable to disable project configuration (@kdcokenny) - Add OPENCODE_DISABLE_FILETIME_CHECK flag to skip file modification time checks (@luojiyin1987) - Ensure apply patch tool emits edited events - Ensure synthetic user message following subtasks is only added when user manually invoked subtask - Don't update session timestamp for metadata-only changes (@ariane-emory) - Fix issue when switching models between providers where past reasoning/metadata would cause 400 errors ## TUI - Support responsive layout for narrow terminal screens (@vmotta8) ## Desktop - New sound effects, downmixed to mono - Fix keybind search dialog height in app - Add new sounds to app - Add missing internationalization keys in app package - Add search functionality to settings shortcuts (@ProdigyRahul) - Add new workspace button supporting all available languages (@ProdigyRahul) - Add aria-labels to titlebar and sidebar buttons for improved accessibility (@ndarilek) - Fix e2e tests in app package - Fix type error - Breaking out of auto-scroll in the app - Add model tooltip metadata in chooser per Figma request (@kearns-cu) - Fix workspaces padding inconsistency (@DNGriffin) - Properly integrate window controls on Windows desktop (@Brendonovich) - Add Japanese language support to the app - Add workaround for nushell in desktop application (@Brendonovich) - Add Danish translations to the application - Add Japanese translations to the app - Add French translations to the app - Add Spanish translations to the app - Add German translations to the application - Add Korean language translations to the application - Don't show notification on session if active - Add manage models icon to selector (@kearns-cu) - Allow users to select directory text on new session (@DNGriffin) - Fix desktop app not connecting to sidecar when proxy is configured - Standardize desktop layout icons (@jacobabahn) - Fix numbered list rendering in web markdown (@R44VC0RP) - Remove portal spacer and fix terminal toggle padding in UI (@alexyaroshuk) - Add internationalization support to the app - Add internationalization support for prompt input component - Initial internationalization stubbing for the app - Don't interfere with scroll when using message navigation - Add keyboard shortcut (Mod+,) to open settings dialog - Improve auto-scroll user experience in app **Thank you to 20 community contributors:** - @R44VC0RP: - docs: add Anthropic subscription warning and update feature list to highlight GitHub Copilot (#9721) - fix(app): fix numbered list rendering in web markdown (#9723) - @alexyaroshuk: - fix(ui): remove portal spacer and fix terminal toggle padding (#9728) - @jacobabahn: - feat(desktop): standardize desktop layout icons (#9685) - @yxshee: - fix: correct dot prefix display in directory names for RTL text rendering issue #9579 (#9591) - @ariane-emory: - fix: don't update session timestamp for metadata-only changes (resolves #9494) (#9495) - @vmotta8: - fix(tui): responsive layout for narrow screens (#9703) - @luojiyin1987: - feat: add OPENCODE_DISABLE_FILETIME_CHECK flag (#6581) - @kdcokenny: - feat: add OPENCODE_DISABLE_PROJECT_CONFIG env var (#8093) - @RiskyMH: - chore(opencode): Use Bun.semver instead of node-semver (#9773) - @shirukai: - fix: handle special characters in paths and git snapshot reading logic(#9804) (#9807) - @DNGriffin: - feat(app): allow users to select directory text on new session (#9760) - fix(app): workspaces padding wonkiness (#9772) - @zerone0x: - fix(ui): preserve filename casing in edit/write tool titles (#9752) - @kearns-cu: - feat(app): add manage models icon to selector (per Figma request) (#9722) - feat(app): model tooltip metadata in chooser (per Figma request) (#9707) - @Brendonovich: - fix(desktop): add workaround for nushell - feat(desktop): properly integrate window controls on windows (#9835) - @unitythemaker: - fix(app): terminal improvements - focus, rename, error state, CSP (#9700) - @ndarilek: - fix(app): add aria-labels to titlebar and sidebar buttons (#9843) - @ProdigyRahul: - fix(app): new workspace button with all languages (#9848) - feat(app): search on settings shortcuts (#9850) - @spoons-and-mirrors: - tweak(session title): change prompt to have the response with user language (#9847) - @nunomaduro: - feat(formatters): add laravel pint as a `.php` formatter (#7312) - @stevoland: - fix: Claude w/bedrock custom inference profile - caching support (#9838)
Features
20. Januar 2026
## Core - Preserve tool input from running state for MCP tool results (@rynfar) - Pass arguments to commands without explicit placeholders (@remorses) - Adjust Codex prompt to discourage unnecessary questions and encourage more autonomous decision-making - Register OAuth callback before opening browser in MCP (@msvechla) - Support ACP audience by mapping to ignore and synthetic (@noamzbr) - Terminal no longer hangs on exit or Ctrl+D and closes the pane properly (@ProdigyRahul) ## TUI - Prevent sidebar height from overflowing in terminal UI (@IdrisGit) ## Desktop - Refactor Select component to use settings variant for settings modal styling - Show "View all sessions" button for active project and close hovercard on click - Remove close delay on hover cards to prevent overlapping - Fix review empty state font size - Fix race condition when editing project names (@DNGriffin) - Resolve Select children type conflict with ButtonProps - Fix prompt agent button style - Fix type error - Update keyboard shortcuts panel to match general settings styling - Add color scheme preview on hover in appearance dropdown - Update settings panel padding and make content full width - Set 32px spacing between main title and group title - Add fade gradient to settings panel headers - Reset select trigger to default state after selection - Add extra large dialog size and use it for settings modal - Add triggerStyle prop to Select component and apply it to font selector - Render font options in their respective fonts - Wrap settings row groups with styled container - Remove border and background from settings panel headers - Remove subheader from General settings panel - Add keyboard icon and use it for Shortcuts settings tab - Add sliders icon and use it for General settings tab - Update settings tabs layout and spacing - Increase icon letter size to 32px in edit project dialog - Increase session messages popover open delay to 1000ms - Fix end-to-end tests in app package - Add Windows end-to-end tests for the app - Change terminal.new keybind to Ctrl+Alt+T (@ProdigyRahul) - Cleanup PTY exited event listener on component unmount (@ProdigyRahul) - Fix duplicate session loads in app - Add tooltips to sidebar new session and workspace buttons (@ProdigyRahul) - Better pending states for workspace operations - Fix session loading loop in app - Add restart and reload menu items on macOS (@BlankParticle) - Fix broken app functionality - Add settings page to app **Thank you to 13 community contributors:** - @ProdigyRahul: - fix(app): terminal no longer hangs on exit or ctrl + D and closes the pane (#9506) - feat(app): add tooltips to sidebar new session/workspace buttons (#9652) - fix(app): cleanup pty.exited event listener on unmount (#9671) - fix(app): change terminal.new keybind to ctrl+alt+t (#9670) - @BlankParticle: - feat: add restart and reload menu items on macOS (#9212) - @noamzbr: - feat: Support ACP audience by mapping to ignore and synthetic (#9593) - @msvechla: - fix(mcp): register OAuth callback before opening browser (#9646) - @remorses: - fix: pass arguments to commands without explicit placeholders (#9606) - @zerone0x: - fix(ui): show filename in Edit/Write permission titles (#9662) - @MBanucu: - fix(opencode): Allow compatible Bun versions in packageManager field (#9597) - @DRunkPiano114: - fix(ui): prevent Enter key action during IME composition (#9564) - @IdrisGit: - fix(tui): prevent sidebar height from overflowing. (#9689) - @gigamonster256: - fix(opencode): relax bun version requirement (#9682) - @DNGriffin: - fix(app): Edit-project name race condition (#9551) - @rynfar: - fix(opencode): preserve tool input from running state for MCP tool results (#9667) - @kdcokenny: - docs(web): add KDCO plugins to ecosystem (#7694)
Features
20. Januar 2026
## Core - Remove filetime assertions from patch tool - Ensure truncation handling applies to MCP servers - Update batch tool definition to outline correct value for max tool calls (@jamesmengo) ## TUI - Add space toggle hint to tool selection prompt (@cjellick) - Fix message history cleanup to prevent memory leaks in TUI ## Desktop - Fixed flash of home page on application start - Fixed localStorage quota handling in app - Persist quota limits to prevent loss on reload - Completely disable pinch to zoom in desktop application (@Brendonovich) - Fix message list overflow and scrolling issues (@neriousy) - Add 8px padding to recent sessions popover - Remove top padding from edit project dialog form - Update session messages popover gutter to 28px - Position session messages popover at top - Retain session hover state when popover is open and update border radius - Update session hover popover styling - Update review session empty state styling - Add ability to select project directory text in web interface (@DNGriffin) **Thank you to 5 community contributors:** - @DNGriffin: - feat(app): Add ability to select project directory text to web (#9344) - @neriousy: - fix(app): message list overflow & scrolling (#9530) - @jamesmengo: - fix(batch): update batch tool definition to outline correct value for max tool calls (#9517) - @cjellick: - fix: add space toggle hint to tool selection prompt (#9535) - @Brendonovich: - fix(desktop): completely disable pinch to zoom
Features
19. Januar 2026
## Core - Increase maximum batch tool limit from 10 to 25 (@spoons-and-mirrors) - Remove favicon from application - Apply patch description - Format only edited file in Cargo workspace instead of entire workspace (@goniz) - Cargo fmt does not support formatting single files - Rename uv formatter from 'uv format' to 'uv' for config consistency (@paulclou) - Initial e2e test setup for app - Reset worktree to clean state - Delete workspace functionality - Tweak apply_patch tool description - Omit todo tools for OpenAI models - Add proper variant support to copilot - Track reasoning by output_index for Copilot compatibility (@NateSmyth) - Add scheduler and cleanup module - Auto-route GPT-5+ models to Responses API in GitHub Copilot integration (@christso) - Use streamObject when using OpenAI OAuth in agent generation (@thmalek) - Fix incorrect model variants for Grok models - Note untracked files in review documentation - Treat .fbs files as text instead of images in tool handling (@zerone0x) - Update GitLab AI provider to version 1.3.2 (@vglafirov) - Add command execute before hook (@spoons-and-mirrors) - Overhaul Nix flake and packages (@gigamonster256) - Preserve file attachment metadata during session replay (@liorshk) - Update Scoop installation method (@chawyehsu) - Fix import issue in patch module - Restore persisted model and agent when loading ACP session (@noamzbr) - Use single global event subscription and route by session ID in ACP (@noamzbr) - Increase question header and label limits (@bdwelle) - Add apply_patch tool for OpenAI models - Fix Java language server download on Windows (@pschiel) - Add vim-style line-by-line scrolling keybindings (@NathanFlurry) - Prevent environment variables in config from being replaced with actual values - Fix mDNS hostname discovery (@j0nl1) - Revert OAuth redirect URI configuration for MCP servers - Fix GPT ID handling in API responses - Add OAuth polling safety margin in Copilot device authentication (@hamir-suspect) - Open help dialog with tui/open-help route (@AksharP5) ## TUI - Clarify resume session tip in TUI (@kearns-cu) - Set input mode based on whether mouse or keyboard is in use to prevent unwanted mouse events (@jcampuza) - Don't unnecessarily wrap lines and introduce an unneeded empty line (@ariane-emory) - Add mouse support for permission buttons in TUI (@Hona) - Fix Windows evaluating text on copy (@Hona) - Uninstall OpenCode installed via Windows package managers (@itsrainingmani) - Unify command registry and derive slash commands from command definitions (@kitlangton) - Hide variants hint when list is empty - Fix model state persistence when model store is not ready - Centralize OSC 52 clipboard support for SSH sessions (@b3nw) - Keep primary model after subagent runs (@sethcarlton) - Make home/end keys work in menu list modal windows (@ariane-emory) ## Desktop - Fix favicon in app - Change keybind for cycling thinking effort in app (@neriousy) - Fixed global terminal and review pane toggle functionality - Fix hash-based navigation in the application - Give feedback when trying to paste an unsupported file type (@neriousy) - Rename favicons to v2 for cache busting (@R44VC0RP) - Reload instance after workspace reset - Make terminal sessions scoped to workspace - Add hover overlay with upload and trash icons to project icon in edit dialog - Tighten edit project color spacing - Constrain edit project dialog width - Tweak edit project icon container styling - Adjust edit project icon helper text - Update edit project dialog padding and avatar styles for consistency - New layout improvements for app - New session layout - Improved session layout - Hide settings button in app - Add more end-to-end tests for the app - Add end-to-end testing utilities for the application - Tweak share button to prevent layout shift in desktop (@itsrainingmani) - Apply getComputedStyle polyfill on all platforms in desktop app (@Slone123c) - Improve layout and styling of desktop session search button (@OpeOginni) - Remove redundant toast for thinking effort changes (@kitlangton) - Add session unshare button to desktop application (@itsrainingmani) - Remove max-width constraint from session name tooltip - Adjust project path tooltip placement - Remove max width on sidebar new buttons - Adjust session list tooltip trigger and delay - Keep project avatar hover styles while popover is open - Adjust recent sessions popover padding - Reduce prompt dock bottom spacing - Show project name in avatar hover - Remove loading text after splash screen - Fix command palette file list item spacing - Shrink project notification dot and apply masking - Update desktop initializing splash logo - Align project avatar notification dot - Don't try to open command palette if a dialog is already open (@BlankParticle) - Added Windows-only guard to make window.getComputedStyle fall back to document.documentElement (@Eric-Guo) - Fix flaky session archiving behavior - Prevent text clipping on search button descenders - Remove secondary text from commands - Limit search modal max-height to 480px - Refine search modal styling and list component - Reduce command item left padding in search modal - Add hideIcon and class options to List search and customize search modal input styling - Adjust command item left padding in search modal - Add left padding to command items in search modal - Increase keybind border radius in search modal - Display arrow keys as symbols in keybind formatting - Use Keybind component in search modal list - Use Keybind component in titlebar search button - Fix recent sessions gutter spacing ## Extensions - Add use_github_token to example **Thank you to 39 community contributors:** - @ariane-emory: - fix: make home/end keys work in menu list modal windows (resolves #7190) (#8347) - fix: Don't unnecessarily wrap lines and introduce an unneeded empty line (resolves #9489) (#9488) - @sethcarlton: - fix: keep primary model after subagent runs (#8951) - @AksharP5: - fix: open help dialog with tui/open-help route (#8596) - @b3nw: - fix: centralize OSC 52 clipboard support for SSH sessions (#8974) - @gigamonster256: - fix(nix): add desktop application entry (#8972) - feat(nix): overhaul nix flake and packages (#9032) - fix: nix ci - swapped dash/underscore (#9352) - @dbpolito: - fix(desktop): Stream bash output + strip-asni (#8961) - @hamir-suspect: - fix(opencode): add oauth polling safety margin in copilot device authentication (#8986) - @jerome-benoit: - fix(nix): resolve hash race condition in parallel matrix jobs (#8995) - @benjaminshafii: - docs: Add OpenWork to ecosystem (#8741) - @Eric-Guo: - fix(desktop): Added a Windows-only guard that makes window.getComputedStyle fall back to document.documentElement (#9054) - @j0nl1: - fix: mdns discover hostname (#9039) - @Slone123c: - fix: escape CSS selector keys to handle special characters (#9030) - fix(desktop): apply getComputedStyle polyfill on all platforms (#9369) - @cgilly2fast: - docs: add firmware provider to providers docs (#8993) - @berenar: - docs(config): explain that `autoupdate` doesn't work when installed with a package manager (#9092) - @BlankParticle: - fix: don't try to open command palette if a dialog is already open (#9116) - @kitlangton: - refactor(tui): unify command registry and derive slash commands (#9115) - fix(app): remove redundant toast for thinking effort changes (#9181) - @NathanFlurry: - feat: bind vim-style line-by-line scrolling (#8980) - @pschiel: - fix(windows): fix jdtls download on Windows (#9195) - @bdwelle: - feat(tool): increase question header and label limits (#9201) - @noamzbr: - fix(acp): use single global event subscription and route by sessionID (#5628) - fix: restore persisted model/agent when loading ACP session (#7809) - @itsrainingmani: - feat(cli): uninstall opencode installed via windows package managers (#8571) - feat(desktop): implement session unshare button (#8660) - refactor(desktop): tweak share button to prevent layout shift (#9322) - @OpeOginni: - refactor(desktop): improve layout and styling of session search button (#9251) - @chawyehsu: - refactor(installation): update scoop installation method (#9243) - @liorshk: - fix(acp): preserve file attachment metadata during session replay (#6342) - @spoons-and-mirrors: - feat(hook): command execute before hook (#9267) - tweak(batch): up restrictive max batch tool from `10` to `25` (#9275) - @vglafirov: - fix: update gitlab-ai-provider to 1.3.2 (#9279) - docs: Improve Gitlab self-hosted instances documentation (#9391) - @zerone0x: - fix(tool): treat .fbs files as text instead of images (#9276) - @alanpog: - docs: clarify agent tool access and explore vs general distinction (#9300) - @Hona: - fix: Windows evaluating text on copy (#9293) - feat(tui): use mouse for permission buttons (#9305) - @thmalek: - fix(opencode): use streamObject when using openai oauth in agent generation (#9231) - @christso: - fix(github-copilot): auto-route GPT-5+ models to Responses API (#5877) - @NateSmyth: - fix: track reasoning by output_index for copilot compatibility (#9124) - @kedMertens: - docs: update codecompanion.nvim acp doc (#9411) - @paulclou: - fix(config): rename uv formatter from 'uv format' to 'uv' for config consistency (#9409) - @jcampuza: - fix(app): list component jumping when mouse happens to be under the list and keyboard navigating. (#9435) - fix(opencode): sets input mode based on whether mouse vs keyboard is in use to prevent mouse events firing (#9449) - @goniz: - fix(opencode): `cargo fmt` is formatting whole workspace instead of edited file (#9436) - @R44VC0RP: - fix(web): rename favicons to v2 for cache busting (#9492) - @neriousy: - fix(app): give feedback when trying to paste a unsupported filetype (#9452) - fix: keyboard nav when mouse hovered over list (#9500) - fix(app): change keybind for cycling thinking effort (#9508) - @kearns-cu: - fix(tui): clarify resume session tip (#9490)
Features
16. Januar 2026
## Core - Improve wording - Revert tool attachment fix to prevent them being sent as user messages - Reinstall plugins when cache module is missing (@kenryu42) ## Desktop - Remember last opened project in app - Truncate workspace title in app - Handle new session correctly in app - Center dialog on page instead of session **Thank you to 3 community contributors:** - @kenryu42: - fix(bun): reinstall plugins when cache module missing (#8815) - @ariane-emory: - fix: make home/end keys work in menu list modal windows (resolves #7190) (#8347)
Features
16. Januar 2026
## Core - Upgrade OpenTUI to v0.1.74 and fix tmux kitty keyboard regression - Ensure that tool attachments aren't sent as user messages - Use dynamic import for session event in config.ts to avoid circular dependency - Fix broken URL in documentation (@berenar) - Fix itemId stripping logic for GPT models - Revert test fix for image handling - Update GPT models prompt - Add OAuth redirect URI configuration for MCP servers (@christso) - Adjust websearch tool to emphasize current date and clarify it's no longer 2024 - Clarify question tool guidance in documentation (@kitlangton) - Set OpenCode as user agent for most inference requests - Show auth URL when browser cannot open in remote sessions (@danlapid) - Strip item IDs in more cases - Stop changing main model/agent from subtasks invocation (@dbpolito) - Fix default agent selection in ACP and headless mode (@assagman) - Add LiteLLM proxy provider option for explicit compatibility (@seilk) ## TUI - Add version to session header and /status dialog (@AksharP5) - Correct theme count tip in TUI (@kitlangton) - Dim question option prefixes in terminal UI (@kitlangton) - Add tab navigation support for questions in terminal interface (@kitlangton) - Add Carbonfox theme (@devatnull) ## Desktop - Add ability to edit project and session titles - Open workspace if navigating to session in workspace - Can't expand workspaces - Fixed scroll jumping when expanding workspaces - Truncate the workspace name on hover - Fix alignment of load more label - Update panel minimum size and button maximum width - Fix session icon and label alignment - Fixed desktop hamburger menu shifting issue - Center hamburger menu with project avatars - Fix mobile menu on web - Fix responsive menu on desktop - Moved createMemo down to fix bug - Updated project and sessions list width - Fix styles for view all sessions state - Add default icon to sessions - Fix search bar sizing, padding, and keyboard shortcut styling - Fixed avatar border radius and current project display - Persist workspace order and collapsed state - Add unified search for commands and files in app - Add skeleton loader for sessions - Fix project avatar border radius ## SDK - Update OpenAPI TypeScript SDK generator to version 0.90.4 - Revert SDK OpenAPI TypeScript generator update to 0.90.4 - Update @hey-api/openapi-ts to 0.90.4 (@coleleavitt) **Thank you to 13 community contributors:** - @seilk: - feat: add litellmProxy provider option for explicit LiteLLM compatibility (#8658) - @devatnull: - feat: add Carbonfox theme (#8723) - @johnnyapu15: - fix:subagent reasoningEffort not being applied (#8646) - @aaroniker: - feat(console): Fix /black page View Transition Safari issue (#8755) - feat(console): /black shader improvements, performance, details (#8871) - @assagman: - fix(agent): default agent selection in acp and headless mode (#8678) - @dbpolito: - fix: stop changing main model/agent from subtasks invocation (#7681) - feat(desktop): Terminal Splits (#8767) - @ricardo-valero: - fix: nix desktop workflow (#8747) - @danlapid: - fix(mcp): show auth URL when browser cannot open in remote sessions (#7884) - @kitlangton: - docs: clarify question tool guidance (#8778) - fix(tui): add tab navigation in questions (#8777) - fix(tui): dim question option prefixes (#8776) - fix(tui): correct theme count tip (#8779) - @AksharP5: - feat: add version to session header and /status dialog (#8802) - @christso: - feat(mcp): add OAuth redirect URI configuration for MCP servers (#7379) - @coleleavitt: - chore(sdk): update @hey-api/openapi-ts to 0.90.4 (#8921) - @berenar: - fix(docs): Broken URL (#8918)
Features
15. Januar 2026
## Core - Ensure agent exists before processing title in session summary (@0x404) - More defensive handling of project list to prevent errors - Filter dead worktrees from git worktree list - Load models.dev in development mode - Ensure frontmatter can process same content as other agents - Show toast error message when ConfigMarkdown parsing fails (@vvarp) - Prettify retry duration display in TUI - Handle broken symlinks gracefully in grep tool (@andrew-kramer-inno) - Honor per-server MCP timeouts - Upgrade OpenTUI to v0.1.73, fixing CJK word wrapping and Thai text rendering in non-tmux environments - Add input limit for compaction (@brandon93s) - Fix Codex ID issue - Revert provider-level store option - Allow provider-level store option (@cyhhao) - Make dialog keybinds configurable (@CasualDeveloper) ## TUI - Update black plan selection with light rays effect and mobile styles (@aaroniker) - Use native text truncation for sidebar diff paths - Center the initially selected session in the session list (@ariane-emory) - Restore brand integrity of TUI wordmark (@kitlangton) ## Desktop - Fix sidebar toggle on desktop - Persist workspace branch selection across sessions - Persist workspace order and collapsed state in sidebar - Fix thinking animation opacity and improve design - Fix session icon and name alignment - Show session as busy even when it's the active session - Stop killing opencode-cli process on dev mode restart (@dbpolito) - Update desktop question tools (@dbpolito) - Fix current session background color - Remove the active state from load more button after press - Fix new session tooltip position and add keyboard shortcut - Remove more options tooltip - Fix workspace name color in UI - Hide "View all sessions" button when on active project page - Fix avatar button states - Reduce font size of load more button - Fix recent sessions title color - Fix project dropdown labels and sorting order - Move left panel toggle button to the right - Fix avatar background color - Show project options on hover of row - Increase delay on session list tooltips - Fix tooltip gutter spacing on session items and archive buttons - Archive icon replaces diff count on hover - Fix hover state for recent sessions in gutter - Fix search bar functionality in header - Fixed layout issues in the app - Fix stale sessions in new layout - New app layout - Open external links in system browser instead of webview in desktop app (@turculaurentiu91) **Thank you to 15 community contributors:** - @CasualDeveloper: - feat(tui): make dialog keybinds configurable (#6143) (#6144) - @kitlangton: - fix: restore brand integrity of TUI wordmark (#8584) - @cyhhao: - feat: allow provider-level store option (#8000) - @ariane-emory: - fix(tui): Center the initially selected session in the session_list (resolves #8558) (#8560) - @brandon93s: - fix(opencode): add input limit for compaction (#8465) - @R44VC0RP: - fix: enable sticky header on changelog and download pages (#8556) - @turculaurentiu91: - fix(desktop): open external links in system browser instead of webview (#7360) - @LAG-4: - docs: fix typos in documentation (#8703) - @andrew-kramer-inno: - fix: handle broken symlinks gracefully in grep tool (#8612) - @vvarp: - fix: show toast error message on ConfigMarkdown parse error (#8049) - @dbpolito: - chore(desktop): Question Tools Updates - chore(desktop): Stop Killing opencode-cli on dev - @aaroniker: - feat(console): Update /black plan selection, light rays effect. mobile styles (#8731) - feat(console): Style improvements for /black, View Transition fixes (#8739) - @nathannewyen: - docs: add /thinking command documentation (#8722) - @0x404: - fix(session): ensure agent exists before processing title in session summary (#8662) - @ricardo-valero: - fix: update hix hashes for all systems (#8732)
Features
15. Januar 2026
## Core - Add error message to prompt users to reauthenticate with Copilot - Official Copilot plugin - Adjust LSP wording to better encourage users to fix issues - Fix plan path permissions - Add check in case provider doesn't exist in models list - Adjust GitLab logic in provider configuration - Add AWS Web Identity Token File support for Bedrock (@bainos) - Add Chocolatey and Scoop to OpenCode upgrade methods (@itsrainingmani) - Remove duplicate path import in session module (@CasualDeveloper) ## TUI - Improve question prompt UX in TUI (@kitlangton) **Thank you to 8 community contributors:** - @kitlangton: - feat(tui): improve question prompt UX (#8339) - @R44VC0RP: - fix(homepage): Update FAQ to include desktop and web links (#8453) - docs: update screenshot images (#8479) - feat(console): add /changelog page (#8476) - docs: add Web usage page (#8482) - fix(console): make logo on /black link back to homepage (#8498) - feat(console): add OG image and SEO meta tags for /black page (#8506) - @CasualDeveloper: - fix(session): remove typo'd duplicate path import (#8408) (#8412) - @itsrainingmani: - feat: add choco and scoop to opencode upgrade methods (#8439) - @aaroniker: - feat(console/app): Style changes, view transitions, small improvements (#8481) - @bainos: - feat(opencode): add AWS Web Identity Token File support for Bedrock (#8461) - @samiulsami: - feat(install): respect ZDOTDIR for zsh config detection (#8511) - @IdrisGit: - docs: fix permission system documentation in agents section (#7652)
Features
14. Januar 2026
## Core - Fixed "load more" button behavior in desktop sidebar (@shanebishop1) - Fix plan mode when not in git worktree - Skip duplicate system prompt for Codex OAuth sessions (@zerone0x) ## TUI - Fixed Docker image after SST rename in tips (@goniz) - Show connected providers in /connect dialog (@AksharP5) - Deduplicate file references in sent prompts (@felixzsh) - Track all timeouts in Footer component to prevent memory leaks (@sauerdaniel) - Make TUI work when OPENCODE_SERVER_PASSWORD is set (@LeonMueller-OneAndOnly) ## SDK - Add missing metadata() and ask() definitions to ToolContext type (@danielmbrasil) **Thank you to 21 community contributors:** - @LeonMueller-OneAndOnly: - fix(TUI): make tui work when OPENCODE_SERVER_PASSWORD is set (#8179) - fix(github): add persist-credentials: false to workflow templates (#8202) - fix(TUI): make tui work when OPENCODE_SERVER_PASSWORD is set (#8179) - @Eduard-Voiculescu: - docs: Update plan mode restrictions (#8290) - docs: Update plan mode restrictions (#8290) - @mthezi: - docs: add 302ai provider (#8142) - docs: add 302ai provider (#8142) - @danielmbrasil: - fix: add missing metadata() and ask() defintions to ToolContext type (#8269) - fix: add missing metadata() and ask() defintions to ToolContext type (#8269) - @sauerdaniel: - fix(tui): track all timeouts in Footer to prevent memory leak (#8255) - fix(mcp): close existing client before reassignment to prevent leaks (#8253) - fix(state): delete key from recordsByKey on instance disposal (#8252) - fix(tui): track all timeouts in Footer to prevent memory leak (#8255) - @felixzsh: - fix: deduplicate file refs in sent prompts (#8303) - fix: deduplicate file refs in sent prompts (#8303) - @usvimal: - fix(desktop): correct health check endpoint URL to /global/health (#8231) - @dbpolito: - feat(desktop): Adding Provider Icons (#8215) - fix(desktop): Revert provider icon on select model dialog (#8245) - feat(desktop): Ask Question Tool Support (#8232) - @Brendonovich: - console: reduce desktop download cache ttl to 5 minutes - @cmdr-chara: - feat: add Undertale and Deltarune built-in themes (#8240) - @zeke: - docs: document ~/.claude/CLAUDE.md compatibility behavior (#8268) - @vglafirov: - feat: Add GitLab Duo Agentic Chat Provider Support (#7333) - fix: Add Plugin Mocks to Provider Tests (#8276) - @dmmulroy: - fix(cli): mcp auth duplicate radio button icon (#8273) - @josephbharrison: - fix(prompt-input): handle Shift+Enter before IME check to prevent stuck state (#8275) - @AlanThiec: - fix: update User-Agent string to latest Chrome version in webfetch (#8284) - @zerone0x: - fix(session): skip duplicate system prompt for Codex OAuth sessions (#8357) - @AksharP5: - feat: show connected providers in /connect dialog (#8351) - @goniz: - fix(opencode): fix docker image after sst rename in tips (#8376) - @neriousy: - fix(app): file listing (#8309) - @ajzbc: - fix(ui): layout-bottom icons (#8330) - @shanebishop1: - fix(desktop): "load more" button behavior in desktop sidebar (#8430)
Features
14. Januar 2026
## Core - Do not allow agent to ask custom-less questions - Improve prompt for explore agent - Add plugin mocks to provider tests (@vglafirov) - Update User-Agent string to latest Chrome version in webfetch (@AlanThiec) - Add plan mode with enter and exit tools - Add family to GPT 5.2 Codex in Codex plugin - Add GitLab Duo Agentic Chat provider support (@vglafirov) - Delete key from recordsByKey on instance disposal (@sauerdaniel) - Close existing MCP client before reassignment to prevent resource leaks (@sauerdaniel) - Added Ask Question tool support for desktop application (@dbpolito) ## TUI - Tweak external directory permission rendering in TUI - Ensure external directory and Bash tool invocations render working directory details - Fix duplicate radio button icon in MCP auth CLI interface (@dmmulroy) ## Desktop - Handle Shift+Enter before IME check to prevent stuck state in prompt input (@josephbharrison) - Revert provider icon on select model dialog in desktop app (@dbpolito) **Thank you to 8 community contributors:** - @dbpolito: - fix(desktop): Revert provider icon on select model dialog (#8245) - feat(desktop): Ask Question Tool Support (#8232) - @cmdr-chara: - feat: add Undertale and Deltarune built-in themes (#8240) - @sauerdaniel: - fix(mcp): close existing client before reassignment to prevent leaks (#8253) - fix(state): delete key from recordsByKey on instance disposal (#8252) - @zeke: - docs: document ~/.claude/CLAUDE.md compatibility behavior (#8268) - @vglafirov: - feat: Add GitLab Duo Agentic Chat Provider Support (#7333) - fix: Add Plugin Mocks to Provider Tests (#8276) - @dmmulroy: - fix(cli): mcp auth duplicate radio button icon (#8273) - @josephbharrison: - fix(prompt-input): handle Shift+Enter before IME check to prevent stuck state (#8275) - @AlanThiec: - fix: update User-Agent string to latest Chrome version in webfetch (#8284)
Features
13. Januar 2026
## TUI - Add persist-credentials: false to workflow templates to prevent credential exposure (@LeonMueller-OneAndOnly) - Add fullscreen view to permission prompt ## Desktop - Add provider icons to desktop application (@dbpolito) - Correct desktop health check endpoint URL to /global/health (@usvimal) **Thank you to 4 community contributors:** - @usvimal: - fix(desktop): correct health check endpoint URL to /global/health (#8231) - @dbpolito: - feat(desktop): Adding Provider Icons (#8215) - @Brendonovich: - console: reduce desktop download cache ttl to 5 minutes - @LeonMueller-OneAndOnly: - fix(github): add persist-credentials: false to workflow templates (#8202)
Features
13. Januar 2026
## Core - Remove the symlinkBinary function call that replaces the wrapper script - Fix Homebrew auto-upgrade functionality ## TUI - Prevent question tool keybindings when dialog is open (@zerone0x) ## Desktop - Kill existing OpenCode CLI processes on macOS when launching desktop app (@Brendonovich) - Set serverPassword in desktop app (@Brendonovich) - Provide PTY socket authentication if available from desktop (@Brendonovich) - Tie desktop and CLI to the same Windows JobObject (@Brendonovich) **Thank you to 3 community contributors:** - @zerone0x: - fix(tui): prevent question tool keybindings when dialog is open (#8147) - @Brendonovich: - feat(desktop): Tie desktop & CLI to the same Windows JobObject (#8153) - fix(app): provide pty socket auth if available from desktop (#8210) - fix(desktop): set serverPassword - desktop: macos killall opencode-cli on launch - @OpeOginni: - fix(ui): track memo-based items in useFilteredList without affecting async function based lists (#8216)
Features
13. Januar 2026
## Core - Handle write errors when updating schema in OpenCode config (@ShoeBoom) - Ensure clear_thinking is disabled for zai model - Improved edit and write tool feedback to prevent confusion about whether changes were successfully applied - Prevent [object Object] error display in console output (@lengmodkx) - Respect agent task permission for nested sub-agents (@malhashemi) - Fix max completion tokens error for Cloudflare provider (@roerohan) - Use reasoningConfig for Anthropic models on Bedrock (@Adam8234) - Store API URL in session metadata (@jkoelker) - Add nova-2 to region prefix models - Tweak truncation directory permissions - Make environment file reads ask user for permission instead of blocking - Use Biome check instead of format to include import sorting (@kynnyhsap) - Ensure plurals are properly handled ## TUI - Support debug tool calling directly in CLI (@Eric-Guo) - Don't submit prompt when switching sessions (@LeonMueller-OneAndOnly) - Await auth.set to prevent race condition when setting API key (@darshkpatel) - Actually modify OpenCode config when adding MCP servers with `mcp add` command (@paoloricciuti) ## Desktop - Spawn local server with password in desktop app (@Brendonovich) - Add missing args to Windows Tauri CLI spawn (@pschiel) - Implement better dynamic terminal numbering (@OpeOginni) - Add icon button for server removal in dialog select server (@OpeOginni) **Thank you to 15 community contributors:** - @kynnyhsap: - fix(formatter): use biome `check` instead of `format` to include import sorting (#8057) - @OpeOginni: - feat(dialog-select-server): add icon button for server removal (#8053) - feat(terminal): implement better dynamic terminal numbering (#8081) - @jkoelker: - fix(session): store api url in metadata (#8090) - @paoloricciuti: - fix: actually modify opencode config with `mcp add` (#7339) - @jerome-benoit: - fix(nix): initialize hashes.json with per-system format (#8095) - @darshkpatel: - fix: await auth.set to prevent race condition when setting API key (#8075) - @Adam8234: - fix(bedrock): use reasoningConfig for Anthropic models on Bedrock (#8092) - @roerohan: - fix: max completion tokens error for cloudflare (#7970) - @malhashemi: - fix(task): respect agent task permission for nested sub-agents (#8111) - @pschiel: - fix: add missing args to windows tauri cli spawn (#8084) - @lengmodkx: - fix: prevent [object Object] error display in console output (#8116) - @LeonMueller-OneAndOnly: - fix(TUI): dont submit prompt when switching sessions (#8016) - @Eric-Guo: - feat(cli): Support debug tool calling directly in CLI. (#6564) - @ShoeBoom: - fix(config): handle write errors when updating schema in opencode config (#8125) - @Brendonovich: - feat(desktop): spawn local server with password (#8139)
Features
12. Januar 2026
## Core - Rename OPENCODE_PASSWORD to OPENCODE_SERVER_PASSWORD for clearer authentication configuration - Fix HTTP exception handling order to prevent NamedError from masking HTTP exceptions - Add password authentication and improve server security - Improve error handling for built-in plugin installation failures - Allow wildcard permissions to match both the command with and without arguments - Fix model selection in title generation to use user's model instead of assistant's ## TUI - Prevent layout jump when toggling tips visibility in TUI (@R44VC0RP) - Add hint for variants toggle in TUI - Fix autocomplete reopening after backspace deletes space in terminal UI (@Raviguntakala) - Rename kvStore to store for consistency in TUI - Redesign tips display on home screen - Redesign tips display on home screen - Remove update complete toast notification from TUI ## Desktop - Disable AppImage build (@Brendonovich) - Improve server detection and connection logic in desktop application (@Brendonovich) - Resolve defaultServerUrl inside AppInterface to improve server URL handling (@Brendonovich) **Thank you to 7 community contributors:** - @Brendonovich: - app: resolve defaultServerUrl inside AppInterface - fix(desktop): improve server detection & connection logic (#7962) - disable appimage - @shubh73: - docs: fix typo (#8041) - @jerome-benoit: - fix(nix): filter optional dependencies by target platform (#8033) - @Raviguntakala: - fix(tui): reopen autocomplete after backspace deletes space (#6031) - @dbpolito: - fix(desktop): Improve User Message Badges for Big Titles and Small Screens (#8037) - @kdcokenny: - docs: fix permission rule ordering in examples (#7010) - @R44VC0RP: - fix(tui): prevent layout jump when toggling tips visibility (#8068)
Features
12. Januar 2026
## Core - Support resource content type in MCP tool output (@antigremlin) - Check worktree for external_directory permission in subdirectories (@dmmulroy) - Bump Copilot plugin version ## TUI - Add clickable navigation to subagent header - Add mouse hover and click support to questions tool (@indeep99) - Fix prompt ref initialization to prevent undefined reference errors - Refactor event streaming in TUI to use SDK instead of manual RPC subscription - Fix cursor position when pasting single-line text in TUI (@Octane0411) - Add mouse hover and click support to autocomplete (@kitlangton) - Copy OAuth URL when device code is unavailable (@itskingori) - Fix slash command autocomplete highlighted row jumping (@kitlangton) ## Desktop - Add image preview support for image attachments in desktop (@dbpolito) **Thank you to 10 community contributors:** - @kitlangton: - fix(tui): slash command autocomplete highlighted row jumping (#7815) - feat(tui): add mouse hover and click support to autocomplete (#7820) - @itskingori: - fix(tui): copy oauth url when no device code (#7812) - @zeke: - docs: fix typos on the providers page (#7829) - docs: fix typos in settings doc (#7892) - @dbpolito: - feat(desktop): Image Preview support for Image Attachments (#7841) - feat(desktop): User Message Badges on Hover (#7835) - @jacobwgillespie: - chore(lander): fix spacing in desktop app banner (#7822) - @dmmulroy: - fix: check worktree for external_directory permission in subdirs (#7811) - @Octane0411: - Fix: TUI single-line paste cursor position (#7277) - @indeep99: - feat(tui): add mouse hover and click support to questions tool (#7905) - @antigremlin: - fix(mcp): support `resource` content type in MCP tool output (#7879) - @eyalch: - docs: fix scroll_speed default value (#7867)
Features
11. Januar 2026
## Core - Ensure Codex built-in plugin is always available - Ensure /connect works for OpenAI Business plans by adding missing field - Track file modifications in ACP (@wid4t) - Pass sessionID to chat.system.transform (@spoons-and-mirrors) - Extract external directory validation to shared utility to reduce code duplication across tools - Exclude 'none' variant for gpt-5.2-codex (@Alejandro-CSt) - Follow symlinks by default in ripgrep searches (@kdcokenny) - Disable telemetry in the PHP language server (@madflow) ## TUI - Move props.ref to onMount in TUI component (@itsrainingmani) - Fixed command palette incorrectly highlighting items on mouse hover (@kitlangton) ## Desktop - Add ability to fork sessions in desktop app (@dbpolito) - Make mouse hover and click work on prompt input autocomplete (@dbpolito) - Add missing StoreExt import and fix unused mut warning in desktop (@jerome-benoit) - Fix missing import causing desktop build to fail (@Leka74) - Support configuring default server URL for desktop (@athal7) - Remove split operation in serverDisplayName function (@OpeOginni) **Thank you to 13 community contributors:** - @madflow: - fix: disable telemetry in the php lsp server (#7649) - @dbpolito: - fix(desktop): Allow Selecting Card Errors (#7506) - feat(deskop): Add Copy to Messages (#7658) - feat(desktop): Make mouse hover / click work on prompt input autocomplete (#7661) - feat(desktop): Fork Session (#7673) - @zerone0x: - fix(ui): allow text editing shortcuts in search dialogs on macOS (#7419) - @OpeOginni: - fix(desktop): remove split operation in serverDisplayName function (#7397) - @athal7: - feat: support configuring default server URL for desktop (#7363) - @kdcokenny: - fix(grep): follow symlinks by default in ripgrep searches (#7501) - @Alejandro-CSt: - fix: exclude 'none' variant for gpt-5.2-codex (#7682) - @Leka74: - fix(desktop): build failing - missing import (#7697) - @jerome-benoit: - fix(desktop): add missing StoreExt import and fix unused mut warning (#7707) - @spoons-and-mirrors: - feat: pass sessionID to chat.system.transform (#7718) - @kitlangton: - fix(opencode): command palette mouse hover highlights wrong item (#7721) - @wid4t: - feat(acp): track file modified (#7723) - @itsrainingmani: - fix(tui): move props.ref to onMount (#7702)
Features
10. Januar 2026
## Core - Add ChatGPT-Account-Id header for organization subscriptions (@fdematos) **Thank you to 2 community contributors:** - @vtemian: - docs(ecosystem): add micode and octto plugins (#7327) - @fdematos: - fix: add ChatGPT-Account-Id header for organization subscriptions (#7603)
Features
10. Januar 2026
## Core - Ensure GPT-5.2-codex has variants - Adjust Codex styling and fix hint display - Update docs and authentication methods for OpenAI - Improve Codex instructions prompt for better task planning - Add Codex authentication support ## TUI - Fix instance disposal to prevent memory leaks and dangling references **Thank you to 1 community contributor:** - @spoons-and-mirrors: - docs: add url based instructions to web docs (#7216)
Features
9. Januar 2026
## Core - Disable server unless explicitly opted in - Report config errors instead of silent termination (@ariane-emory) - Upgrade OpenTUI to v0.1.72 - Resolve broken forked sessions with compactions due to missing parent-child message references (@ryanwyler) - Upgrade OpenTUI to v0.1.71, fixing capability detection and Kitty keyboard support - Deduplicate plugins by name with priority-based resolution (@devxoul) - Bump Copilot plugin version - Fix model dialog search issues in favorites/recents list and prevent deprecated models from appearing ## TUI - Enable API key prompt for Bedrock in auth login (@Raviguntakala) ## Desktop - Remove inline JavaScript from the app - Remove custom URL parameter from app - Prevent model picker overflow with Zen mode in new sessions (@0xajka) - Complete symlink support implementation and enable CI for PRs in desktop app (@jerome-benoit) - Store terminal and review pane visibility per session - Change terminal cursor to bar and stop blinking when not focused (@dbpolito) **Thank you to 8 community contributors:** - @RD201: - docs: Add Scaleway to provider docs (#7389) - @dbpolito: - feat(desktop): Change Terminal's Cursor to Bar and Stop Blinking when not focused (#7402) - @devxoul: - feat(config): deduplicate plugins by name with priority-based resolution (#5957) - @jerome-benoit: - fix(desktop): complete symlink support implementation and enable CI for PRs (#7113) - @0xajka: - fix: prevent model picker overflow with Zen in new sessions (#7495) - @ryanwyler: - fix: resolve broken forked sessions with compactions due to missing parent-child message references (#6445) - @Raviguntakala: - fix(cli): enable API key prompt for Bedrock in auth login (#7332) - @ariane-emory: - fix: report config errors instead of silent termination (#7522)
Features
9. Januar 2026
## Core - Upgrade OpenTUI to v0.1.70 - Support multi-select questions - Document cargofmt in docs (@marc2332) ## TUI - Stop escape key propagation from dialogs - Use full file path for fuzzy matching in autocomplete (@bagatka) ## Desktop - Revert fix for opening external links in default browser - Cache session-scoped stores and add optional context gating - Incrementally render turns with markdown caching and lazy diff rendering - Gate hydration side-effects and handoff while stores load - Prefetch adjacent sessions in the app - Implement chunked message loading and lazy diff loading for improved performance - Fix project sidebar folder name display issue (@0xajka) **Thank you to 4 community contributors:** - @marc2332: - fix(docs): Document `cargofmt` (#7383) - @bagatka: - fix(ui): use full file path for fuzzy matching in autocomplete (#6705) - @0xajka: - Fix for #7229 Fix/project sidebar folder name (#7232) - @Anthuang: - feat(desktop): add Vesper theme (#7331)
Features
8. Januar 2026
## Core - Add kind, title, and rawInput fields to ACP tool_call_update events (@noamzbr) - Add help text to debug command and subcommands (@assagman) - Allow disabling .claude prompt and skills loading (@freespace8) - Add interactive question tool for gathering user preferences and clarifying instructions - Fix issue with normal transform options conflicting with small model options when generating title - Write truncated tool outputs to files - Simplify task tool subagent filtering (@malhashemi) - Improved title generation to avoid repetitive "Analyzing..." prefixes - Use correct authorization server URL for OAuth discovery in MCP (@rscarvalho) - Config precedence now correctly allows local config to override remote (@elithrar) - Update Homebrew formula for anomalyco tap ## TUI - Restore showDetails check removed in Permission rework (@ryanwyler) - Cleanly restore terminal state on fatal error exit (@itsrainingmani) - Improve responsive layout by hiding header and footer when sidebar is visible - Simplified session settings management (@maxstevens-nl) - Remove unused imports and variables from header component - Add overlay sidebar for narrow screens to improve mobile experience - Add expandable bash output for long commands to improve readability - Remove username visibility toggle and simplify user message metadata display in TUI - Improve indentation and label clarity for TUI answer options - Ensure forked message text is inserted in prompt when forking conversations (@ariane-emory) - Use selected foreground color for permission selection text (@ariane-emory) - Constrain autocomplete height to available screen space in TUI (@Raviguntakala) - Add selectedListItemText to orange themes for button text visibility (@ThanhNguyxn) ## Desktop - Show custom models without valid release_date in web UI model selector (@zerone0x) - Open external links in default browser on desktop (@athal7) **Thank you to 15 community contributors:** - @elithrar: - fix: config precedence now correctly allows local config to override remote (#7141) - @ThanhNguyxn: - fix(theme): add selectedListItemText to orng themes for button text visibility (#7169) - @rscarvalho: - fix(mcp): use correct authorization server URL for OAuth discovery (#7234) - @Raviguntakala: - fix(tui): constrain autocomplete height to available screen space (#7181) - @malhashemi: - refactor: simplify task tool subagent filtering (#7165) - @ariane-emory: - fix: use selectedForeground's computer colour (or theme's selectedForeground value) for the colour of text in permission selection (resolves #7246) (#7251) - fix(tui): ensure forked message text is inserted in prompt (resolves #7257) (#7259) - @athal7: - fix(desktop): open external links in default browser (#7221) - @freespace8: - feat(flags): allow disabling .claude prompt and skills loading (#7205) - @aaroniker: - feat: Polish dialog, popover shadows & borders, add missing provider logos (#7326) - @assagman: - fix(cli): add help text to debug command and subcommands (#7328) - @maxstevens-nl: - refactor: session settings simplification (#7342) - @noamzbr: - fix: Add kind, title, rawInput to ACP tool_call_update events (#7368) - @zerone0x: - fix(app): show custom models without valid release_date in web UI mod… (#7349) - @itsrainingmani: - fix: cleanly restore terminal state on fatal error exit (#7359) - @ryanwyler: - fix(tui): restore showDetails check removed in Permission rework (#7285)
Features
7. Januar 2026
## Core - Encode non-ASCII directory paths in HTTP headers (@jwaterwater) - Add truncation for all tools - Make General SubAgent visible in agent list (@dbpolito) - Improve handling of unserializable errors - Added ability to hide subagents from primary agent's system prompt (@Sewer56) - Add --use-system-ca flag in execArgv to support system certificate authorities - Ensure commands listing subagent work ## TUI - Add theme functionality - Reload theme when configuration changes - Clear palette cache - Add agent color to inline task tool ASCII character and highlight agent name (@spoons-and-mirrors) - Escape backticks when passing commands to PowerShell (@NSPC911) - Restore attach session lookup behavior in TUI (@rmk40) ## Desktop - Fix pasting images when input is empty in desktop app (@dbpolito) - Bundle media framework in desktop application (@Brendonovich) - Fixed macOS application entitlements configuration (@Brendonovich) - Add audio input and camera permissions to entitlements (@saeedvaziry) - Bundle media framework in AppImage for desktop application (@Brendonovich) - Use Show instead of Suspense in desktop application (@Brendonovich) - Add UI package to desktop application (@Brendonovich) - Show window immediately during desktop startup (@usvimal) - Rework storage approach in app - Fix session navigation with keyboard shortcuts - Permission auto-accept should hide when not needed - Improve terminal text selection visibility with better color contrast **Thank you to 11 community contributors:** - @rmk40: - fix(tui): restore attach session lookup behavior (#7150) - @NSPC911: - fix: escape backticks when passing to powershell (#7157) - @Sewer56: - Added: Ability to hide subagents from primary agents system prompt. (#4773) - @Brendonovich: - use custom tauri-cli on linux - desktop: use regular tauri cli again - desktop: use correct tauri-cli branch - try using forked tauri-cli again - add ui package to desktop - desktop: use Show instead of Suspense - desktop: appimage bundleMediaFramework - fix entitlements - desktop: go back to regular tauri cli - desktop: bundleMediaFramework - @spoons-and-mirrors: - add agent color to inline task tool ascii char and highlight agent name (#7142) - @usvimal: - perf: show window immediately during desktop startup (#6734) - @dbpolito: - Make General SubAgent not hidden (#6752) - Desktop: Fix Paste image on empty input (#7130) - @saeedvaziry: - Add audio input and camera permissions to entitlements (#7117) - @shuv1337: - feat: add Night Owl theme (desktop) (#7151) - @jwaterwater: - fix: encode non-ASCII directory paths in HTTP headers (#7145) - @athal7: - fix(ui): prevent iOS Safari auto-zoom on input focus (#7214)
Features
6. Januar 2026
## Core - Add timeout to prevent hanging operations (@spoons-and-mirrors) - Add support for URL-based instructions (@spoons-and-mirrors) - Load OPENCODE_CONFIG_DIR AGENTS.md into the system prompt (@ThomasGormley) - Fix title generation for subtask-only messages to extract actual user prompts instead of generic tool execution descriptions - Ensure 'name' isn't being sent in request body for custom agent - Restore skill filtering by agent permissions (@malhashemi) - Add missing await for available skills in skill tool (@mwolting) - Prevent Java Language Server path checks from throwing errors (@T1mn) - Add automatic jp. prefix assignment for Tokyo region (ap-northeast-1) (@ikeda-tomoya-swx) - Polish documentation markdown wording and capitalization (@T1mn) - Filter dead worktrees in core functionality - Handle cases where git is not available or initialized - Upgrade OpenTUI to v0.1.69 with text rendering performance improvements ## TUI - Add frecency-based file autocomplete to CLI (@galkatz373) - Add keyboard shortcut 'c' to copy device code in OAuth flow (@akinfelami) - Fix sidebar title padding to prevent scrollbar edge case (@ryanwyler) ## Desktop - Copy and paste in terminal was broken - Fix desktop documentation - Increase contrast in terminal text for better readability - Add view button to open files from review sidebar (@justrau) - Open review sidebar when selecting file from picker (@justrau) - Add middle-click to close tabs in review sidebar (@justrau) - Improved web load performance through code splitting - Improve scroll store performance in app - Update Cargo.lock (@Brendonovich) - Add single-instance plugin to prevent multiple desktop windows (@Junseo5) - Make subtasks clickable in the task list (@OpeOginni) **Thank you to 21 community contributors:** - @OpeOginni: - Feat/clickable subtask (#6846) - @T1mn: - docs: polish markdown wording and capitalization (#7019) - docs: add Simplified Chinese README (#7055) - fix: prevent jdtls path checks from throwing (#7052) - @shanebishop1: - docs: fix order of permissions in agents docs (permissions subsection) (#7041) - @xiliumz: - fix: use actual version in install script (#7044) - @Junseo5: - fix(desktop): add single-instance plugin to prevent multiple windows (#6966) - @Brendonovich: - update Cargo.lock - @Eric-Guo: - Fix(app): @pierre/diffs will crash when a diff has undefined text (#7059) - @justrau: - feat(app): add middle-click to close tabs in review sidebar (#7094) - fix(app): open review sidebar when selecting file from picker (#7096) - feat(app): add view button to open files from review sidebar (#7095) - fix(app): open links in new tab or browser (#7127) - @athal7: - docs(ecosystem): add opencode-devcontainers plugin (#7100) - @ryanwyler: - fix: sidebar title padding to prevent scrollbar edge case (#7089) - @ikeda-tomoya-swx: - fix(provider): add jp. prefix auto-assignment for Tokyo region (ap-northeast-1) (#7053) - @akinfelami: - feat(tui): add 'c' shortcut to copy device code in OAuth flow (#7020) - @mwolting: - fix: add missing await for available skills in `skill` tool (#7072) - @malhashemi: - fix: restore skill filtering by agent permissions (#7042) - @jerome-benoit: - fix(desktop): use current_binary() to support symlinked executables (#7102) - @DamianB-BitFlipper: - docs: Expand keybinds documentation (#7108) - @ThomasGormley: - load `OPENCODE_CONFIG_DIR` AGENTS.md into the system prompt (#7115) - @galkatz373: - feat(cli): frecency file autocomplete (#6603) - @spoons-and-mirrors: - feat: url based instructions (#7125) - adding timeout (#7128) - @mtymek: - docs: add OpenCode-Obsidian plugin (#7129) - @dbpolito: - Desktop: Fix Big Messages (#7133)
Features
5. Januar 2026
## Core - Fixed terminal long-running processes in app - Preserve permission config key order to maintain user-defined permission precedence - Pass image parts to custom commands (@melihmucuk) - Add support for jp. prefix in Amazon Bedrock cross-region inference profiles (@ikeda-tomoya-swx) - Add configuration options and authentication precedence for Bedrock (@wnkz) - Transform agent improvements and optimizations - Filter out empty messages and reasoning for Anthropic API compatibility ## TUI - Expand directory on Tab, select on Enter in TUI autocomplete (@yuguorui) - Update GitHub Actions examples to use actions/checkout@v6 (@joshuadavidthomas) - Fix Lucent Orange background transparency for slash commands (@roerohan) - Add description for MCP command in documentation (@cravenceiling) - Add system theme resolution and event handling to TUI - Improve experience when operations are interrupted ## Desktop - Store image attachments in the app - Fix bottom padding in app interface - Fixed terminal flakiness issues in the app - Performance improvements through event batching in app - Fix prompt input covering content in app - Worktree selection now correctly navigates to the selected worktree - Avoid unintended submits during IME composition (@MogamiTsuchikawa) - Highlight collapsed active project in sidebar (@albingroen) - Fix flicker and navigation issues when collapsing or expanding projects in the app (@albingroen) - Add CLI installation to desktop application (@dbpolito) - Fix image dragging in project edit dialog (@albingroen) **Thank you to 10 community contributors:** - @albingroen: - fix(app): fix image dragging in project edit dialog (#6700) - fix(app): fix flicker and navigation when collapsing/expanding projects (#6658) - feat(app): highlight collapsed active project in sidebar (#6958) - @dbpolito: - Desktop: Install CLI (#6526) - @MogamiTsuchikawa: - fix(app): avoid unintended submits during IME composition (#6952) - @wnkz: - feat(bedrock): config options and authentication precedence (#6377) - @cravenceiling: - docs: add description for MCP command (#6944) - @roerohan: - fix: lucent-orng bg transparency for slash commands (#6938) - @joshuadavidthomas: - docs: update GHA examples to use `actions/checkout@v6` (#6969) - @ikeda-tomoya-swx: - fix(provider): add support for jp. prefix in Amazon Bedrock cross-region inference profiles (#6916) - @melihmucuk: - fix: pass image parts to custom commands (#6525) - @yuguorui: - tui: autocomplete: expand directory on Tab, select on Enter (#6975)
Features
5. Januar 2026
## Core - Fix permission rule matching to use permission field instead of pattern field - Fix permission evaluation to use rule-based matching instead of wildcard patterns - Handle skill scan failures for .claude files gracefully - Handle case where big-pickle is unavailable as a fallback - Prevent main model thinking variant from applying to small model (@melihmucuk) - Increase default timeout to 30 seconds based on user feedback - Add session search functionality with debounced input and server-side filtering - Improve Rust formatter detection and add cargo fmt support ## TUI - Allow exit when viewing child session in TUI (@rmk40) - Fix symmetric padding in TUI input field - Prevent session list rows from wrapping to two lines (@rgodha24) - Fix optional session access to prevent runtime errors in TUI ## Desktop - Implement auto-scroll for active command in slash popover (@OpeOginni) - Fix responsive menu in desktop application (@dbpolito) - Optimize model dialog visibility lookups (@shkumbinhasani) - Add home icon to responsive menu in desktop app (@dbpolito) - Add SVG preview support in session viewer (@shuv1337) - Add AppStream MetaInfo file for desktop application (@NN708) - Fix mobile screen size issues (@carterworks) - Fix custom slash commands not showing on initial / (@Raviguntakala) - Improved prompt input handling in the application **Thank you to 11 community contributors:** - @melihmucuk: - fix: prevent main model thinking variant from applying to small model (#6839) - @rgodha24: - fix: prevent session list rows from wrapping to 2 lines (#6812) - @albingroen: - fix(ui): fix select chevron alignment (#6690) - @Raviguntakala: - fix(app): fix custom slash commands not showing on initial / (#6829) - @carterworks: - Fix a few mobile screen size issues (#6808) - @NN708: - feat(desktop): add AppStream MetaInfo file (#6030) - @shuv1337: - feat(app): add SVG preview support in session viewer (#6868) - @dbpolito: - Desktop: Improve Big Session Navigation - Scrollable (#6837) - Desktop: Adding Home Icon on Responsive Menu (#6794) - Desktop: Fix Responsive Menu (#6789) - @shkumbinhasani: - perf: optimize model dialog visibility lookups (#6791) - @OpeOginni: - feat(desktop): implement auto-scroll for active command in slash popover (#6797) - @rmk40: - fix(tui): allow exit when viewing child session (#6898)
Features
4. Januar 2026
This is a **major change** that overhauls the permissions system in OpenCode. ### Tools Merged into Permission The `tools` configuration has been deprecated and merged into the `permission` field. Previously, you could enable/disable tools like this: ```json { "tools": { "bash": true, "edit": false } } ``` Now, this should be configured using `permission`: ```json { "permission": { "bash": "allow", "edit": "deny" } } ``` The old `tools` config is still supported for backwards compatibility and will be automatically migrated to the permission system. ### Granular Permissions with Object Syntax Permissions now support granular control using an object syntax with pattern matching. When you specify a permission as an object, you can set different rules for different patterns: ```json { "permission": { "bash": { "npm *": "allow", "git *": "allow", "rm *": "deny", "*": "ask" }, "edit": { "*.md": "allow", "*.ts": "ask", "*": "deny" } } } ``` Each key in the object is a glob pattern that matches against the tool's input, and the value is the action to take: - `"allow"` - automatically approve - `"deny"` - automatically reject - `"ask"` - prompt the user for approval You can also set a blanket permission using a simple string: ```json { "permission": { "bash": "allow", "edit": "ask" } } ``` Or set all permissions at once: ```json { "permission": "allow" } ``` ### Breaking Changes for SDK Users The permission events have changed significantly. The new `PermissionNext` module (`permission/next.ts`) has a different event structure compared to the old `Permission` module (`permission/index.ts`): **Old Event Structure (`Permission.Event`):** - `Updated`: `{ id, type, pattern, sessionID, messageID, callID, message, metadata, time }` - `Replied`: `{ sessionID, permissionID, response }` **New Event Structure (`PermissionNext.Event`):** - `Asked`: `{ id, sessionID, permission, patterns, metadata, always, tool: { messageID, callID } }` - `Replied`: `{ sessionID, requestID, reply }` Key differences: - Event name changed from `permission.updated` to `permission.asked` - `type` renamed to `permission` - `pattern` is now `patterns` (array of strings) - `message` field removed - `response` renamed to `reply` - `permissionID` renamed to `requestID` - New `always` field contains patterns that would be approved for future requests if user selects "always" The reply values are the same: `"once"`, `"always"`, or `"reject"` ### Server Changes - New endpoint: `POST /permission/:requestID/reply` for responding to permission requests - Old endpoint `POST /session/:sessionID/permissions/:permissionID` is now deprecated - `GET /permission` now returns `PermissionNext.Request[]` instead of `Permission.Info[]` - Added CORS whitelist support via `server.cors` config option - Added Content-Type headers for proxied static assets - mDNS service name now includes port for uniqueness ### Other Changes - Agent `tools` field is deprecated - use `permission` instead - Agent `maxSteps` is deprecated - use `steps` instead - Unknown agent properties are now collected into `options` - Mode and plugin globs no longer search subdirectories (simplified to top-level only) ## Core - Add development scripts for better debugging workflow in TUI - Ensure @opencode-ai/plugin exists only on first run - Add MCP resources support (@paoloricciuti) - Initialize config in worktree - Prioritize free GPT-5-mini for small model in GitHub Copilot - Remove hardcoded .env read block and use new permissions model instead - Prevent duplicate plugin function initialization (@ShpetimA) - Update GitHub Copilot model priority list - Add variant field to chat message input - Update AGENTS.md documentation (@aryasaatvik) - Fixed dependency installation and git worktree branch creation - Fixed an issue in the codebase - Add sandbox support for git worktrees to allow working in multiple directories per project - Add timeout to MCP client connection calls (@RhysSullivan) - Add per-project MCP config overrides (@jknlsn) - Improve root detection for Gradle multi-project builds in Kotlin language server (@JBou) - Improve plugin loading to handle builtin plugin failures gracefully - Add reject message support to permission dialogs for better user feedback - Wrap queued user messages with reminder to stay on track - Add managed git worktrees - Upgrade OpenTUI to v0.1.68 using GPA - Add escape key handling to permission dialogs for better keyboard navigation - Add TUI session selection API endpoint for navigation (@code-yeongyu) - Add Kotlin LSP integration (@tjg184) - Merge instructions arrays across config files instead of overriding them (@elithrar) - Add variant support for minimal mode - Fix Cloudflare AI Gateway SDK chat undefined error (@englishm) - Handle NotFoundError for non-shared sessions in sync (@Hona) - Improve plugin loading to handle builtin plugin failures gracefully - Update CI configuration - Add reload functionality and improve lazy utility with reset capability - Remove memory leak fixes documentation after implementation - Fix memory leaks in session management and improve permission error handling - Fix TUI permission tests for new evaluate function signature - Improve permission error handling and evaluation logic in TUI - Ignore - Add assistant metadata to session export (@dmmulroy) - Ensure new permissions changes work for special case bash commands like rm, cd, etc - Rework permission system - Remove outdated Haiku filter for GitHub Copilot (@alcpereira) - Make install dependencies non-blocking - Use --no-cache flag when behind proxy to prevent connection hangs - Check for context overflow mid-turn in finish-step (@aryasaatvik) - Display error if invalid agent is used in a command (@Leka74) - Add Content-Type headers for proxied static assets (@monotykamary) ## TUI - Add missing theme list keybind in TUI (@aspiers) - Handle duplicate PR creation when agent creates PR (@elithrar) - Fix system theme diff highlighting in TUI - Add --variant flag to run command (@shuv1337) - Remove OpenRouter provider from priority list - Make LSP status icon muted when no LSPs are active (@itsrainingmani) - Make MCP status icon muted when no MCP servers are enabled (@itsrainingmani) - Pass attach directory to SDK client in TUI (@shuv1337) - Handle actions/checkout v6 credential storage change (@elithrar) - Use Bun.sleep instead of Promise with setTimeout (@edlsh) - Add Osaka Jade theme (@st-eez) - Add heap snapshot option to system menu for debugging memory usage - Fixed Windows fallback for "less" command in session list (@itsrainingmani) - Fix import command regex to properly handle file paths - Fix stats command day calculation and time filtering ## Desktop - Fix scroll position restoration in app - Don't override Ctrl+A on Windows - Improve auto-scroll behaviors in the application - Fixed editing projects in desktop application (@dbpolito) - Update server URL normalization to retain path (@OpeOginni) - Add image preview support in session viewer (@shuv1337) - Add /compact session command to compress conversation history - Adjust window drag region layout for desktop application - Relax request timeouts - Properly decode session ID for permission context in desktop app (@OpeOginni) - Work in progress on application features - Improve application startup time - Add work in progress desktop functionality - Add file context feature to app - Improve desktop window resize handle (@dbpolito) **Thank you to 30 community contributors:** - @monotykamary: - fix(server): add Content-Type headers for proxied static assets (#6587) - @Leka74: - fix: display error if invalid agent is used in a command (#6578) - @aryasaatvik: - fix(session): check for context overflow mid-turn in finish-step (#6480) - docs: update AGENTS.md (#6800) - @alcpereira: - fix: remove outdated Haiku filter for GitHub Copilot (#6593) - @dbpolito: - Desktop: Improve Resize Handle (#6608) - Desktop: Edit Project Fix (#6757) - @itsrainingmani: - fix: windows fallback for "less" cmd in `session list` (#6515) - fix(tui): make mcp status icon muted when no mcp servers are enabled (#6745) - fix(tui): make lsp status icon muted when no lsps are active (#6773) - @dmmulroy: - feat: add assistant metadata to session export (#6611) - @Hona: - fix(share): handle NotFoundError for non-shared sessions in sync (#6634) - @OpeOginni: - fix(desktop): Properly decode session id for permission context (#6580) - fix(server): update server URL normalization to retain path (#6647) - @albingroen: - fix(ui): fix slight vertical overflow in project selector (#6589) - @st-eez: - feat(theme): add Osaka Jade theme (#6609) - @edlsh: - refactor: use Bun.sleep instead of Promise setTimeout (#6620) - @englishm: - fix: cloudflare-ai-gateway sdk.chat undefined error (#6407) - @elithrar: - fix: handle actions/checkout v6 credential storage change (#6667) - fix: merge instructions arrays across config files (#6663) - github: handle duplicate PR creation when agent creates PR (#6777) - docs: add logging best practices for plugin authors (#6833) - @spoons-and-mirrors: - docs: add subtask2 to ecosystem page (#6704) - @tjg184: - feat: Add kotlin lsp integration (#6601) - @code-yeongyu: - feat(plugin): add tui.session.select API endpoint for TUI navigation (#6565) - @shuv1337: - fix(tui): pass attach directory to sdk client (#6715) - feat(app): add image preview support in session viewer (#6678) - feat: add --variant flag to run command (#6805) - @JBou: - fix(kotlin-ls): improve root detection for Gradle multi-project builds (#6717) - @jknlsn: - feat: add per-project MCP config overrides (#5406) - @sin4ch: - docs: enhance MCP servers documentation with a tip (#6713) - @RhysSullivan: - fix(mcp): add timeout to client.connect() calls (#6760) - @jerilynzheng: - docs: Add Vercel AI Gateway to provider docs (#6790) - @benjaminshafii: - docs: Add opencode-scheduler plugin to ecosystem (#6804) - @ShpetimA: - fix(plugin): prevent duplicate plugin function initialization (#6787) - @johnconnor-sec: - docs: typo in subtask documentation (#6821) - @felipeorlando: - Remove opencode-skills entry from ecosystem.mdx (#6817) - @jerome-benoit: - feat(nix): preliminary desktop app flake integration (#6135) - @paoloricciuti: - feat: mcp resources (#6542) - @aspiers: - fix(tui): add missing `theme_list` keybind (#6779)
Features
1. Januar 2026
## Core - Add Windows support for PTY and cross-platform build scripts in desktop application (@Hona) - Prevent TimeoutOverflowWarning by capping setTimeout delay to maximum 32-bit signed integer value ## Desktop - Add in-app update toasts to desktop application - Add subagent mention support to desktop application (@dbpolito) **Thank you to 2 community contributors:** - @dbpolito: - Desktop: Add Subagents Mention Support (#6540) - @Hona: - fix(desktop): Windows support for PTY and cross-platform build scripts (#6508)
Features
31. Dezember 2025
## Core - Default to ai-sdk/openai-compatible when no npm package is provided - Add support for LSP workspace/didChangeWatchedFiles notifications (@marceldev89) ## Desktop - Improved model selector in app - Auto-accept colors in app - Fix tooltip colors in desktop application - Better affordance for auto-accept in desktop app - Add input changes functionality - Don't show notifications when auto-accepting tasks in desktop app - More defensive access in desktop application - Better variant toggle in app - Add keybind tooltip component to app - Fix desktop prompt input cleanup behavior **Thank you to 2 community contributors:** - @marceldev89: - Add support for LSP workspace/didChangeWatchedFiles (#6524) - @vtemian: - fix(tui): don't show 'Agent not found' toast for subagents (#6528)
Features
31. Dezember 2025
## Core - Fix plugin and mode glob patterns - Add debug agent subcommand to test agents in isolation (@Eric-Guo) - Display MCP tag for prompts in autocomplete but not in prompt (@paoloricciuti) ## TUI - Clarify agent-name placeholder in tips (@anzulaqeel-anunzio) ## Desktop - Remove status bar and add new elements in header - Better new session button in desktop app - Add unified diff toggle to desktop application - Fix desktop not rendering large sessions **Thank you to 4 community contributors:** - @paoloricciuti: - fix: display MCP tag for prompts in autocomplete but not in prompt (#6531) - @anzulaqeel-anunzio: - fix: Clarify agent-name placeholder in tips (#6520) - @Eric-Guo: - feat(cli): New debug agent <name> subcommand (#6529) - @backnotprop: - docs: Add plannotator plugin (#6510)
Features
31. Dezember 2025
## Core - MDNS no longer fails when service is already registered - Allow configurable CORS hosts - Add MCP prompts as slash commands (@paoloricciuti) - Add Gemini 3 Flash to fast models list (@junmediatek) - Bundle @ai-sdk/vercel version 1.0.31 for AI SDK v5 support (@OpeOginni) - Cleaner view for subagents hint text - Add configurable timeout for MCP tool calls to prevent hanging requests - Read plural resource types and stop erroring on them - Fix OpenAI variants for Codex models - Add model usage statistics with input/output token breakdown to stats command (@processtrader) - Add rustfmt formatter for Rust files (@frhd) - Ensure variants work for completely custom models ## TUI - Adjust keys for uniqueness calculations to use provider/model ## Desktop - Don't open native folder select when connected to remote server - Add model variants support to app - Better notification icon in desktop app - Upgrade to latest version on error page in desktop app **Thank you to 6 community contributors:** - @frhd: - feat(format): add rustfmt formatter for Rust files (#6482) - @processtrader: - feat: add model usage statistics with input/output token breakdown to stats command (#6296) - @brianclinkenbeard: - Update mise install command (#6504) - @OpeOginni: - feat: bundle in @ai-sdk/vercel version 1.0.31 for aisdk v5 support (#6512) - @junmediatek: - feat: add gemini-3-flash to fast models list (#6497) - @paoloricciuti: - feat: mcp prompts as slash commands (alternative) (#5767)
Features
30. Dezember 2025
## Core - Add CORS exception for Tauri desktop application - Add Prisma language server (@ravshansbox) - Add extract reasoning middleware (@snipeship) **Thank you to 2 community contributors:** - @snipeship: - feat: add extract reasoning middleware (#6463) - @ravshansbox: - Add prisma language server (#6462)
Features
30. Dezember 2025
## Core - Allow CORS requests from *.opencode.ai subdomains **Thank you to 1 community contributor:** - @anntnzrb: - style(nix): use idiomatic inherit syntax (#6457)
Features
30. Dezember 2025
## TUI - Fixed high CPU usage and memory leak when filtering model list to empty results (@d3vr) ## Desktop - More defensive agent access in desktop application **Thank you to 1 community contributor:** - @d3vr: - Fix: High CPU / memory leak when filtering model list window to empty results (#6435)
Features
30. Dezember 2025
## Core - Fix Cloudflare provider information (@roerohan) ## Desktop - Sort desktop servers by health status - Don't persist fallback server URLs in desktop app - Improved text selection behavior in the app - Share projects across all local servers in desktop app **Thank you to 1 community contributor:** - @roerohan: - fix: cloudflare provider information (#6426)
Features
30. Dezember 2025
## Core - Upgrade OpenTUI to v0.1.67, fixing split diff alignment and markdown jitter ## Desktop - Don't hang on to dead server in desktop app
Features
30. Dezember 2025
## Core - Revert OpenTUI to 0.1.63 to fix streaming jitter regression (@ryanwyler) **Thank you to 2 community contributors:** - @connorads: - docs: global claude skills (#6436) - @ryanwyler: - fix: revert opentui to 0.1.63 to fix streaming jitter regression (#6439)
Features
30. Dezember 2025
## Core - Add ability to open projects in web interface - Read global Claude skills in addition to project-specific skills - Use named import for bonjour-service to fix module resolution (@Jkker) - Add variants toggle - Expose server URL to plugins (@EduSantosBrito) - Upgrade OpenTUI to v0.1.66 fixing split diff alignment ## TUI - Prevent model list corruption from SolidJS reactivity (@joachim-isaksson) ## Desktop - Add readline shortcuts to desktop app - Disable sourcemap generation in desktop build - Add system notifications support for desktop application **Thank you to 4 community contributors:** - @sneycampos: - fix: Correct theme command in tui.mdx (#6410) - @EduSantosBrito: - feat(plugin): expose server URL to plugins (#6373) - @Jkker: - fix(mdns): use named import for bonjour-service (resolves #6422) (#6423) - @joachim-isaksson: - fix: prevent model list corruption from SolidJS reactivity (#6359)
Features
30. Dezember 2025
## Core - Add timeout to file watcher subscriptions - Adjust git watcher to ignore files other than HEAD - Set small options for Google models on OpenRouter (@neominik) - Add Nix syntax highlighting (@anntnzrb) - Make format parameter optional with markdown default in WebFetch (@samcornor) - Filter messages with only step-start parts in toModelMessage (@coleleavitt) - Add nixfmt formatter for Nix files (@anntnzrb) ## Desktop - Fix error page formatting in desktop app - Improve error messages in desktop app **Thank you to 7 community contributors:** - @anntnzrb: - feat(format): add nixfmt formatter for Nix files (#6380) - feat(highlight): add nix syntax highlighting (#6386) - @coleleavitt: - fix: filter messages with only step-start parts in toModelMessage (#6383) - @gbpdt: - Support different Nix store path prefixes (#6367) - @nexxeln: - add supermemory plugin to ecosystem (#6399) - @samcornor: - fix(webfetch): make format parameter optional with markdown default (#6345) - @neominik: - Set smallOptions for google models on openrouter (#6362) - @panta82: - docs: opencode notificator plugin (fixed link) (#6341)
Features
29. Dezember 2025
## Core - Prevent truncated Claude streams (@CasualDeveloper) - Fix ESLint LSP server auto-installation failure on Windows (@fraineralex) - Install local plugin dependencies from package.json (@elithrar) - Preserve imperative statements in summary generation - Add support for region and bearer token configuration in Bedrock (@wnkz) - Add support for `.claude/skills` directory (@connorads) ## TUI - Make authentication URLs clickable regardless of line wrapping in terminal interface (@brettheap) ## Desktop - Fix scroll synchronization in desktop application - Improve desktop performance and scrolling behavior - Add auto-accept edits toggle in desktop application - Add image preview and deduplicate file uploads in desktop application (@dbpolito) - Improve desktop application performance and reduce jankiness - Revert desktop jankiness fix - Fix desktop application jankiness - Add project editing functionality in desktop application (@dbpolito) - Improve state update granularity for permissions in desktop application - Improve state update granularity in desktop application - Synchronize last agent and model when changing sessions in desktop application - Fix context usage alignment in desktop application **Thank you to 9 community contributors:** - @connorads: - feat: add support for `.claude/skills` directory (#6252) - @wnkz: - fix(bedrock): support region and bearer token configuration (#6332) - @3mdistal: - docs: clarify that MCP tools require glob patterns to disable (#6306) - @elithrar: - docs: add compaction, watcher, experimental and provider options (#6304) - meta: use colors for agents (#5845) - feat: install local plugin dependencies from package.json (#6302) - @dbpolito: - Desktop: Edit Project (#6360) - Desktop: Image Preview and Dedupe File Upload (#6372) - @airtonix: - docs: add opencode-skillful plugin to ecosystem page (#6333) - @fraineralex: - fix(lsp): ESLint LSP server fails to auto-install on Windows (#6366) - @brettheap: - fix(tui): make auth URLs clickable regardless of line wrapping (#6317) - @CasualDeveloper: - fix: prevent truncated Claude streams (#6388)
Features
29. Dezember 2025
- Sync LSP updates (@dbpolito) - Added theme preview - Include current working directory in local MCP transport (@dbpolito) **Thank you to 4 community contributors:** - @didier-durand: - doc: fix typos in various files (#6294) - @dbpolito: - Include current working directory in local MCP transport (#6303) - Desktop: Sync LSP updates (#6305) - @mohak34: - docs: add opencode-notifier plugin to ecosystem (#6283) - @elithrar: - docs: add plugin configuration documentation (#6301)
Features
28. Dezember 2025
- Thinking & tool call visibility settings for `/copy` and `/export` (@rektide) - Add bash shell completions (@scarf005) - Fix stats command to correctly handle `--days 0` for current day statistics (@processtrader) - Fix: search all recent models instead of only top 5 in TUI /models command - Allow line numbers and ranges in autocomplete (@ewired) - Themes - Fix copy/paste in terminal - Fix: drag file over entire body to attach - Fix: handle non-text response parts in GitHub action (@elithrar) **Thank you to 7 community contributors:** - @ewired: - Allow line numbers and ranges in autocomplete (#4238) - @panta82: - docs: add opencode-notificator to ecosystem plugins list (#6269) - @processtrader: - fix: stats command to correctly handle `--days 0` for current day statistics (#6259) - @Nindaleth: - docs: document attach command (#6254) - @scarf005: - feat: add bash shell completions (#6239) - @rektide: - Thinking & tool call visibility settings for `/copy` and `/export` (#6243) - @elithrar: - fix: handle non-text response parts in GitHub action (#6173)
Features
27. Dezember 2025
- Added path traversal protection to File.read and File.list (#5985) - Added ability to disable spinner animation (#6084) - Added shfmt formatter for shell scripts (#6204) - Added configurable compaction settings to allow users to disable auto-compaction and pruning via config instead of flags - Fixed compact command after revert now properly cleans up revert state (#6235) - Fixed compaction config checks to properly respect user settings - Fixed `opencode web` baseURL error (#6181) - Fixed upgrade command to use gh releases page if not npm/bun/pnpm install method - Fixed mdns global config - Reapplied optional mdns service - Updated transform for gemini models so that topP and topK match gemini-cli values - Only show diagnostics block when errors exist (#6175) - Added MCP UI (#6162) - Added permissions - Fixed prompt input fixes, directory and branch in status bar - Handle more errors - Added support for issues and workflow_dispatch events (#6157) **Thank you to 9 community contributors:** - @JackNorris: - fix: only show diagnostics block when errors exist (#6175) - @didier-durand: - doc: fix typos in various files (#6196) - doc: fix typos in various files (#6238) - @dbpolito: - Desktop: MCP UI (#6162) - @robertocarvajal: - fix(dep): Update package.json - fix perplexity provider version (#6199) - @anntnzrb: - feat: add shfmt formatter for shell scripts (#6204) - feat: add ability to disable spinner animation (#6084) - @rgodha24: - fix: `opencode web` baseURL error (#6181) - @elithrar: - github: support issues and workflow_dispatch events (#6157) - @ochsec: - fix: compact command after revert now properly cleans up revert state (#6235) - @edlsh: - feat: add path traversal protection to File.read and File.list (#5985)
Features
26. Dezember 2025
- Make JDTLS use the correct config directory on Windows (@apersomany) - Added Haskell LSP support (@amerocu) **Thank you to 2 community contributors:** - @amerocu: - feat: haskell lsp support (#6141) - @apersomany: - fix(lsp): make JDTLS use the correct config directory on Windows (#6121)
Features
26. Dezember 2025
- Fixed padding - Moved session context to top-right - Fixed missing keybinds in tooltips - Fixed can't collapse project with active session - Added better indicator that session is busy
Features
25. Dezember 2025
- Fixed server connection failure display - Fixed Content-Type headers for static assets on app.opencode.ai (@sourman) - Disabled tips display in home route **Thank you to 3 community contributors:** - @robbtolli: - docs: Corrected the number of built-in subagents in documentation (#6133) - @connorads: - docs: update skills to use canonical `~/.config/opencode` location (#6132) - @sourman: - fix: correct Content-Type headers for static assets on app.opencode.ai (#6113)
Features
24. Dezember 2025
- Added "Did you know?" start screen tips - Added prompt stashing (@RhysSullivan) - Handle tools/list_changed notifications in MCP (@seuros) - Console copy-to-clipboard via opentui (@edlsh) - Fixed textarea resizing when pasting prompt less than 150 characters (@OpeOginni) - Prevented keybinds from executing when dialog is open (@anntnzrb) - Fixed favorites and recents stay visible when filtering models (@DanielFGray) - Updated current todo style - Updated import and PR commands to use new share link URL - Made "The socket connection was closed unexpectedly" errors retryable - Improved error retry logic - Fixed session sort when multiple active - Fixed an issue where text selection was disabled - Excluded deprecated models - Conditionally show review pane toggle - Fixed GitHub Pull Request event handling (@dbpolito) - Added Cloudflare AI Gateway provider (@elithrar) **Thank you to 12 community contributors:** - @dbpolito: - Fix Github Pull Request Event (#6037) - @RhysSullivan: - [feat]: prompt stashing (#6021) - @anntnzrb: - fix(tui): prevent keybinds from executing when dialog is open (#6017) - feat(install): add standard CLI flags (--help, --version, --no-modify-path) (#5885) - @elithrar: - docs: add MCP OAuth debugging section (#6047) - providers: add Cloudflare AI Gateway (#5174) - @DanielFGray: - fix: favorites and recents stay visible when filtering models (#6053) - @JRedeker: - Add opencode-shell-strategy plugin to ecosystem (#5995) - @nagyv: - Update gitlab.mdx to use the 2.x component version (#6062) - @OpeOginni: - fix: resize textarea when pasting prompt less than 150 chars (#6070) - @edlsh: - feat(tui): console copy-to-clipboard via opentui (#5658) - @seuros: - feat(mcp): handle tools/list_changed notifications (#5913) - @xiantang: - docs: add Neovim to the list of editors (#6081) - @R44VC0RP: - fix: remove SVG favicon to improve SEO (#5755)
Features
23. Dezember 2025
- Improved `mcp` CLI and added ability to debug MCP OAuth (@elithrar) - Fixed handling of Windows CRLF line endings in grep tool (@majiayu000) - Added per-agent filtering to skill tool description (@malhashemi) - Better styling for small screens (short and/or not wide) - Changed task tool container to block layout for better subagent session display - Better error messages on connection failure - Allowed compaction hook to replace prompt entirely (@joelhooks) **Thank you to 5 community contributors:** - @malhashemi: - feat(skill): add per-agent filtering to skill tool description (#6000) - @joelhooks: - feat(plugin): allow compaction hook to replace prompt entirely (#5907) - @majiayu000: - fix: handle Windows CRLF line endings in grep tool (#5948) - @elithrar: - improve `mcp` CLI + ability to debug MCP oauth (#5980) - @Brendonovich: - console: add AppImage download link
Features
22. Dezember 2025
- Added experimental LSP tool - Added nixd as LSP for Nix language (@luochen1990) - Supported clipboard image paste (Ctrl+V) on Windows (@zzzeian) - Ensured installation commands use .quiet (@val-2) - Added mobile responsiveness - Added ARM64 build for Linux (@NN708) - Polished dialog and list styles for the desktop app, and added fixed logos (@aaroniker) - Cleaned up auto scroll - Filtered child sessions from header - Exposed auto parameter in session.summarize for plugins (@code-yeongyu) - Added Agent Skills support - Improved built-in /review prompt (@elithrar) - Adjusted Minimax m2 topK and added Minimax m2.1 topP - Fixed snapshots to be performed in cases where finish-step is not reached (@noamzbr) **Thank you to 12 community contributors:** - @code-yeongyu: - feat(server): expose auto param in session.summarize for plugins (#5924) - @elithrar: - prompts: improve built-in /review prompt (#5918) - @noamzbr: - fix: Perform snapshot in cases finish-step is not reached (#5912) - @zzzeian: - fix: support clipboard image paste (Ctrl+V) on Windows (#5919) - @ben-vargas: - docs: add ai-sdk-provider-opencode-sdk to ecosystem (#5772) - @val-2: - fix: ensure installation commands are using .quiet (#5758) - @luochen1990: - feat: add nixd as lsp for nix language (#5929) - @Brendonovich: - remove actions artifact uploading - try uploading artifacts in workflow - @NN708: - feat(desktop): arm64 build for linux (#5935) - @aaroniker: - feat: polish dialog & list styles for the desktop app, add fixed logos from models.dev (#5925) - @majiayu000: - fix: use current page port instead of hardcoded 4096 (#5949) - @ashutoshpw: - server: ensure frontend has correct port for PTY websocket connections (#5898)
Features
21. Dezember 2025
- Fixed LSP server binary installation and shell command execution - Updated kimi-k2 and kimi-k2-thinking to use recommended temperature values - Fixed SDK context usage and server port fallback - Added syntax highlighting for .ets files (@nalin-singh) - Updated to the official MCP SDK for better tool schema handling (@seuros) - Added support for schedule events (@elithrar) **Thank you to 5 community contributors:** - @elithrar: - github: support schedule events (#5810) - @seuros: - fix: use official MCP SDK for better tool schema handling (#5463) - @ahosker: - fix: prevent stats workflow from running on forks (#5897) - @nalin-singh: - feat: add syntax highlighting for .ets files (#5889) - @HelloGGX: - fix(deps): add missing @opencode-ai/plugin to dependencies (#5797)
Features
21. Dezember 2025
- Added verification that at least 1 primary agent is enabled - Better error reporting - Fixed file loading errors **Thank you to 1 community contributor:** - @christso: - Make CLI build script Windows-friendly (#5835)
Features
21. Dezember 2025
**Thank you to 8 community contributors:** - @rcssdy: - feat: add cursor theme (#5850) - @anntnzrb: - fix: prioritize session list loading when resuming with -c (#5816) - docs: add name property to model configuration example (#5853) - @majiayu000: - fix: add transform case for gemini if mcp tool has missing array items (#5846) - @elithrar: - feat: support configuring a default_agent across all API/user surfaces (#5843) - @ShpetimA: - fix: system theme flicker (#5842) - @shamil2: - feat: add Catppuccin Frappé theme (#5821) - @R44VC0RP: - feat(docs): adding .md to docs pages shows raw markdown (#5823) - docs: clarify model ID format for OpenCode provider (#5854) - @YuY801103: - docs: add Traditional Chinese (Taiwan) README translation (#5861)
Features
20. Dezember 2025
- Added endpoints to delete and update message parts (@remorses) - Fixed sidebar UX issues - Fixed event reconnect gaps **Thank you to 1 community contributor:** - @remorses: - feat: add endpoints to delete and update message parts (#5433)
Features
20. Dezember 2025
- Fixed logic for determining when files should be encoded - Added retries to initialization promises - Fixed an issue where projects without metadata were missing from the layout
Features
20. Dezember 2025
- Reinsert forked message text in prompt text input box when forking session (@ariane-emory) - Make LSP message more accurate when LSPs are disabled (@kasbah) - Fixed file encoding issue (@crob19) - Prevented file system scanning when in the root directory to avoid unnecessary operations - Excluded hidden agents from the Agent Client Protocol (@josevalim) - Upgraded OpenTUI to v0.1.62, enabling textarea mouse scroll and cursor set - Improved auto-scroll and session performance - Stopped using Tauri HTTP for SSE events - Fixed error height
Features
19. Dezember 2025
## TUI - User messages as markdown with toggle - Implement smooth scrolling for autocomplete dropdown navigation (@HelloGGX) - LSP: add oxlint server (@Eric162) - Use correct Octokit API for PR review comment reactions (@elithrar) ## Desktop - Fixed error handling - Separate prompt history for shell - Don't navigate prompt history if dirty - Remove pinch-to-zoom on window (@Brendonovich) **Thank you to 6 community contributors:** - @Hona - @24601 - @Brendonovich - @elithrar - @Eric162 - @HelloGGX
Features
18. Dezember 2025
- Add experimental support for Ty language server - Add fork slash command for keyboard-friendly session forking in TUI - Add shell mode for desktop - Add custom update toast for desktop - Improve Github Action Hallucinations - Fix model validation before executing slash command - Fix desktop expanded states - Fix desktop smaller max-width when review open - Fix desktop don't show image button in shell mode - Fix desktop error styles - Fix desktop prompt history navigation and optimistic prompt duplication - Fix desktop session ordered by most recent - Fix desktop disable pinch to zoom - Fix Tauri pinch zoom on Linux - Fix Tauri configure display backends more correctly on Linux - Add OIDC_BASE_URL support for custom GitHub App installs - Remove interleaved thinking filter for certain Kimi K2 thinking model providers that were bugged - Improve retry cases **Thank you to 7 community contributors:** - @Brendonovich: - tauri: configure display backends more correctly on linux (#5730) - tauri: disable pinch zoom on linux (#5735) - @dbpolito: - Improve Github Action Hallucinations (#5751) - @byigitt: - docs: fix typos (#5753) - @devxoul: - fix(command): validate model before executing slash command (#5740) - @ariane-emory: - feat(tui): fork slash command for keyboard-friendly session forking (resolves #5599) (#5610) - @elithrar: - github: add OIDC_BASE_URL for custom GitHub App installs (#5756) - @OpeOginni: - feat: add experimental support for Ty language server (#5575)
Features
18. Dezember 2025
- Fixed handling of empty directory query parameter in server middleware - Updated terminology from "OpenCode CLI" to "OpenCode Server" in Tauri - Added copy logs button to server spawn failure dialog in Tauri - Added option to disable terminal title in TUI - Improved MCP authentication and OAuth state handling **Thank you to 6 community contributors:** - @R44VC0RP: - docs: add opencode.cafe to ecosystem page (#5714) - @roerohan: - MCP improvements (#5699) - @jknlsn: - feat(tui): add option to disable terminal title (#5713) - @devxoul: - docs: add OPENCODE_DISABLE_TERMINAL_TITLE to environment variables (#5725) - @Brendonovich: - tauri: server spawn fail dialog w/ copy logs button (#5729) - tauri: say OpenCode Server instead of OpenCode CLI - @kcrommett: - fix: handle empty directory query parameter in server middleware (#5732)
Features
17. Dezember 2025
- Fixed init error messages to be more descriptive - Fixed the TUI copying the wrong assistant message when the last message had been reverted **Thank you to 1 community contributor:** - @assagman: - fix(tui): exclude reverted assistant reply when copying last message (#5705)
Features
17. Dezember 2025
- Added startup error display in desktop client - Added optimistic prompt submission in desktop client - Better error messages throughout the application - Prevent "1" from showing when preparing write - Added `viewportOptions` to scrollbox for padding adjustments to avoid scrollbar overlap - Show plugins in `/status` command - Fixed session list selection from jumping to active session when confirming delete - Added experimental `session.compacting` hook for pre-compaction context injection - Fixed session status TypeError in TUI - Keep session dialog open if deleting session fails - Added `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` environment variable to override 32k default - Added Inter and IBM Plex Mono font support in desktop client - Fixed `mcpName` being sent as state when authUrl doesn't have `state` parameter - Enabled edit and todoread batch operations with clarified error messages - Fixed subagent navigation order to newest-to-oldest - Fixed config option `setCacheKey` not being respected - Added Lucent Orange theme - Fixed command shortcuts - Improved diffs performance - Added session sharing feature in desktop client - Upgraded opentui to v0.1.61 - Added ability to disable terminal title using `OPENCODE_DISABLE_TERMINAL_TITLE` environment variable - Added task tool execution hooks and command context tracking for plugins - Added configurable mentions input for GitHub - Increased session width in TUI to accommodate longer code blocks and improve readability - Fixed load more button **Thank you to 15 community contributors:** - @elithrar: - github: add configurable mentions input (#5655) - @spoons-and-mirrors: - plugin(hook): add task tool execution hooks and command context tracking (#5642) - batch: enable edit, todoread, clarify error message, minor tool description change (#5659) - UI: show plugins in /status (#4515) - @devxoul: - Add availability to disable terminal title using OPENCODE_DISABLE_TERMINAL_TITLE env (#5661) - @amadeus: - Diffs Performance Improvements (#5653) - @Brendonovich: - tauri: dev icons + separate prod config (#5691) - tauri: only alert on update failure when triggered manually - tauri: return after update failures - tauri: update nsis icon - tauri: nsis header and sidebar - console: add /download/[platform] endpoint - console: use download proxy to rename mac and windows installers (#5697) - @sachnun: - fix: remove unsupported parameter from bash tool description (#5676) - @roerohan: - feat: added lucent-orng theme (#5678) - @Stoufiler: - docs: Sort LSP Server list (#5688) - @shantur: - fix: config option setCacheKey not being respected (#5686) - @RhysSullivan: - fix: change subagent navigation order to newest-to-oldest (#5680) - @paoloricciuti: - fix: send `mcpName` as state if authUrl doesn't have `state` (#5681) - @junmediatek: - add OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX to override 32k default (#5679) - @Raviguntakala: - fix(tui): resolve session_status TypeError (#5520) - @joelhooks: - feat(plugin): add experimental.session.compacting hook for pre-compaction context injection (#5698) - @nalin-singh: - fix: prevent session list selection from jumping to active session when confirming delete (#5666) - feat: add viewportOptions to scrollbox for padding adjustments to avoid scrollbar overlap (#5703)
Features
16. Dezember 2025
- Fixed prompt history navigation in the desktop app - Fixed focus on prompt input after closing dialogs - Fixed prompt input for multi-line text - Fixed defensive audio initialization - Added ability to load more sessions per project using a button in the desktop app - Added experimental oxfmt formatter support - Fixed git branch filewatcher and added flag to completely disable watcher - Fixed Tauri desktop app SSE connection timeout - Desktop app now loads user shell environment variables - Desktop app now shows retry attempts - Desktop app now shows write tool output - Fixed autocomplete file loading in the TUI - Enabled shell alias expansion in the ! command - Fixed GitHub install command for repos with dots in the name - Fixed system prompt field usage from prompt input - Fixed user invoked subtasks that were causing tool_use or missing thinking signatures **Thank you to 8 community contributors:** - @Brendonovich: - Keep release a draft until all builds are finished (#5632) - @remorses: - fix: use system prompt field from prompt input (#5633) - @connorads: - docs: add homebrew command for `opencode-desktop` (#5631) - @jinzhongjia: - docs: Add new project entry for opencode.nvim frontend (#5626) - @shekohex: - docs: fix typo in Google Antigravity github link (#5625) - @Zeko369: - fix: enable shell alias expansion in ! command (#5621) - @matrv: - feat: add experimental oxfmt formatter (#5620) - @Eric-Guo: - feat(desktop): Loading more session number per project by button (#5616)
Features
16. Dezember 2025
- Fixed argument boundaries in run command - Fixed TUI dialog select items taking up 2 lines when truncated - Fixed debounce of LSP diagnostics to get complete results - Fixed system prompt rejoining when experimental plugin hook triggers to preserve caching **Thank you to 5 community contributors:** - @duailibe: - make install script use tmp dir (#5601) - @Tarquinen: - fix: rejoin system prompt if experimental plugin hook triggers to preserve caching (#5550) - @Hona: - fix: debounce LSP diagnostics to get complete results (#5600) - @Brendonovich: - tauri: macos-only app menu - tauri: explicitly kill sidecar before updater relaunch - @simondmorias: - fix: preserve argument boundaries in run command (#4979)
Features
16. Dezember 2025
- Fixed LSP paths normalization on Windows (fixes Lua) - Fixed missing LSP unable to unzip on Windows **Thank you to 1 community contributor:** - @Hona: - fix(win32): Missing LSP can now unzip on windows (#5594) - fix(win32): Normalise LSP paths on windows (fixes lua) (#5597)
Features
15. Dezember 2025
- Fixed ElixirLS extension Windows support by correcting filename from `language_server.bar` to `language_server.bat` - Fixed LSP server lookups on Windows by using the correct path separator **Thank you to 1 community contributor:** - @Hona: - fix(win32): use path.delimiter for PATH separator in LSP server lookups (#5589) - fix(win32): correct ElixirLS extension typo (#5590)
Features
15. Dezember 2025
- Prioritize fuzzysort results that start with user input - Fixed server response handling to prevent connection timeouts **Thank you to 1 community contributor:** - @justfortheloveof: - tweak: prioritize fuzzysort results that start with user input (#5571)
Features
15. Dezember 2025
- Fixed terminal in desktop - Fixed share page - Added F# language server support **Thank you to 1 community contributor:** - @nalin-singh: - feat: add F# language server support (#5549)
Features
15. Dezember 2025
- Fixed error handling when empty image files are read with Anthropic provider - Fixed input field visibility for transparent themes - Fixed race condition in file editing by adding per-file locking - Added dismiss button to Getting Started box - Restored `experimental.chat.messages.transform` hook and added `experimental.chat.system.transform` hook - Fixed unshare command not properly clearing share state - Prompt is now auto-submitted when using the `--prompt` CLI flag - Fixed `--continue` flag selecting the wrong session - Added `experimental.continue_loop_on_deny` config option to allow agents to continue the loop when user denies actions **Thank you to 8 community contributors:** - @baaym: - feat: add experimental.continue_loop_on_deny config option (#4729) - @Raviguntakala: - fix(tui): --continue selects wrong session (#5513) - fix(session): fix unshare command not clearing share state (#5523) - @markjaquith: - feat(cli): auto-submit prompt when using --prompt flag (#4510) - @Brendonovich: - tauri: rename sidecar to opencode-cli - tauri: use correct sidecar name - @Tarquinen: - feat: restore experimental.chat.messages.transform and add experimental.chat.system.transform hooks (#5542) - @spoons-and-mirrors: - fix(edit): add per-file lock to prevent read-before-write race (#4388) - @nalin-singh: - fix: input lip visibility for transparent themes (#5544) - @rwese: - Provider fix, anthropic Errorhandling if empty image file is read (#5521) - docs: Fix Wakatime repository link in ecosystem.mdx (#5552)
Features
14. Dezember 2025
- Fallback to provider default for temperature - Fixed input borders not being drawn in transparent themes - Added server_error, rate_limit, and no_kv_space retry logic to accommodate Foundry API issues - Added Gleam LSP and formatter - Added topK function to transform, with temperature defaults for GLM and Minimax - Fixed TUI opening parent session instead of subagent on continue flag - Limited LSP diagnostics to prevent context window waste - Added ARM64 Docker image support - Added Dockerfile language server - Added TexLab language server and latexindent formatter - Added support for GITHUB_TOKEN and skip OIDC in GitHub - Added --session flag to attach command - Muted project path in sidebar that precedes the final directory - Muted the whole prompt area when leader key is active **Thank you to 15 community contributors:** - @charles-cooper: - fix: add --session flag to attach command (#5460) - @elithrar: - github: support GITHUB_TOKEN + skip OIDC (#5459) - @niklas-wortmann: - docs: JetBrains IDEs to ACP config docs page (#5465) - docs: fix title for JetBrains ACP config file (#5479) - @edlsh: - feat: add texlab language server and latexindent formatter (#5251) - feat: add dockerfile language server (#5252) - @code-yeongyu: - docs: add oh-my-opencode to plugins list (#5481) - fix(ui): guard Node reference for SSR compatibility in isTriggerTitle (#5509) - @felipe: - add ARM64 Docker image support (#5483) - @remorses: - fix: limit LSP diagnostics to prevent context window waste (#5480) - @ghoulr: - docs: Add opencode-websearch-cited to plugin list (#5501) - @sachnun: - fix(tui): open parent session instead of subagent on continue flag (#5503) - @Brendonovich: - tauri: bring back appimage - tauri: change mainBinaryName to just OpenCode - @itzAymvn: - docs: Fix Wakatime link in ecosystem documentation (#5528) - @LawEKS: - Add Gleam LSP and formatter (#5514) - @shekohex: - docs: add `opencode-pty` and `opencode-google-antigravity-auth` plugins to the echosystem (#5530) - @sellerscrisp: - feat: add server_error, rate_limit, and no_kv_space retry logic to accommodate Foundry API issues (#5527) - @nalin-singh: - fix: ensure input borders are drawn in transparent themes (#5524)
Features
12. Dezember 2025
- Improved shell handling on Windows with better detection of Git Bash and support for the `OPENCODE_GIT_BASH_PATH` environment variable - Fixed app exit behavior so the app only exits when the prompt is empty; otherwise, the exit key will fall through to allow normal text input - Improved shell fallback compatibility by removing the `-l` flag when executing commands in unknown shells **Thank you to 1 community contributor:** - @jdanbrown: - Shell: No -l in fallback, for max compatibility (#5452)
Features
12. Dezember 2025
- Fixed osascript for clipboard typo - Fixed internal error on `/compact` command - Made the logo on the home screen non-selectable - Fixed debug LSP diagnostics command for certain LSPs - Show indicator for in progress chats in the sessions list - Restore input on timeline revert and show newest first - Replay conversation history in session/load - Removed cache mention from webfetch prompt - Fixed fatal error UI readability in light mode - Added foreground color to some TUI text elements for light mode visibility - Fixed Windows LSP URIs using backslashes (Biome initialization failure) - Better error message rendering in TUI - Fixed bash tool to prevent excessive cd spam - Added experimental `chat.messages.transform` hook **Thank you to 11 community contributors:** - @sachnun: - feat: add caching for opencode binary in GitHub Actions (#5384) - fix(server): make time field optional in session update validator (#5372) - fix(tui): restore input on timeline revert and show newest first (#5366) - @jorgenwh: - add experimental.chat.messages.transform hook (#5207) - @alopez-inf: - fix: Windows LSP URIs using backslashes (Biome initialization failure) (#5317) - @koichincom: - fix: add fg color to some TUI text elements for light mode visibility (#5378) - fix(tui): ensure fatal error UI is readable in light mode (#5387) - @airtonix: - docs: Add opencode-md-table-formatter and plugin template (#5405) - @haoqixu: - acp: replay conversation history in session/load (#5385) - acp: fix internal error on `/compact` (#5424) - @RhysSullivan: - [feat]: show indicator for in progress chats in the sessions list (#5417) - @monostop: - fix: debug lsp diagnostics cmd for certain lsps (#5420) - @Brendonovich: - tauri: initialise store and window-state plugins - tauri: create window with full screen size - tauri: add basic custom titlebar (#5438) - @jeremyosih: - Change tooltip text from 'Open file' to 'New Terminal' (#5435) - @Hona: - fix: osascript for clipboard typo (#5430)
Features
11. Dezember 2025
- Fixed CPU pinning to 100% when writing to stderr - Added support for super modifier (Command/Windows key) in keybinds, allowing shortcuts like `super+z` for undo and `super+shift+z` for redo **Thank you to 1 community contributor:** - @shantur: - fix: Writing to Bun.stderr causes CPU pinning to 100%. (#5396)
Features
11. Dezember 2025
- Allow custom keybindings for all textarea actions in the input area through config - Align default input keybindings to improve consistency and add support for additional keyboard shortcuts (Ctrl+Right/Left for word navigation, Ctrl+D for character deletion, Alt+D for word deletion) - Add ripgrep to the Docker image - Improve GitHub reaction handling for issue comments to correctly identify and remove the OpenCode agent's "eyes" reaction - Change terminal title to display "OpenCode" instead of "opencode" **Thank you to 3 community contributors:** - @Brendonovich: - write typescript artifacts to node_modules/.ts-dist - tauri: always build cli in predev - @dbpolito: - Fix / Improve Github Eyes Reaction Removal (#5383) - @gjedeer: - Add ripgrep to Docker image (#5379)
Features
11. Dezember 2025
- Fixed light mode visibility for filepath in /undo diff files - Added Cerebras integration header with opencode identifier - Improved compaction prompt - More descriptive tool or subtask execution failed error messages - Use |- for intermediate sub-agent steps - Fixed custom provider lookup in 'Other' authentication flow - Fixed CLI to obtain directory data from server - Tauri app now automatically finds an available port instead of defaulting to 4096 - Added support for models.dev family - Improved interleaved thinking functionality - Set Gemini thinking level to high by default - Upgraded OpenRouter SDK package - Fixed /provider endpoint to return loaded providers - Updated orange theme - TUI now only shows active MCP server count - Fixed doubled key events on some older terminal emulators - Fixed add_buffer leaks for prompt input - Removed input_forward_delete special handling - Icon discovery feature is now enabled by default in the Tauri app **Thank you to 19 community contributors:** - @connorads: - docs: configure mise to use latest version instead of pinned version (#5316) - @arc-source-coder: - tui: only show active MCP server count (#5327) - @NoeFabris: - docs: Added opencode-antigravity-auth to ecosystem documentation (#5303) - @elithrar: - themes: update orng theme (#5329) - @angristan: - docs: add wakatime plugin to ecosystem page (#5326) - @nick-vi: - docs: add opencode-type-inject to ecosystem plugins (#5331) - @subtleGradient: - fix: upgrade OpenRouter sdk pkg (#5302) - @dbpolito: - Add Eyes Reaction instead of Comment Working on Github Action (#5072) - @igordertigor: - docs: document accept always behavior (#5340) - @OpeOginni: - fix(cli): obtain directory data from server (#5320) - @Yukaii: - fix(auth): add plugin lookup for custom provider in 'Other' flow (#5324) - @H2Shami: - feat: add helicone docs + helicone session tracking (#5265) - @paralin: - feat: use |- for intermediate sub-agent steps (#5336) - fix: more descriptive tool or subtask execution failed error (#5337) - @shantur: - compaction: improve compaction prompt (#5348) - @sebastiand-cerebras: - Add Cerebras integration header with opencode identifier (#5354) - @zenyr: - docs(bash): clarify description parameter is required (#5353) - @koichincom: - fix: light mode visibility for filepath in /undo diff files (#5352) - @Brendonovich: - tauri: update icons - desktop: exclude ts-dist from tsconfig sources - @AyushWalekar: - docs: update doc sdk.mdx (#5315)
Features
10. Dezember 2025
- Fixed exit command aliases ("exit", "quit", ":q") in the TUI prompt - Fixed hook error suppression that was preventing errors from being properly reported - Added Windows support for shell mode (! command) with support for cmd.exe and PowerShell - Added CLI arguments to agent create command for scripting (--path, --description, --mode, --tools) **Thank you to 3 community contributors:** - @Timorleiderman: - feat: add CLI arguments to agent create command for scripting (#5157) - @Brendonovich: - fix: use project references for desktop typecheck - tauri: comment out restart server dialog - tauri: update macos icon - tauri: don't ask to restart separately in updater - @spoj: - fix: add Windows support for shell mode (! command) (#5311)
Features
10. Dezember 2025
- Added Biome LSP support - Added ability to set colors for projects - Added project names and icons - Improved automatic project icon discovery from favicon/logo files - Improved interleaved thinking support - Fixed plugin caching when resolving 'latest' version to ensure subsequent starts use the cached version - Fixed SVG file reading to allow reading SVG content as text - Fixed visual spacing before the queued badge in the TUI - Added OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS environment variable to configure bash command timeout - Enabled project discovery for experimental builds **Thank you to 3 community contributors:** - @nick-vi: - fix: resolve 'latest' to actual version when caching plugins (#5292) - @ry2009: - feat: add Biome LSP support (#5290) - @hosenur: - docs: Add portal project to ecosystem documentation (#5300)
Features
9. Dezember 2025
- Added project update timestamps to track when projects were last modified - Fixed custom headers being sent in MCP regardless of OAuth settings - Added userId and sessionId metadata to experimental telemetry - Added permission indicator to footer in TUI **Thank you to 4 community contributors:** - @terakael: - tui: add permission indicator to footer (#4813) - @Brendonovich: - desktop: move updater logic to js - fix: use ts project references for desktop and tauri - @Raviguntakala: - feat(telemetry): Add userId and sessionId metadata to experimental_telemetry (#5279) - @edevil: - fix(mcp): send custom headers regardless of OAuth settings (#5273)
Features
9. Dezember 2025
- Added new "orng" theme - Added catppuccin-macchiato theme - Added mercury.com theme - Added ability to toggle MCP servers in TUI - Added bash-language-server LSP support - Added terraform-ls language server and formatter - Added OCaml LSP support - Added ocamlformat support - Added PDF support in read tool - Added optional scrollbar to the session chat - Added dynamic terminal window title - Added uninstall command - Added theme support for thinking text opacity - Added experimental plugin hook for text completion - Added OAuth authentication support for remote MCP servers - Restored experimental flag for websearch/codesearch tools - Fixed sidebar working directory colour contrast with modified files - Fixed parcel watcher musl support - Fixed provider filtering for /connect endpoint - Fixed sorting of sessions by updated time - Fixed colors for dialog prompt in light themes - Fixed autocomplete text color with no matching items - Fixed autocomplete popup repositioning on window resize - Fixed SAP AI Core Vercel AI SDK v2 support - Fixed themes sorted alphabetically in /theme modal - Fixed toggle timestamps to properly hide/show timestamps when toggled - Fixed opencode web command - Fixed shell detection to support non-standard paths - Fixed provider URL merging logic - Fixed CLI help text wrapping - Fixed sessions disappearing after git init - Fixed timestamp toggle text to be dynamic in command list - Fixed deprecated models from appearing in model picker - Improved shift+space to insert as character again in opentui - Improved diff color issues in light themes - Added visual separator between username and timestamp for better readability - Reduced overhead of task tool metadata - Tweaked bash agent to have more awareness of current working directory and adjusted default timeout **Thank you to 23 community contributors:** - @franlol: - feat: add optional scrollbar to the session chat (#5116) - feat: add experimental.text.complete plugin hook (#4962) - @dakdevs: - feat: add mercury.com theme (#5141) - @crayment: - docs: update server API reference with complete endpoint list (#5136) - @ben-vargas: - feat: restore experimental flag for websearch/codesearch tools (#5132) - @ariane-emory: - fix: make timestamp toggle text dynamic in command list (resolves #5106) (#5108) - fix: toggle timestamps now properly hides/shows timestamps when toggled (resolves #5142) (#5145) - fix: Sort themes in the /theme modal alphabetically (resolves #5217) (#5219) - fix: sort sessions by updated time (resolves #5074) (#5080) - fix: improve sidebar working directory colour contrast with modified files (resolves #5184 (#5188) - @IceWreck: - fix: update description to lowercase for ACP command (to be consistent with other commands) (#5137) - @aryasaatvik: - feat(tui): add dynamic terminal window title (#5112) - @Arindam200: - docs: Nebius Token Factory provider documentation (#2997) - @nyxkrage: - fix: update zed agent server linux url to tar.gz (#5194) - @mberrishdev: - fix: autocomplete popup repositions on window resize (#5196) - @Brendonovich: - Desktop macOS codesigning and notarization (#5154) - Export DesktopInterface from desktop and add PlatformContext - @ayatofrench: - fix: use basename for shell detection to support non-standard paths (#5205) - @edlsh: - feat: add uninstall command (#5208) - feat: add theme support for thinking text opacity (#5240) - feat: add bash-language-server LSP (#5246) - feat: add terraform-ls language server and formatter (#5243) - @edevil: - feat(mcp): add OAuth authentication support for remote MCP servers (#5014) - @Patrick-Erichsen: - fix(cli): prevent help text wrapping (#5185) - @ry2009: - fix: ensure Auth.all returns valid objs (#5128) - @JUVOJustin: - docs: Update "model" inheritance for agents (#4894) - @bishalr0y: - feat: add catppuccin-macchiato theme (#5225) - @jerome-benoit: - fix: SAP AI Core Vercel AI SDK v2 support (#5180) - @dbpolito: - feat: ability to toggle MCP Servers in TUI (#4509) - @nexxeln: - add ocamlformat support (#5229) - add ocaml lsp support (#5230) - @Raviguntakala: - fix: apply provider filtering to /connect endpoint (#5233) - @elithrar: - themes: add new orng theme (#5267)
Features
5. Dezember 2025
- Added max steps configuration for supervisor and sub-agents - Added experimental OpenTelemetry config option to enable OTEL spans - Fixed PTY session cloning on desktop reconnect - Added Vercel theme - Fixed ProviderInitError for GitHub Copilot Enterprise - Fixed projects that transition from having no commits to having commits to properly migrate sessions - Improved TUI dialog option descriptions with text wrapping - Fixed VCS being set to git even if no commits exist in repository - Increased default scroll speed - Fixed SAP AI Core provider SDK initialization - Restored terminal pane feature on desktop **Thank you to 8 community contributors:** - @jerome-benoit: - fix: add getModel to SAP AI Core provider for correct SDK initialization (#5086) - @ry2009: - tui: wrap dialog option descriptions (#5083) - @justmejulian: - fix: #5064 ProviderInitError github-copilot-enterprise (#5123) - @anthonyshew: - feat(theme): Vercel (#5119) - @noamzbr: - add experimental.open_telemetry config option to enable OTEL spans (#4978) - @nwthomas: - feat: add max steps for supervisor and sub-agents (#4062) - @shantur: - tweak: bash tool improve output metadata for agent consumption, fix small timeout issue (#5131) - @Brendonovich: - OpenCode Desktop app (#5044)
Features
4. Dezember 2025
- f9dcd9793: Revert of terminal pane (skip - already reverted) - d763c11a6: Terminal pane feature (skip - was reverted) - b9c1f1001: SAP AI Core provider support ✓ - 7f86fe3f6: Optional prompt input to GitHub Action ✓ - a32cf70d7: Fix /new slash command being persisted ✓ - a607f3355: Improved bash tool messages ✓ - 350a32274: Fix model not being passed to tool ✓ - 27c99b46c: Preserve prompt input when creating new session ✓ - 1d6e3d477: Fix cursor color ✓ - 5a9f4e5c6: Fix checkUpgrade sets init ✓ - - Add SAP AI Core provider support - Add optional prompt input to GitHub Action - Fix /new slash command being persisted in prompt input - Improve bash tool messages regarding timeouts and truncation for clarity - Fix model not being passed correctly to tool - Preserve prompt input when creating new session - Fix TUI cursor color - Fix checkUpgrade setting `init:` flag **Thank you to 6 community contributors:** - @code-yeongyu: - fix: ensure checkUpgrade sets `init:` (#5040) - @DanielFGray: - Preserve prompt input when creating new session (#4993) - @shantur: - tweak: bash tool messages regarding timeouts and truncation more clear for agent (#5066) - @dbpolito: - add optional prompt Input to Github Action (#4828) - @jerome-benoit: - feat: Add SAP AI Core provider support (#5023) - @casonadams: - docs: add CodeCompanion.nvim integration instructions (#5079)
Features
4. Dezember 2025
- Enhanced DeepSeek reasoning content handling - Fixed provider ID issue - Fixed compaction type issue - Fixed DAX typo - Added tool_details keybind with no default - Added messages_last_user command to scroll TUI to last user message - Fixed bunfs path on Windows - Added experimental.primary_tools setting to allow users to set tools that should only be available to primary agents - Added retry case for Grok resource exhausted **Thank you to 5 community contributors:** - @spoons-and-mirrors: - feat: experimental.primary_tools, allow user to set the tools that should only be available to primary agents (#4913) - @Hona: - fix: bunfs path on windows (#5011) - @ariane-emory: - feat: add messages_last_user command to scroll TUI to last user message (implements #4847) (#4855) - feat: add tool_details keybind w/ no default (#4976) - @jackbisceglia: - docs: remove outdated theme section as system theme is now added back (#5041) - @matjanos: - feat: Enhance DeepSeek reasoning content handling (#4975)
Features
3. Dezember 2025
- Fixed GitHub Copilot Enterprise authentication failing with sdk.chat undefined error - Adjusted light/dark theme toggle - Fixed Provider type in chat.params plugin hook - Fixed handling of `0` in ANSI theme color definitions - Bumped opentui to v0.1.55 - Added basic session list command - Made homebrew update check use homebrew registry version info - Fixed ability to unignore files in .ignore - Tweaked message border to match color of agent it was sent to - Increased default LSP server timeout - Added toggle to hide username in TUI - Added OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT environment variable **Thank you to 4 community contributors:** - @kandros: - toggle to hide username in TUI (#4750) - @dl-alexandre: - fix: allow unignoring files in .ignore (#4814) - @jason0x43: - fix: handle `0` in ANSI theme color definitions (#5009) - tweak: adjust light/dark theme toggle (#5007) - @ben-vargas: - fix: correct Provider type in chat.params plugin hook (#5003)
Features
2. Dezember 2025
- Fixed CLI to allow messages starting with a dash (-) when using the `run` command - Hidden [REDACTED] chunks in reasoning display from OpenRouter - Fixed handling of ANSI color indexes in theme resolution **Thank you to 3 community contributors:** - @dl-alexandre: - fix: handle ANSI color indexes in theme resolution (#4842) - @iamdavidhill: - fix: website hero copy - Merge branch 'dev' of https://github.com/sst/opencode into dev - fix: add docs button - Merge branch 'dev' of https://github.com/sst/opencode into dev - @ucirello: - fix(run): allow messages to start with dash (-) (#4904)
Features
2. Dezember 2025
- Added overridable review slash command - Added ability to toggle tool details visibility - Fixed TUI crash when no authenticated providers and default provider disabled - Fixed authentication login to respect disabled/enabled providers configuration - Fixed npm registry configuration not being respected during installation - Fixed invalid schema cases for Gemini models - Fixed Copilot responses bug with GPT 4o mini - Fixed a case where OpenCode wasn't retrying on certain failures **Thank you to 3 community contributors:** - @stevoland: - fix(auth): Respect disabled/enabled providers config in auth login (#4940) - @ariane-emory: - feat: toggle tool details visibility (resolves #4824) (#4882) - @iamdavidhill: - fix: update the install copy
Features
1. Dezember 2025
**Thank you to 1 community contributor:** - @blacksmith-sh[bot]: - .github/workflows: Migrate workflows to Blacksmith runners (#4941)
Features
1. Dezember 2025
- Improved error messages from API providers by extracting detailed error information from response bodies - Fixed compatibility issues with older Git versions by removing the `--path-format=absolute` flag - Fixed header issue in Anthropic plugin
Features
1. Dezember 2025
- Bumped opentui to v0.1.54, removing the cc flicker feature and fixing diffs and input event handling - Improved session compaction prompts to better preserve critical information for conversation continuity - Enhanced plan mode prompt documentation with detailed workflow guidelines - Added "Open docs" command to the command palette for quick access to documentation - Fixed Codex integration with Copilot **Thank you to 2 community contributors:** - @JUVOJustin: - docs: Move tip to correct tool (#4891) - docs: explore subagent (#4893) - @shantur: - tweak: compaction prompt (#4838)
Features
30. November 2025
- Bump opentui to v0.1.53, fixing an event listener leak in the line number renderable (performance improvement) - Tweak spinner to be background independent - Clarify that the general agent can execute multiple parallel tasks
Features
29. November 2025
- Fixed key repeat handling in the terminal UI by upgrading opentui to v0.1.52 - Added missing foreground color to permission keybind hints in the terminal UI - Fixed a minor UI bug for transparent backgrounds - Improved explore agent description to clarify tool availability **Thank you to 2 community contributors:** - @dkarter: - fix: minor ui bug for transparent backgrounds (#4886) - @kavhnr: - fix(tui): add missing fg color to permission keybind hints (#4899)
Features
29. November 2025
- Improved task display in session view to show tool names and completion status - Added explore agent for fast codebase navigation - Persist thinking blocks display to KV and indicate its current display state in the command list - Added built-in Dart LSP server and formatter - Improved provider dialog text clarity for better user guidance - Fixed provider sorting to prioritize recommended options - Removed cancel keybind hint from prompt dialog to simplify UI - Hid favorite keybind in model dialog when disconnected to prevent errors **Thank you to 7 community contributors:** - @Alb-O: - nix: fix workflow failing on PRs (#4820) - @Tarquinen: - fix: filter empty messages in toModelMessage (#4811) - @mastermakrela: - core: add built-in Dart LSP server and formatter (#4841) - @jaov: - tweak: gemini retry message to not be explicitly about gemini 3 (#4864) - @singiamtel: - docs: formatter: false and lsp: false (#4833) - @ariane-emory: - feat: persist thinking blocks display to KV and indicate its current display state in the command_list (resolves #4582) (#4810) - @JUVOJustin: - docs: Add tip to tools about subagents re todos (#4875)
Features
27. November 2025
- Prevent codesearch and websearch tools from being accessible when webfetch permission is denied - Prevent external diff tools from interfering with snapshot generation
Features
27. November 2025
- Rolled back TypeScript language server to the standard implementation - Rolled back TypeScript language server to standard implementation
Features
27. November 2025
- Temporarily restricted codesearch and websearch to OpenCode Zen users - TUI design refinement - Enabled parcel file watcher and expanded parcel ignore patterns for improved file watching - Re-enabled virtual extmarks for file/agent mentions - Fixed SVG paste bug - Deduplicated file references in prompt
Features
26. November 2025
- Fixed bootstrap errors display in TUI to show detailed error messages instead of empty objects - Renamed `vcs.changed` to `vcs.branch.updated` - Fixed MCP tool schemas to be compatible with Google Gemini - Added favorites to model selector - Fixed handling of remote image URLs in paste handler - Added ability to react to PR Review Comments in GitHub workflows - Added `diff_style` option to allow disabling columnar diffs - Show current git branch in TUI - Enabled exa code/websearch
Features
26. November 2025
- Fixed generation aborting in TUI when undo is pressed - Added `setCacheKey` option for provider configuration - Fixed prompt submit error when using `opencode -c` - Switched TypeScript LSP to one per package to ensure it loads when TypeScript is not installed at root - Better overloaded message
Features
25. November 2025
- Retry anthropic overloaded errors for improved reliability - Enhanced stats command to show average and median tokens per session - Improved theme selector UX with current theme indicator and easier selection - Better scroll speed default for Windows users - Added prompt_async functionality to receive prompts and return immediately - Refactored share system to separate session IDs from share IDs for better URL structure and security - Fixed accordion styles for better visual appearance - Fixed CSS code splitting issues for desktop application - Fixed scroll gutter rendering issues - Fixed markdown inline code styling - Fixed share page style issues and metadata display - Fixed plugin selection merging functionality - Disabled virtual extmarks for file/agent mentions to improve performance - Prevented auto-continuation when compaction was manually triggered - Added social share images for better link previews - Improved TUI compatibility with standard middle dot separators - Prevented re-fetching of already synced sessions when switching sessions
Features
25. November 2025
- Retry Anthropic overloaded errors - Tweak stats command to show average & median tokens per session - Theme selector UX improvements: current theme indicator and easier selection - Fixed missing compacted event - Fixed auto-continue when compaction was manual - Disabled virtual extmarks for file/agent mentions - Alphabetical ordering for opencode models output - Fixed merge plugin selections - Better scroll speed default for Windows - Added prompt_async to receive prompt and return immediately - Reverted basic auth support in opencode SDK - Reverted setCacheKey in provider options - Added setCacheKey in provider options - Refactored share system to separate session IDs from share IDs - Aligned session panel content with consistent left padding
Features
25. November 2025
- TUI: Use standard middle dot separator for better terminal compatibility - TUI: Fixed spacing issues - TUI: Prevent re-fetching already synced sessions when switching sessions - Bumped opentui to v0.1.50 - Added basic auth support to opencode SDK
Features
24. November 2025
- Removed hardcoded OpenRouter provider configuration - Added `--refresh` flag to models command for refreshing model list - Adjusted bundled provider logic and fixed tree shaking issues - Updated share functionality styling and UI improvements - Added autoupdate notification feature - Fixed textarea highlight cursor color in TUI
Features
24. November 2025
- Non-corpo loading spinner - TUI: Fixed null check for user.time in duration calculation - Display MCPs in alphabetic order in the sidebar - Persist light vs dark mode - Modified files sidebar
Features
24. November 2025
- Added better error message for GitHub Copilot when models are not supported, including a link to enable models in Copilot settings - Fixed a fatal error where 'color.buffer' was undefined in the TUI - Added explicit fallback model handling and prevented direct opencode provider calls when unavailable - Improved title generation with better guidelines for creating meaningful conversation titles
Features
23. November 2025
- Added optional selectedListItemText element in themes with luminance-based fallback to solve issue #4369 - Fixed TUI session text to respect theme foreground colors - Fixed bash tool compatibility with WSL - Fixed boolean handling in session prompts - Prevented permission shortcuts from triggering when Ctrl/Meta keys are pressed - Bundled AI SDK packages for improved performance - Updated opentui to v0.1.49 with fixes for stdin handling and textarea cursor movement
Features
22. November 2025
- Prevented concurrent Bun package installs that could cause corruption or conflicts - Fixed message completion timing and duration display in session view - Fixed auto upgrade toast message
Features
22. November 2025
- Improved model footer display with duration timing and visual enhancements - Added toggle for showing/hiding timestamps in the TUI - Enhanced message timestamps to show date when not on current day - Added end time display for agent loops - Updated title generation prompt to prevent "summarizing" responses
Features
22. November 2025
- Fixed argument parsing issue - Added enterprise package with session sharing capabilities - Introduced new enterprise web interface for sharing sessions - Added file icon assets moved from desktop to UI package - Enhanced session management and sharing functionality - Improved desktop application structure and components
Features
22. November 2025
- Lowered opacity for thinking summaries to improve readability - Split revert memo into smaller tracked computations to prevent unnecessary re-evaluations and improve performance - Batched SDK events to reduce render churn and improve TUI responsiveness - Disabled automatic config loading during CLI builds to prevent configuration interference
Features
21. November 2025
- Added provider whitelist/blacklist configuration options to control which providers are available - Fixed agent context preservation during compaction to maintain conversation continuity - Improved CLI error handling to ensure clean exit on provider/model errors - Enhanced install script with better visuals, custom progress bar, and next steps guidance - Updated logic for local and dev providers
Features
21. November 2025
- Replaced text shimmer with animated progress bar during model processing in TUI - Simplified popular providers list to show only top 6 providers - Added TUI onboarding flow - Adjusted invalid directory error message - Fixed "split is not a function" error - Added field to allow user-only messages
Features
20. November 2025
- Fixed OpenRouter AI SDK package usage to resolve issues with interleaved thinking models - Added automatic navigation to child sessions when they are requesting permissions - Changed default child session cycle keybinds from `ctrl+right/left` to `<leader>right/left` - Updated editor preference to use VISUAL environment variable over EDITOR per Unix convention
Features
20. November 2025
- Made the MAX_OUTPUT_LENGTH in bash.ts overridable by OPENCODE_EXPERIMENTAL_BASH_MAX_OUTPUT_LENGTH - Fixed autocomplete with existing space after trigger - Replaced ruby-lsp with rubocop for better LSP performance - Fixed issue where AI SDK warnings were being printed - Added ability for users to name export files - Fixed toast wrapping issue - Made /export command go to current working directory
Features
20. November 2025
- Added PHP Intelephense LSP support - Added YAML language server support - Made AUR build check for glibc vs musl system compatibility - Disabled fetch timeout by default in provider options - Fixed OpenRouter AI SDK package support - Added bun install retries for better reliability - Fixed external directory permission wildcarding to be more sane - Made bash tool use external directory permissions - Added ability to show reasoning summaries for Gemini models - Fixed issue 4475 - Added subagents to agents modal (non-selectable) - Allowed task tool to have resume capabilities - Added top-level `lsp: false` and `formatter: false` options to disable all formatters or LSPs at once
Features
18. November 2025
- Improved Gemini retry error messages to be more user-friendly and concise - Fixed theme reference resolution to allow referencing colors from theme definitions - Updated reasoning effort logic for GPT-5.1 models to use "low" instead of "minimal"
Features
18. November 2025
- Added `opencode agent list` command to show all available agents with details - Fixed Windows bash tool issue - Fixed desktop reactivity issue on route change - Fixed desktop response animation to only animate once
Features
18. November 2025
- Fixed GPT compaction issue - Changed Gemini 3 Pro to use temperature 1 - Fixed CSS typo in desktop application - Fixed busy state and reactivity issues in desktop application
Features
18. November 2025
- Reworked default model - Added Nix support for installation and package management - Added width constraints to toast component for proper text wrapping - Added Swift syntax highlighting support - Reverted scroll_speed to allow only positive integers (reverting previous change that allowed any positive number)
Features
18. November 2025
- Fixed a bug where the `noReply` option was not properly handled in session prompts, causing unnecessary replies when users expected no response
Features
17. November 2025
- Upgraded opentui to v0.1.46, enabling bracketed paste on Windows, fixing word wrapping with CJK characters, and allowing scroll speed configuration - Fixed the `/exit` command functionality - Reverted system theme background changes that affected terminal transparency
Features
17. November 2025
- Added `/thinking` slash command to toggle thinking blocks visibility in OpenTUI - Fixed system theme background to use 'none' for terminal transparency - Updated help dialog to use dynamic keybind - Fixed line count display on Windows - Fixed Git Bash path mapping on Windows - Added support for Azure Cognitive Services provider - Fixed OPENCODE_CONFIG_DIR to properly load config files - Bumped OpenTUI version to 0.1.45, fixing highlighting on Windows - Added copy option to message context menu - Improved retry display and handling for retry-after values exceeding 10 minutes - Enhanced batch processing with per-tool UI feedback and UX improvements
Features
16. November 2025
- Fixed history JSONL file corruption cases - Added Zenmux documentation and header - Added Flexoki theme - Fixed diff view to ignore line ending changes and Windows autocrlf - Fixed snapshot history when running from git worktrees - Added experimental batch tool - Improved dropdown to only show for 3+ items - Fixed union type with enum "true"/"false" in /find/file endpoint - Fixed incorrect Sonnet price calculation - Added support for local file paths for custom providers - Added support for images in MCP tool responses - Added global.event.subscribe() to SDK - Added GPT-5-nano model - Improved read tool end-of-file detection to prevent infinite loops
Features
13. November 2025
- Fixed TypeError case in formatting functionality - Fixed opencode run timeout issues - Fixed unreadable text in light mode for TUI interface
Features
13. November 2025
- Fixed Windows installation issues for bun and pnpm global installs - Added scroll acceleration support to the TUI (Terminal User Interface) - Enabled Windows builds and resolved installation failures on Windows
Features
13. November 2025
- Fixed tool calling on Windows - Fixed GitHub action dirty check - Added expandable sections for sidebar - Fixed paste images in WSL using Ctrl+V - Fixed usage & billing for custom model aliases and cached/reasoning tokens - Fixed custom model name merging - Fixed correct cache cost for OpenRouter and other OpenAI-compatible providers - Upgraded opentui to 0.1.42, fixing some CJK/grapheme issues with prompt extmarks and char corruption - Fixed clangd hanging
Features
12. November 2025
- Added double-esc interrupt mechanism for long-running operations - Added SourceKit LSP support - Fixed autocomplete display to prevent long file paths from breaking layout
Features
12. November 2025
- Better errors on initial TUI boot - Fixed @file references in slash commands with subagents - Fixed config ordering - Fixed revert dialog to move prompt to input box - Added agent color configuration - Upgraded OpenTUI to 0.1.41 with improved terminal support and performance enhancements - Fixed costs being 0 when using custom model ID overrides - Hide /share command when disabled - Added test to verify OpenCode doesn't crash in git repositories with no commit history - Restored full text when editing prompts with summarized content
Features
11. November 2025
- Fixed crash when starting in repositories without any commits yet - Increased review pane width in desktop interface - Removed unused experimental flags for turn summary and no-bootstrap
Features
11. November 2025
- Fixed TUI spawn to reset BUN_OPTIONS (#3606) - Updated keymap.json bindings for OpenCode command (#4192) - Fixed desktop prompt clearing inconsistencies - Fixed desktop code/diff number container width display - Fixed desktop session show more button being hidden on new sessions - Fixed desktop prompt input not clearing and attachment issues - Fixed desktop color grouping functionality - Added web and codesearch tools - Updated @opentui/core to v0.1.39 with build script fixes - Keep session dot visible in list for currently active session (#4185) - Cache project ID in root git folder for better performance - Added help for users reading thinking blocks and improved todo sync trust - Fixed Google Vertex configurations (#4169) - Upgraded toast notification system (#4159) - Updated code editor dark mode
Features
11. November 2025
- Added inline LSP diagnostics in TUI file viewer to show type errors and compilation issues without leaving the interface - Fixed TUI spawn to reset BUN_OPTIONS environment variable - Updated TUI to use @opentui/core v0.1.39 with improved build script - Enhanced session selection UI to keep current active session visible in the list - Added support for reading thinking blocks and improved todo synchronization - Added web search and code search tools for enhanced functionality - Fixed Google Vertex AI provider configuration issues - Upgraded toast notification system for better user feedback
Features
10. November 2025
- Made reasoning parts less ugly with improved syntax highlighting - Fixed --model flag being ignored in TUI mode - Added ability to configure doom loop & external directory permissions - Added input context to chat.params and chat.message - Fixed UI freezing when repository contains binary files - Fixed continue session navigation to use most recent session instead of oldest session - Fixed MATLAB Language Server compatibility issues - Fixed theme palette filtering to remove null values - Added 'Free' badge display for zero-cost models in model selection dialog - Fixed billing button functionality - Added logging when creating project instances to help debug startup issues
Features
10. November 2025
- Improved session UI with better sidebar toggle and message handling - Render reasoning parts with syntax highlighting instead of plain text - Display 'Free' badge for zero-cost models in model selection dialog - Fixed --model flag being ignored in TUI mode - Allow user to configure doom loop & external dir permissions - Set cap for max time to wait between retries - Fixed messageID type in chat.message
Features
9. November 2025
- Reverted the display of 'Free' badge for zero-cost models in model selection dialog - Added input context to chat.params and chat.message plugin hooks (sessionID, agent, model, messageID) - Fixed UI freezing for several minutes when repository contains binary files
Features
9. November 2025
- Fixed continue session navigation to wait for sync completion before redirecting - Added logging when creating project instances to help users debug startup issues
Features
9. November 2025
- Fixed continue session navigation to use most recent session instead of oldest session - Improved startup speed - Fixed LSP optional requests to avoid MethodNotFound (-32601) with MATLAB Language Server - Fixed theme palette to filter out null values
Features
8. November 2025
- Refined polaris instructions for practical behavior - Routed polaris-alpha models to polaris system prompt - Fixed title generation refusal responses - Added support for reading opencode.json(c) from .opencode/ directory - Upgraded to opentui 0.1.39 with support for shift/ctrl+return/esc custom CSI in ghostty
Features
7. November 2025
- Fixed disappearing content and sticky scroll issues in the TUI - Reworked ACP (Agent Communication Protocol) to support changes in Zed IDE - Added command bar action to rename sessions - Fixed scroll behavior when no session exists
Features
7. November 2025
- Disabled scrollbar temporarily because of text wrap issues - Added VS Code Insiders support - Improved message storage performance - Implemented network IP retrieval for remote access in web command - Fixed ACP to respect user's default model config - Resolved Mistral API compatibility issues
Features
7. November 2025
- Fixed issue with input randomly breaking in the TUI - Improved Codex model configuration by removing text verbosity settings and adding store flag support
Features
6. November 2025
- Added system theme support - Fixed Mistral API compatibility issues - Fixed auto-scroll to bottom when selecting session from list - Added desktop review flow - Fixed diff highlight rendering in desktop app
Features
6. November 2025
- Only display last 100 messages in TUI - Fixed opencode run not parsing model string - Updated import command to accept share links - Fixed undo command breaking other commands - Added big dot (●) indicator for current session in modal
Features
6. November 2025
- Moved debug shortcuts (toggle debug panel and toggle console) from hidden keyboard shortcuts to the command palette for better discoverability - Upgraded to opentui v0.1.36 (dependency update)
Features
6. November 2025
- Upgraded to opentui 0.1.35, mitigating disappearing content and crashes - Fixed export command output to allow piping without UI interference
Features
5. November 2025
- Added opencode import command to restore sessions from JSON exports - Temporarily removed bun strip ansi due to bug - Desktop app now incrementally loads sessions in the side navigation
Features
5. November 2025
- Ask instead of throwing tool error if file is outside cwd - Fixed max height on message diffs and session stats in desktop app - Fixed sidebar modified files display
Features
5. November 2025
- Updated authentication method for ACP (Agent Communication Protocol) - Default ACP configuration now uses "big-pickle" model from opencode provider
Features
5. November 2025
- Fixed autocomplete to prioritize exact matches by trimming display names for better fuzzy matching - Added file count to session summary, showing the number of files changed in addition to additions and deletions - Improved error handling in session view with user-friendly toast notifications when sessions are not found - Fixed local development URL configuration in desktop application
Features
5. November 2025
- Restructured Sidebar component to be scrollable - Lowered paste summary threshold to trigger on shorter content - Added --attach flag to opencode run - Fixed eu-west-2 AWS Bedrock issue - Normalized escape keybind
Features
5. November 2025
- Fixed slash command bug in ACP package - Allow @ agents to work even if not first thing in prompt - Added /export and /copy commands to TUI - Added Clojure syntax highlighting support - Fixed command validation to prevent invalid commands from being executed - Added support for R formatter in formatters
Features
5. November 2025
- Fixed session abort when autocomplete is visible in TUI - Fixed image reading error and added error toast for event bus - Added command bar option to interrupt session - Fixed permissions not responding to ESC key - Added support for `uv format` in formatters - Added GitHub Enterprise support for Copilot
Features
4. November 2025
- Added readline-style autocomplete keybinds to TUI - Fixed autocomplete showing when user types a space - Added ability to interrupt running sessions from command palette
Features
4. November 2025
- Fixed session performance issue from large diffs by storing diff data separately and only showing summary statistics (additions/deletions) in session summaries
Features
4. November 2025
- Fixed worker path resolution in dev mode (#3778) - Added support for scoped npm plugins (#3785) - Fixed the /undo command functionality - Made /mcp an alias for /status command (#3894) - Fixed refocus prompt after session delete (#3882) - Corrected history_next keybinding description (#3891) - Added respect for disable_paste_summary setting - Updated brew handling for installation - Reverted opentui upgrade that was causing disappearing content issues (#3776, #3697)
Features
4. November 2025
- Fixed tool permission lookup to use correct session ID in TUI - Fixed persistence of -m model when switching agents - Fixed piping functionality - Fixed parsePatch error handling in TUI to prevent crashes - Fixed file tagging in multi-line inputs - Added OPENCODE & AGENT environment variables - Fixed TUI history navigation to respect custom keybindings
Features
4. November 2025
- Fixed model selection for models with nested paths in TUI - Added stats command to display usage statistics - Fixed display of modified keybinds in command list - Updated logo - Removed duplicate copy message command entry in TUI
Features
3. November 2025
- Added copy last assistant message to session menu - Fixed directories query parameter handling - Removed /share hint when sharing is disabled - Fixed session rename functionality - Improved MCP sanitization - Added support for Ctrl+_ key combination in keybind parser
Features
3. November 2025
- Added new `web` command that starts a headless opencode server and opens the web interface - Fixed MCP error handling issue (#3847) - Fixed stdout flushing issue in generate command
Features
3. November 2025
- Added optional `dirs` parameter to file search API - Fixed incorrect keybind display in session delete confirmation message - Fixed clipboard image encoding and binary handling issues - Enhanced task display to show subagent type information - Fixed TypeError when error handling encounters non-object errors
Features
3. November 2025
- Fixed focus management and dialog interactions in the TUI - Fixed file path handling when pasting images with spaces in filename - Added /timeline command to quickly navigate to specific messages in session history - Moved dialog select keybind to input for better user experience - Upgraded to Bun 1.3.1 for improved performance and stability
Features
2. November 2025
- Added back child session cycle functionality - Fixed file path handling when pasting images with spaces in filename - Added /timeline command to quickly navigate to specific messages in session history
Features
2. November 2025
- Fixed duplicate plugin subscriptions - Fixed typos in documentation and code comments - Added nightowl theme back after opentui release
Features
2. November 2025
- Fixed dialog functionality - Prevented default Enter key behavior when selecting dialog options to avoid conflicts - Upgraded to opentui 0.1.32, activating kitty keyboard
Features
1. November 2025
- Added light mode support to the TUI interface - Updated keybinds documentation with current defaults and removed deprecated bindings
Features
1. November 2025
- Added `/exit` command to TUI with aliases `/quit` and `/q` to exit the application - Added command aliases for existing TUI commands: `/summarize` for `/compact`, `/clear` for `/new`, and `/resume`/`/continue` for `/session` - Enhanced autocomplete functionality to support command aliases in the TUI
Features
1. November 2025
- Changed delete keybind to Ctrl+D in session list dialog - Fixed modified files being empty - Added ability to remember sidebar position - Added `--prompt` option to TUI - Added formatter status display to TUI status dialog - Ensured wl-copy is available - Fixed TUI clipboard copy errors handling - Added toast notification for /share URL copy - Made /init a default slash command on server side - Fixed /editor command in TUI
Features
31. Oktober 2025
- Added keyboard shortcuts to cycle through recently used models (F2 to cycle forward, Shift+F2 to cycle backward) - Improved keyboard navigation and MCP server status display
Features
31. Oktober 2025
- Added session rename functionality with `/rename` command - Fixed worker.ts path dependency on current working directory - Fixed grep failing when pattern started with a dash - Simplified theme selection API by renaming `setSelectedTheme` to `set` - Added theme support in config - Removed conflicting "-h" aliases in TUI spawn and thread commands - Fixed unsupported option error - Added `/editor` command to autocomplete for opening external editor - Added `/theme` command - Reverted flags & docs matching fix - Allowed Ctrl+D to exit the app - Improved error boundary with button to easily create GitHub issue
Features
31. Oktober 2025
- Added tab key support for selecting autocomplete options in the TUI - Improved autocomplete component styling with better text wrapping and layout - Removed debug console.log statement from theme context
Features
31. Oktober 2025
OpenCode 1.0 is a complete rewrite of the TUI. We moved from the go+bubbletea based TUI which had performance and capability issues to an in-house framework (OpenTUI) written in zig+solidjs. The new TUI works like the old one since it connects to the same opencode server. --- ## Upgrading You should not be autoupgraded to 1.0 if you are currently using a previous version. However some older versions of OpenCode always grab latest. To upgrade manually, run ```bash $ opencode upgrade 1.0.0 ``` To downgrade back to 0.x, run ```bash $ opencode upgrade 0.15.31 ``` --- ## UX changes The session history is more compressed, only showing full details of the edit and bash tool. We added a command bar which almost everything flows through. Press ctrl+p to bring it up in any context and see everything you can do. Added a session sidebar (can be toggled) with useful information. We removed some functionality that we weren't sure anyone actually used. If something important is missing please open an issue and we'll add it back quickly. --- ## Breaking changes ### Theme The `system` theme has not yet been ported and custom themes aren't loaded yet but both of these will be fixed this week. ### Keybinds renamed - messages_revert -> messages_undo - switch_agent -> agent_cycle - switch_agent_reverse -> agent_cycle_reverse - switch_mode -> agent_cycle - switch_mode_reverse -> agent_cycle_reverse ### Keybinds removed - messages_layout_toggle - messages_next - messages_previous - file_diff_toggle - file_search - file_close - file_list - app_help - project_init - tool_details - thinking_blocks
31. Oktober 2025
- Fixed crash caused by missing @opencode-ai/plugin dependency - Filtered out deprecated models from model selection - Normalized Unix-like identifiers to support Git Bash for Windows
Features
31. Oktober 2025
- Fixed bash permission handling for more accurate command pattern matching - Fixed application hanging after exit, improving shutdown reliability - Added optional headers field to model configuration for enhanced API customization - Fixed hanging permission prompts in headless mode, enabling better automation support - Improved Deno LSP server detection and configuration for better TypeScript/JavaScript support - Enhanced frontmatter error messages for clearer configuration file troubleshooting
Features
29. Oktober 2025
- Only generate user message summary if no diffs are present, improving performance and reducing unnecessary AI calls - Enhanced desktop message component to support both user and assistant messages with improved UI rendering - Added user message display in session history with text truncation for better readability - Improved message part visibility controls with `hideDetails` prop replacing `readonly` for better UI state management
Features
29. Oktober 2025
- Added enterprise page with contact form for organizations to request enterprise solutions - Added enterprise FAQ section covering data ownership, SSO integration, and self-hosting options - Added testimonial section to enterprise page with customer quote - Fixed form submission functionality for enterprise inquiries - Added enterprise navigation link to header menu
Features
29. Oktober 2025
- Added OpenAPI annotations to tui.ts control endpoints - Session diff now only includes modified files - Fixed models endpoint to be OpenAI compatible
Features
29. Oktober 2025
- Fixed timeout parameter validation in bash tool to ensure positive values - Fixed MCP status() function to not overwrite connected state with failed state - Improved output handling by using process.stdout.write instead of console.log for better CLI experience - Added --title flag to opencode run command for custom session titles - Fixed additions and deletions counting in edit tool filediff for more accurate change tracking - Added OPENCODE_CONFIG_DIR environment variable to allow loading custom config directories
Features
28. Oktober 2025
- Added OPENCODE_FAKE_VCS flag for VCS testing and updated todo tracking instructions - Removed temperature setting for Claude models - Added MCP server support, file diffs, and default slash commands (/init, /compact) in ACP - Fixed LiteLLM error where tool parameter must be specified - Removed reasoning effort setting to 'medium' for gpt-5-pro model - Added session.started event that triggers when a new session is created - Fixed build script to work cross-platform - Removed claude-haiku-4.5 from default priority for GitHub Copilot session title generation
Features
26. Oktober 2025
- Fixed $ invocation not being quiet in LSP server - Added noReply parameter to control response behavior - Fixed timeout parameter to allow users to disable provider timeout - Made title generation more reliable - Updated Anthropic prompt
Features
25. Oktober 2025
- ACP: Added slash commands, agents, permissions, and @ references support - Fixed bedrock reasoning functionality - Made plan agent whitelist more conservative - Added Lua LSP support - Fixed autoupdate settings to respect local configuration - Adjusted edit tool multiple matches error wording for better clarity
Features
24. Oktober 2025
- Fixed GPT-5 Codex models to not have reasoning effort set, while maintaining medium reasoning effort for other GPT-5 models - Changed reasoning summary from "detailed" to "auto" for opencode provider with GPT-5 models
Features
24. Oktober 2025
- Fixed Opencode failing with ENOENT posix_spawn '/usr/bin/rg' error - Added flag wildcard parsing support for bash tool - Fixed `zod-to-json-schema` dependency placement - Fixed `tool.execute.after` hook to properly modify MCP tool output
Features
23. Oktober 2025
- Added model management to ACP sessions, allowing users to manage models within agent sessions - Adjusted retry logic so we can surface retries to end user (not surfaced yet) - Added experimental turn summarization to compact conversation history, helping manage long conversations - Added parent ID tracking to assistant messages for better conversation context - Added Amazon Nova models to the us-* prefix requirement list for proper model routing - Fixed opencode run command to not print to stderr, improving output handling - Improved editor detection with auto-discovery and better error messages - Added option to allow agent switches without changing the model
Features
21. Oktober 2025
- Fixed provider option transforms functionality - Added line-level statistics in file diffs to help users understand the scale of changes
Features
21. Oktober 2025
- Added `-f/--file` flag to opencode run command to run files directly - Fixed OpenAI options when using @ai-sdk/azure - Adjusted file API to encode images properly - Updated to newer ACP package - Improved error handling with console output for debugging
Features
20. Oktober 2025
- Added Astro language server support with automatic installation for .astro files - Fixed bash tool permission merging issues - Fixed snapshot undo functionality bug - Removed invalid GitHub Copilot provider option from the interface - Improved argument replacement handling in session prompts
Features
17. Oktober 2025
- Added Deno LSP support for enhanced language server functionality - Reverted changes that attempted to avoid persisting empty thinking/text blocks
Features
16. Oktober 2025
- Fixed timeout option implementation to properly handle fetch requests with custom timeout values - Fixed bash command execution to prevent hanging processes and properly clean up orphaned child processes - Fixed connection closed errors in LSP file operations
Features
16. Oktober 2025
- Fixed GitHub action trigger patterns to properly respond to both `/oc` and `/opencode` commands - Changed GitHub action model from `opencode/sonic` to `opencode/kimi-k2` - Added GitHub Actions core libraries and Octokit dependencies for enhanced GitHub integration - Improved handling of empty thinking/text blocks to avoid persisting them in sessions - Adjusted GitHub workflow permissions from write to read access for contents, pull-requests, and issues
Features
16. Oktober 2025
- Fixed OpenAI provider to use chat language model instead of completion language model - Added session option to attach command for connecting to specific sessions - Added Slack integration package with Bolt framework support - Simplified SDK getting started with single `createOpencode` function that creates both server and client - Added `createOpencodeTui()` function to SDK for programmatic TUI launching - Filtered out alpha status models from provider list for better model selection - Made compact feature use streaming API for improved performance - Updated Bedrock provider for Australian Sonnet 4.5 cross-region inference support - Added support for custom tools through plugin system - Allowed read tool to handle image files - Improved HTTP error codes for better error reporting - Added timeout to fetch models.dev refresh request for reliability - Fixed false positive package manager detection in upgrade command - Disabled workspace symbol lookup to prevent LSP performance issues - Fixed config directory overrides for better configuration management - Added useCompletionUrls option to fix certain Azure setups - Included stack trace in server error responses for debugging - Fixed typecheck issues across packages - Fixed `rg` hanging forever when run in bash waiting for stdin - Fixed perl6 file extension support - Improved directory validation error messages - Fixed clang formatter name configuration
Features
14. Oktober 2025
- Fixed false positive package manager detection in upgrade command - Added session option to attach command for connecting to specific sessions - Exported trimDiff function from edit tool for better API accessibility - Resolved TypeScript errors in SDK package for improved reliability - Added new Slack integration package with Bolt framework for Slack bot functionality - Improved dependency management and error handling for more reliable builds
Features
14. Oktober 2025
- Fixed config directory overrides to prevent overwriting existing package.json and .gitignore files - Fixed custom model aliases to properly map model IDs to their real provider model IDs - Fixed clang formatter name detection - Made shell execution more robust with proper shell-specific argument handling for bash, zsh, fish, and nu shells - Added useCompletionUrls option to fix certain Azure OpenAI setups that require completion endpoints instead of responses endpoints - Included stack traces in server error responses for better debugging
Features
13. Oktober 2025
- Fixed LSP performance issues by disabling workspace symbol lookup - Fixed session compaction to properly pass model options during text generation - Improved list tool prompt to better handle current working directory context - Added timeout protection for models.dev refresh requests to prevent hanging
Features
12. Oktober 2025
- Fixed `rg` hanging forever when run in bash, waiting for stdin - Improved directory validation error messages to help users fix invalid directory names - Added support for Perl6 file extensions - Ensured @opencode-ai/plugin is available in `.opencode` folder
Features
10. Oktober 2025
- Replaced chokidar with @parcel/watcher for better file system performance and cross-platform support - Added ability for read tool to handle images (#3052) - Added experimental skip bootstrap feature - Improved MCP reliability with status monitoring - Added timeout messages for commands that time out (#2986) - Fixed file references and grep tool for Windows (#2980) - Added Vertex AI support with google-vertex and google-vertex-anthropic providers (#2347) - Added command to debug config (#2962) - Added output-format flag to stream JSON output (#2471) - Fixed bash command security validation to prevent accidental directory traversal - Improved session API reliability with proper input validation - Added todo list and session forking API endpoints - Added session forking functionality - Simplified getting started with single createOpencode function (removes need to manually coordinate separate server and client creation) - Added createOpencodeTui() function for programmatic TUI launching (#2410) - Added createOpencodeServer function with readiness waiting and random port usage - Added /client and /server import paths for JS SDK - Fixed type exports in package.json for better TypeScript compatibility (#2654) - Added SSE streaming support - Added dynamic tool registration for plugins and external services (#2420) - Added plugin hook for config - Fixed plugin exports and improved compatibility
Features
7. Oktober 2025
- Added MCP server status monitoring with new GET /mcp endpoint to check connection status of MCP servers - Added 5-second timeout to MCP client verification to prevent hanging connections - Automatically removes unresponsive MCP clients during initialization - Updated Go SDK to version 0.16.2 with bug fixes for JSON key handling with special characters - Updated minimum Go version requirement from 1.18 to 1.22 - Added new todo-related event types to the event system
Features
7. Oktober 2025
- Fixed bash command security validation to prevent accidental directory traversal outside project directory - Added timeout message when commands timeout - Fixed file references and grep tool compatibility issues on Windows - Added todo list functionality with API endpoints - Added session forking functionality to create new sessions from existing ones (api only) - Improved session API reliability with better input validation
Features
5. Oktober 2025
- Added simplified SDK initialization with single `createOpencode` function that creates both server and client automatically - Fixed max output tokens issue when using large thinking budget - Fixed LSP filename matching when file extension is missing - Added Vertex AI support with new `google-vertex` and `google-vertex-anthropic` providers - Added `opencode debug config` command to output current configuration as JSON
Features
2. Oktober 2025
- Fixed file search limit handling to properly respect the limit parameter when no query is provided - Removed empty try-catch block from main entry point - Added File module initialization to bootstrap process
Features
2. Oktober 2025
- core: make patch tool more reliable and consistent with other editing tools The patch tool now works seamlessly alongside other file editing tools with improved error handling and a more intuitive permission system. Users will experience: - More reliable patch application with better error messages - Consistent permission prompts that match other editing tools - Smoother integration when applying complex multi-file changes - Better feedback on what changes are being made before applying patches This refactoring leverages the robust patch parsing engine while making the tool feel native to the opencode workflow, reducing friction when making bulk changes to your codebase. - core: remove redundant patch integration test The integration test was duplicating coverage already provided by the comprehensive patch namespace tests. Users benefit from faster test runs without losing any coverage of patch functionality. The remaining tests provide complete validation of patch parsing, application, and tool integration. - Zen lander (#2907) Co-authored-by: David Hill <iamdavidhill@gmail.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Jay V <air@live.ca> - core: improve file search reliability and performance
Features
1. Oktober 2025
- fix: worktree cmd (#2870) - fix: tui stuck saying generating... even when it is done (#2872) - update anthropic system prompts - fix: adjust model dialog to handle same model id but different names (#2881) - overhaul file search and support @ mentioning directories
Features
29. September 2025
- fix zen cookie - sync - core: fix config test by removing model field expectation - core: configure turbo to avoid building opencode for web tests - Include step-start and step-finish for cost tracking (#2810) - sync - Fix: Set OPENCODE_CALLER env in a more portable way for vscode extension (#2230) - respect model id in opencode.json (#2833) - core: improve webfetch tool content negotiation and format handling
Features
26. September 2025
- feat(app): added command palette (#2630) Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> - feat: fuzzy file open - fix: select dialog hover - feat(app): changes view - fix(app): changes view - zen: billing - zen: billing - zen: fix parsing cache write tokens - zen: check balance on enable billing - zen: track tps - Update opencode logo - tweak: include usage by default for openai compatible providers (#2788) - fix: openai reasoning issue (#2780) - core: enable reasoning.encrypted_content and reasoningSummary for opencode provider\ntui: adjust editorY position calculation - turn reasoning summaries back on by default for zen - tui: fix opencode logo spacing in home view
Features
24. September 2025
- feat: output-format flag to stream json output (#2471) Co-authored-by: Siddhant Choudhary <sid@treaps.com> Co-authored-by: rekram1-node <aidenpcline@gmail.com> - zen: refund - update copilot auth
Features
23. September 2025
- fix: lsp spawn logic (#2723) - feat: add Java LSP server support (#2547) Co-authored-by: rekram1-node <aidenpcline@gmail.com> - fix: enforce extensions requirement for custom lsp servers (#2734) - fix: lsp extension undefined handle (#2739) - fix: theme css format - fix: exclude generated css file - Merge branch 'dev' of https://github.com/sst/opencode into dev - fix: open text files - zen: update logged endpoints - fix: remove file existence check from LSP debug and format storage code - fix codex errors
Features
20. September 2025
- fix: no payment method (#2706) - Enhance theme documentation with links (#2707) Co-authored-by: rekram1-node <aidenpcline@gmail.com> - turn back on compaction summaries
Features
18. September 2025
- fix: only keep aborted messages if they have sufficient parts (#2651) - Support GLM coding plan - fix: add synthetic user prompt after session compaction (#2659) Co-authored-by: Julián Díaz <git@jdiaz.io> - fix: type exports in package.json for SDK package (#2654) - support custom tools (#2668) - Plugin tool updates (#2670) - rework custom tools - fix(config): keybinds should not be required in config schema (#2669)
Features
17. September 2025
- tweak: adjust title gen when using models like gpt-5-nano on non open… (#2646) - fix: type 'reasoning' was provided without its required following item (#2633) - fix(TUI): display correct branch name in git worktree (#2626)
Features
16. September 2025
- fix(windows): force npm cmd shim generation and update install docs (#2558) Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: GitHub Action <action@github.com> - fix crash when todo content is empty fixes #2622
Features
16. September 2025
- feat: enhance provider model mapping and reasoning capabilities - Add npm package tracking to provider model mapping - Implement special handling for opencode provider with reasoning - Update provider options mapping to use npm package names
Features
16. September 2025
- fix: restore chat.message plugin hook (#2619) - feat: improve file watcher with chokidar and better ignore patterns (#2621) Co-authored-by: GitHub Action <action@github.com>
Features
15. September 2025
- feat: add desktop/web app package (#2606) Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: GitHub Action <action@github.com>
Features
15. September 2025
- fix: fix wrong tool references `LS` and `Agent` (#2466) - tweak: make bash permissions key off of command pattern (#2592) - log bash output when using `opencode run` (#2595) - fix: reasoning metadata persistence (#2602) - fix: visual token bug (#2603) - Upgrade to Zod v4 (#2605) Co-authored-by: GitHub Action <action@github.com>
Features
14. September 2025
- Session management and prompt handling improvements (#2577) Co-authored-by: GitHub Action <action@github.com> - add disable OPENCODE_DISABLE_AUTOCOMPACT - disable autocompact if context is 0 - tweak: keep aborted msgs in context (#2583) - respect subagent in command, add `subtask` flag (#2569) - fix: token counting visual bug (#2587) - fix(dev): build tui with correct file ext for windows (#2590)
Features
13. September 2025
- fix: await cleanupRevert() to prevent dupe msgs after undo (#2572) - fix: make permission always behavior match expectation (#2573) - fix: ShellError: exit code 1 errors (#2568) Co-authored-by: rekram1-node <aidenpcline@gmail.com> - nudge llm to continue properly after compaction
Features
11. September 2025
- fix: command being passed as arg when no args present (#2553) - feat: Add an experimental option to disable paste summaries (#2552) Co-authored-by: rekram1-node <aidenpcline@gmail.com> - properly support model level npm definition - Merge branch 'production' into dev
Features
11. September 2025
- fix: handle @dir in command (#2533) - resolve nested commands (#2537) - Update providers.mdx because of small typo (#2539) - compaction improvements - remove block anchor edit - reduce LSP verbosity
Features
9. September 2025
- feat: add dynamic tool registration for plugins and external services (#2420) - Merge branch 'production' into dev - remove edit tool from plan agent (#2505) - Hide experimental models
Features
8. September 2025
- fix: dont paste collapse if in bash mode (#2482) - fix: shell invocations are dropped if last interaction was revert (#2485) - fix: silent error if bad flag was passed (#2486) - fix: aws bedrock add check for govcloud (#2495) - tweak: reenable todowrite & todoread for qwen models (#2499) - Zen: telemetry - feat: make npm package install work on windows (#2419)
Features
7. September 2025
- wip console - wip console - wip console - script package - wip cloud smart - wip console - wip console - wip console - wip console - fix: file fuzzy search (#2409) - feat: add createOpencodeTui() function to SDK for programmatic TUI launching (#2410) - fix: worktree file/content never includes patch - fix: better file/content return - fix: webfetch prompt mistake (#2424) - Update index.tsx (#2423) - tweak(edit): separate edit tool error message with clearer guidance to avoid llm doom editing loop (#2051) - fix: file read response - fix: default to last used model (#2443) - fix: command model selection (#2448) - fix: title not generated if first msg is shell invocation (#2451) - fix: title gen w/ gpt-5-nano (#2473) - fix: max output tokens when setting budget thinking tokens (#2056) Co-authored-by: rekram1-node <aidenpcline@gmail.com>
Features
3. September 2025
- make @file references in custom slash commands more robust (#2203) Co-authored-by: Adam Spiers <opencode@adamspiers.org> Co-authored-by: rekram1-node <aidenpcline@gmail.com> - fix: file.list relative to root - fix: local subdirectory subagents not being picked up (#2376) - tweak: update ls tool to use rg (#2367) - support OPENCODE_CONFIG_CONTENT - generate api key - fix: more durable @ references for commands (#2386) - wip cloud - Patch Start to preload route css in SSR (#2389) - wip console - wip console
Features
1. September 2025
## Breaking Changes This release has a bunch of minor breaking changes if you are using opencode plugins or sdk 1. storage events have been removed (we might bring this back but had some issues) 2. concept of `app` is gone - there is a new concept called `project` and endpoints to list projects and get the current project 3. plugin receives `directory` which is cwd and `worktree` which is where the root of the project is if it's a git repo 4. the session.chat function has been renamed to session.prompt in sdk. it no longer requires model to be passed in (model is now an object) 5. every endpoint takes an optional `directory` parameter to operate as though opencode is running in that directory - Use a single rust LSP server instance for entire cargo workspace (#2292) - fix: change command selection to prefer exact matches over fuzzy sear… (#2314) - tweak: ensure run command doesn't send request if no prompt present (#2332) - fix: resolve [pasted lines] when passing paste as arguments for command (#2333) - add support for lsp workspace/didChangeConfiguration (#2334) - fix: ensure command uses currently selected model (#2336) - fix: resolve virtual envs for python LSP (#2155) Co-authored-by: rekram1-node <aidenpcline@gmail.com> - fix: adjust title generation prompt to prevent direct response instead of title gen (#2338) - fix: ensure shell cmds can be properly aborted (#2339) - feat: Allow provider timeout override (#1982) - fix: ensure gopls lsp id matches docs (#2344) - add --command to opencode run (#2348) - fix: tui attachment bound (#2361)
Features
30. August 2025
- fix: shimmer cpu cost (#2084) - sdk update - feat: file list api - fix: ensure / commands dont try to resolve @ references from cmd outputs (#2282) - add synthetic user message before bash execution (when using !) (#2283) - feat: include ignored files - fix: tui not showing err toasts (#2290) - Vercel AI Gateway key deeplinks into the dashboard (#2287) - fix: mcp client name (#2289) - feat: home dir in app info - wip cloud - wip cloud - wip cloud - allow slash commands to resolve ~/ references (#2295) - fix: replace isomorphic-git status with direct git diff for worktree support (#1706) Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> - tui: show actual error if command fails (#2296) - fix: add additional encouragement for title gen (#2298) - fix: lsp debug cmd log (#2310) - Update sst - Fix code block formatting in sdk.mdx (#2312) - fix: mcp tool not triggering hooks (#2320) - wip cloud - Use a single rust LSP server instance for entire cargo workspace (#2292)
Features
26. August 2025
- Add opencode workflow - Add opencode workflow - fix: model flag in non interactive mode (#2249) - fix: eslint ENOTEMPTY (#2252) - fix: bash tool description (#2260) - Revert "fix(tui): too early" This reverts commit 564418f1ff80fc4d39b864de76f36c8f1eb4fbd4.
Features
25. August 2025
- fix(tui): fix logo color - feat(tui): grok free - fix(tui): sort custom commands lower - fix(tui): sort custom commands lower - fix(tui): wording
Features
23. August 2025
- chore(openapi): set correct content type for server-sent events (#2045) - add sse streaming to sdk - fix: count reasoning tokens (#2187) - feat(lsp): option to disable lsps installing automatically (#1997) Co-authored-by: rekram1-node <aidenpcline@gmail.com>
Features
22. August 2025
- await config hooks - fix: preserve cache dir on cleanup (#2126) - fix(js-sdk): fix types in session.chat (#1925) Co-authored-by: zwingzheng <zwingzheng@tencent.com> Co-authored-by: rekram1-node <aidenpcline@gmail.com> - allow importing sdk from @opencode-ai/sdk/server and @opencode-ai/sdk/client - fix sdk config type - fix: if lsp fails to spawn it shouldn't inject errors into edit diagnostics (#2145) - add `createOpencodeServer` to js sdk and wait for readiness. always use random port for `opencode serve`. add `/client` and `/server` imports for js sdk - tweak: adjust plan agent to ask when running bash, give it edit tooli… (#2150) - deal with non existing cache folder - fix: error logging (#2165) - fix: correct typo in LSP documentation (#2164) - Update duplicate-issues.yml - slash commands (#2157) Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com> - fix: format error log (#2184)
Features
20. August 2025
- blacklist gpt-5-chat-latest (#2048) - fix: ensure name isn't added as field in options: {...} (#2053) - Update duplicate-issues.yml - tweak: better agent create error handling (#2058) - fix: interface conversion panic (#2060) - fix: add type checking for MCP tool path parameters (#2073) Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> - fix: tui panic from logger (#2075) - fix(TUI): make it less shimmer (#2076) - tweak: notify agent it is in build mode when switching from plan mode (#2065) - fix: agent casing issue (#2081) - fix: keybind panic (#2092) - fix: don't let --continue access subagent session (#2091) - sonic model
Features
18. August 2025
- feat: top level tool config (#2008) - tweak(config): make markdown agent files in subfolder discoverable `.opencode/agent/some-folder/*.md` (#1999) - fix: install script didnt use -e flag (#2009) - fix: lsp bug (#1994) - feat(lsp): add rust-analyzer (#1972) - fix(opencode): add ulid dependency (#1988) (#1989) Co-authored-by: Dax <mail@thdxr.com> - fix: better binary file detection (#2025) - fix: gh install trim remote origin (#2030)
Features
16. August 2025
- fix: remove unsupported mode flag, change to agent (#1979) - tweak: plan prompt, more explicit about not modifying files (#1991) - feat(tui): retain cache when cycling between subagent/parent sessions for perf (#1981) - fix(tui): text selection is sometimes not cleared when click+release without dragging (#1993)
Features
15. August 2025
- feat: add scroll speed to config (#1968) - feat(TUI): improves UX with message navigation modal to jump and restore to specific messages (#1969) - fix(shell): commands expecting stdin will be "working" indefinitely (#1964) - feat(shell): load .zshenv and respect ZDOTDIR if present (#1958) - fix: some visual bugs in dialogs
Features
15. August 2025
- fix: small tweak to support nushell (#1943) - lander: match alternatives h3 font size with figcaption on mobile - fix(TUI): fix agent types agents modal (#1942) - fix: fish shell (#1950) - fix: more permissive owner/repo detection (#1948) - Feat: Render tool metadata after permission rejection. (#1949) Signed-off-by: jmug <u.g.a.mariano@gmail.com> - Add Vue LSP and enable eslint for `.vue` files. (#1952) - feat(tui): support cycling recent models in reverse (#1953) - fix(tui): issue with rendering markdown tables (#1956) - fix: add missing keybinds to config - fix: keybind docs out of sync - feat: better queued visual - fix: more commands cleanup - feat: /tui/show-toast api - feat(api): get session and session children routes - feat(tui): navigate child sessions (subagents)
Features
13. August 2025
- feat: convert attachments to text on delete (#1863) Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Dax <mail@thdxr.com> - fix: default scroll speed should be slower - Fix incorrect AUR namespace (#1907) - re-enable aur - Fix: Error [ERR_DLOPEN_FAILED] (#1546)
Features
13. August 2025
- fix: duplicates bot prompt (#1901) - fix: js plugin support as per documentation (#1896) - fix: grammatical error in agent launch example (by Opencode) (#1897) - docs(cli): document ! bash commands and session persistence in CLI docs - feat: bash commands - support !shell commands - feat: convert attachments to text on delete (#1863) Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Dax <mail@thdxr.com>
Features
13. August 2025
- fix: better error message when config has invalid references (#1874) - fix: task tool prompt (#1887) - fix: reasoning not supported (#1882) - fix: permission prompting issues (#1884) - Merge default agent permissions with global config (#1879) - fix: update read tool description to exclude binary/image files - fix: allow attachments outside cwd, and support svg - fix: messages layout instability
Features
12. August 2025
- disable todo tools for qwen models to improve compatibility - bash truncate character max instead of line max - refactor(agent-modal): revamped UI/UX for the agent modal (#1838) Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Dax <mail@thdxr.com> - feat: add session rename functionality to TUI modal (#1821) Co-authored-by: opencode <noreply@opencode.ai> Co-authored-by: Dax Raad <d@ironbay.co> Co-authored-by: Dax <mail@thdxr.com> - add openai prompt cache key - fix(TUI): unsurfacing subagent from agents modal (#1873)
Features
12. August 2025
- fix: long word and attachment wrapping in editor - Add agent-level permissions with whitelist/blacklist support (#1862) - support OPENCODE_PERMISSION json env variable
Features
12. August 2025
- support wildcard matching tool names in config - Update duplicate-issues.yml - Update guidelines-check.yml - fix: preserve process.env when spawning formatter commands (#1850) - fix: use real cursor instead of virtual cursor
Features
12. August 2025
- refactor: replace OPENCODE_AGENTS env var with HTTP API call Replace environment variable passing of agent data from Node.js to TUI with proper HTTP API call to /agent endpoint. This improves architecture by eliminating env var dependencies and allows dynamic agent data fetching. - Simplify git-committer agent definition for better maintainability
Features
11. August 2025
- remove git bash tool coauthor message - fix: take up less vertical space - fix: collapsed tool calls hidden at times - feat: add -c and -s args to tui command following run command pattern (#1835) - Revert "feat: improve file attachment pasting (#1704)" This reverts commit 81a3e02474445bc4d22c7857d4c3b1f591c1cb56. - Fix plugin file name (#1837)
Features
11. August 2025
- fix: don't display placeholder on error - feat: toggle tool details visible - Update GPT-5 system prompt to use copilot-specific prompt instead of codex prompt 🤖 Generated with [opencode](https://opencode.ai) Co-Authored-By: opencode <noreply@opencode.ai> - remove git bash tool coauthor message
Features
11. August 2025
- fix: instructions should be able to handle absolute paths (#1762) - fix: only load the first local and global rule file (#1761) - Feat: Implement Wrap-Around Navigation for List Selection (for Models and Tools modal) (#1768) - Fix: Respect agent's preferred model at TUI startup (#1683) Co-authored-by: opencode <noreply@opencode.ai> - fix: re-render messages on session error - feat: placeholder on pending assistant message - fix: reformat assistant message footer - make models key optional in config - fix azure gpt config
Features
11. August 2025
- fix run command to be less messy - feat (tui): agents dialog (#1802) - Fix: Sanitize MCP Tool Names for Consistency in User Expectations (#1769) - Add support for biome.jsonc config file (#1791) - Issue 1676: Don't eat up the last newline in a multi-line replacement (#1777) - Feat: Add F2 Keybind to Cycle Through the 5 Most Recent Models (#1778)
Features
11. August 2025
- feat: improve file attachment pasting (#1704) - wip gateway - better permissions ux when denying (#1747) - feat: eslint lsp (#1744) - use minimal reasoning effort for gpt-5 - Update moonshot ai provider doc - Feat: Add Agent Name in the LLM Response Footer (and re-order it) (#1770) - feat: webfetch permission support (#1772) - wip gateway - feat: thinking blocks rendered in tui and share page - support agent options - switch gpt-5 to codex prompt - fix(plugin): prevent compiled binary hang by removing lazy dynamic import (#1794) Co-authored-by: opencode <noreply@opencode.ai> - pass through additional agent options to the provider
Features
9. August 2025
- fix(TUI): enable general (sub-) agent for @ referencing (#1705) - fix(tui): preserve scroll position when reflowing due to message stream (#1716) - fix deploy script - fix deploy - Clarify remote mcp error (#1729) Co-authored-by: opencode <noreply@opencode.ai> - chore(js-sdk): Compatible with nodenext (#1667) - Reference the actual name of the windows package (#1700) - feat(agent): allow mode selection during creation (#1699) - Remove unused OpenTelemetry tracing and fix overlapping highlights (#1738) Co-authored-by: opencode <noreply@opencode.ai> - gpt-5 lower verbosity - remove synthetic message in plan mode, fixes being confused in build mode
Features
8. August 2025
- fix: text selection bug (#1664) - fix: modal pastes (#1677) - fix: get session api (#1684) - Merge agent and mode into one (#1689) The concept of mode has been deprecated, there is now only the agent field in the config. An agent can be cycled through as your primary agent with <tab> or you can spawn a subagent by @ mentioning it. if you include a description of when to use it, the primary agent will try to automatically use it Full docs here: https://opencode.ai/docs/agents/ - looser todo tool schema - renable todo tool
Features
6. August 2025
- fix: prevent title regeneration on auto compact (#1628) - fix: markdown table renders (#1623) - docs(plugins): fix typo (#1621) - feat: better assistant message visual - permissions disallow support (#1627) - fix: handle undefined agent in task tool (#1642) - fix: highlight after text wrap (#1640) - fix: run command should use specified model from cli args if provided (#1648) - add `snapshot` field in config to disable snapshots
Features
5. August 2025
- fix(plugins): improve session idle event (#1615) - fix: server.root is not a function (#1614) - validate file part bounds to prevent panic (#1612) - fix: allow disabling the default general agent (#1616) - hint back to llm when tool does not exist
Features
4. August 2025
- Add typecheck workflow - fix: patch marked-shiki (#1569) - Add workflow_dispatch trigger to typecheck workflow - fix docs - fix double help printing (#1580)
Features
3. August 2025
- fix bash tool getting stuck on interactive commands - increase models.dev polling interval to hourly - tweak: filter out duplicate instructions (#1567) - fix bash tool not showing stderr
Features
2. August 2025
- better configuration error messages (#1517) - fix: include stderr in bash tool output (#1511) - feat(models): enable Kimi k2 ⇄ Claude trajectory handoff (#1525) - fix(tui): attachment source is not stored when using message from message history (#1542) - fix(tui): attachment highlighting issues in messages (#1534) - Choose model according to the docs (#1536) - tweak: make gh action ignore url mentions of opencode (#1531)
Features
1. August 2025
- allow search in provider select - handle the optional `v` in upgrade command when using curl (#1500) - fix(docs): Fix formatting for Node.js installation section (#1497) - configurable lsp - make top_p configurable - force models.dev refresh on auth login
Features
1. August 2025
- docs(permissions): add wildcard example (#1494) - fix: {file:...} references weren't being parsed correctly in some cases (#1499) - fix: bash tool errors for chmod (#1502) - tweak: sanitize mcp server names (#831) - fix: unshare command missing - add version to user-agent
Features
31. Juli 2025
- Release v0.3.101 - fix(editor): handle UTF-8 characters properly in SetValueWithAttachments (#1469) - feat: more scriptable tui (api) - fix: permission state hangs - Add provider instruction for Azure OpenAI - fix: session ordering (#1474) - fix: load global jsonc (#1479) - configurable permissions
Features
31. Juli 2025
- fix: unit test assertion (#1435) Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com> - fix: update glob pattern and path in tool test (#1436) - use treesitter to parse bash commands and catch commands that go outside of cwd (#1443) - fix typo in bash.ts (#1444) - Add http-referer header for vercel ai gateway requests (#1403) - feat: mode directory markdown configuration loading (#1377) - Use responses API for Azure (#1428)
Features
30. Juli 2025
- fix: attachment highlighting (#1427) - release undo/redo - lower max retries to 3 - ai sdk currently cannot abort during a retry delay so things appear to be frozen
Features
30. Juli 2025
- build: add @octokit/rest to opencode dependencies (#1396) Co-authored-by: Frank <frank@sst.dev> - tweak: adjust astro css to render mixed nested lists (#1411) - fix: quick grammar and spelling check (#1402) - fix: prevent read tool from opening binary files and corrupting session (#1425) - fix: attachment highlighting (#1427)
Features
29. Juli 2025
- fix: task type error (#1384) - feat: add OPENCODE_CONFIG env var for specifying a custom config file (#1370) - strip todo tool instructions from non anthropic models - feat: show current git branch in status bar, and make it responsive (#1339) Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com> - fix: improve handling of global File object in uploads tests (#1394) - fix: update file name extraction in uploads test to use __filename (#1395) - feat: show git diff in reverted messages - convert share backend to hono app - remove min/max in tool schemas
Features
29. Juli 2025
- Tweak auth cli copy - trim opencode title - fix: task type error (#1384) - feat: add OPENCODE_CONFIG env var for specifying a custom config file (#1370) - strip todo tool instructions from non anthropic models
Features
28. Juli 2025
- fix: attachment bugs (#1335) - show opencode button in vscode when focused on terminal - vscode: bring oc terminal to front if already opened - vscode: add cmd+shift+esc keybinding - fix phantom tool call failed messages and empty text parts with some models
Features
25. Juli 2025
- fix issue with trailing whitespace error in assistant message - feat: add csharp lsp (#1312) - fix: apply content-level caching for non-anthropic providers (#1305)
Features
25. Juli 2025
- fix double system prompt - fix: header width to display header in one line when sharing disabled (#1310) - fix reading model from config - fix issue with trailing whitespace error in assistant message
Features
25. Juli 2025
- Check if modelID includes "claude" for antropic/claude prompt caching (#1284) - includ baseline builds - fix: edit tool (#1287) - fix: add custom() to system prompt on summarize (#1289) - feat: Replace unzip with @zip.js/zip.js for Windows compatibility (#662) - (tui) tweak: add setting for scroll speed (#1288) - Fix: added environment() to summarize() (#1290) - real life totally configurabl ai subasians
Features
24. Juli 2025
- fix "working" spinner animation (#1054) (#1259) - tweak: handle pasted attachment references (#1257) - feat: pass mode into task tool (#1248) - basic undo feature (#1268) Co-authored-by: adamdotdevin <2363879+adamdottv@users.noreply.github.com> Co-authored-by: Jay V <air@live.ca> Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com> Co-authored-by: Andrew Joslin <andrew@ajoslin.com> Co-authored-by: GitHub Action <action@github.com> Co-authored-by: Tobias Walle <9933601+tobias-walle@users.noreply.github.com> - fix header width - fix: update max visible height in list tests (#1269) - disable undo/redo for now - add aura theme (#1280) - fix: slog error log serialization (#1276) - disable snapshots
Features
21. Juli 2025
- feat(tui): theme override with OPENCODE_THEME - feat(tui): disable keybinds - add toast for copy - include newline between messages when copying
Features