OpenCodeOpenCode

Changelog

New updates and improvements to OpenCode

Core

  • Fix most segfaults on Windows with Bun v1.3.10 stable
  • Split TUI and server configuration

Desktop

  • Remove interactive shell flag from sidecar spawn to prevent hang on macOS(@kilhyeonjun)
  • Fixed permissions and questions handling from child sessions in the app
  • Fixed keyboard navigation for previous/next message(@neriousy)
  • Correct Copilot provider description in i18n files(@Oleksii-Pavliuk)

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

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

Desktop

  • Don't spawn sidecar if default is localhost server

SDK

  • Build SDK to dist/ instead of dist/src

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

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

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

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)

Core

  • Ensure SQLite migration logs to stderr instead of stdout

Desktop

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

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

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

Core

  • Show all project sessions from any working directory
  • Tweak websearch tool description date info to avoid cache busts

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

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)

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)

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

Core

  • Improve Codex model list

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
©2026 AnomalyBrandPrivacyTerms