better tldr; source aware/data miner style changelogs generated for OpenCode releases. unofficial

๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v1.18.35 released. TL;DR: Images in xAI tool results now reach the model, OpenCode Data pages get Markdown, JSON and llms.txt versions for agents, and Space Bunny becomes a paid Go model. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Fixed images returned by tools not reaching xAI models by updating the xAI SDK integration to 3.0.139. โ€ข Fixed xAI requests failing completely on an unsupported image type: tool-result images other than PNG, JPEG or WebP (for example GIF) are now dropped instead of causing an invalid_image error. โ€ข Updated the GitLab AI provider to 6.19.0. ๐——๐—ฎ๐˜๐—ฎ Added โ€ข Added Markdown and JSON versions of the home, lab and model pages, plus Markdown for model comparisons. Add .md or .json to the URL, or send Accept: text/markdown. โ€ข Added /data/llms.txt so agents can find these formats and their URL patterns. โ€ข Added 301 redirects from lab and model URL variants to the canonical page, keeping any extension and query string. Fixed โ€ข Fixed canonical links, 404 handling and missing sitemap entries on data pages. โ€ข Fixed stealth model pages so they show public specs (context and output limits, modalities, knowledge cutoff, release date) taken from their OpenCode listings. โ€ข Added a configurable hidden-model list that removes the listed models from usage, geo and retention stats. ๐—ญ๐—ฒ๐—ป โ€ข Changed Space Bunny in Go from a limited-time free model (space-bunny-free) to a paid model (space-bunny) at $0.15 input, $0.60 output and $0.03 cached per 1M tokens, with per-plan usage limits. ๐—œ๐—ป๐—ณ๐—ฟ๐—ฎ โ€ข Removed the old S3 data lake and its ingestion pipeline from the stats stack. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
21
1,548
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.24 released. TL;DR: Vercel AI Gateway now runs on the native runtime, the explore agent can use read-only shell commands, the shell permission scanner handles bash, zsh, and PowerShell more accurately, and the desktop app shows queued, pending, and running work more clearly. ๐—ง๐—จ๐—œ โ€ข Changed the open-session menu so sessions waiting for a permission or question reply appear at the top, even when they are already open in a tab. โ€ข Fixed the subagent active/inactive filter resetting when you navigate between sessions. โ€ข Fixed crossing branches in Mermaid flowcharts rendered in the terminal. โ€ข Removed the error icon from grouped exploration activity. ๐—”๐—ฝ๐—ฝ Added โ€ข Added a header indicator for running subagent sessions and a clearer running-work menu with "+N working" and "+N running" counts. โ€ข Added a "Pending" label to steer messages that have not been delivered yet, plus clearer move-to-queue and undo icons. โ€ข Added each /btw answer in its own tab, which stays open until you close it. /btw now applies the composer's selected model first. โ€ข Restored the prompt shown when a session's directory is missing, so you can pick another directory or worktree and move the session there. Fixed โ€ข Fixed staged reverts being lost when switching models. The revert is now committed after the agent switch and before the model switch. โ€ข Fixed the Working state disappearing while reads joined a read group. โ€ข Fixed spacing between errors and grouped updates in the session timeline. โ€ข Fixed side panel tab clipping and alignment, and kept the phone titlebar clear of the iOS status bar. โ€ข Fixed desktop update manifests reusing the first file's sha512 for every file. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ Added โ€ข Added native Vercel AI Gateway routing. @ai-sdk/gateway models now run on OpenCode's own runtime instead of the AI SDK package. โ€ข Added reasoning variants for GitLab Duo Claude and GPT/Codex models, and updated gitlab-ai-provider to 6.19.0. Changed โ€ข Changed sign in with ChatGPT to use a fixed model list instead of syncing with OpenAI's /models API, as a temporary workaround for OpenAI bugs. The list adds the gpt-6 luna/sol and gpt-6.1-sol models. โ€ข Renamed the legacy OpenAI OAuth login methods to "Codex browser (legacy)" and "Codex device code (legacy)". โ€ข Changed unversioned official @ai-sdk/* provider packages to install the ai-v6 dist-tag, because those packages now publish AI SDK v7 under latest. โ€ข Consolidated local model discovery for vLLM, LM Studio, and Ollama into one shared implementation. Fixed โ€ข Fixed Azure catalog models that use the completions API being sent to the Responses route. They now use chat completions. โ€ข Fixed non-text models (for example, image-only models) appearing in the catalog and being chosen as the default model. โ€ข Fixed unread Console config responses (404s and errors) staying open until garbage collection. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed the explore subagent to allow shell commands, while its prompt now requires commands to be read-only and forbids creating or changing files. โ€ข Improved the bash/POSIX shell permission scanner. It now uses bash, zsh, or POSIX rules based on your shell and is tested against real shells. โ€ข Improved PowerShell permission scanning, including abbreviated -Path/-LiteralPath parameters, -- end-of-parameters, and braced ${HOME}/${PWD} variables. โ€ข Fixed subagent results joining separate text blocks together. They are now separated by blank lines. โ€ข Fixed the instruction-file walk on Windows going past the project root when the drive letter case differs (c:\ vs C:\). ๐—Ÿ๐—Ÿ๐—  โ€ข Added Vercel AI Gateway chat, messages, and responses routes. They keep gateway response metadata and apply OpenRouter-style prompt caching: automatic for Anthropic, Qwen-specific for Qwen, none for others. โ€ข Fixed changes to reasoning effort not being sent on the Vertex Claude route. โ€ข Changed the Anthropic Messages and OpenAI Responses stream parsers to keep unknown event fields instead of dropping them. ๐— ๐—–๐—ฃ โ€ข Fixed the MCP OAuth callback page showing success before the token exchange finished. Failed exchanges now show an error page, and duplicate callbacks are rejected. ๐——๐—ฎ๐˜๐—ฎ โ€ข Added a hover ripple on the stats pattern and highlighted bar dots, and aligned the chart's dot grid with its bars. ๐—จ๐—œ โ€ข Changed bold text in Markdown to a slightly lighter weight (670). No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
24
2,057
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.23 released. TL;DR: Native Venice, Cohere, Google Interactions, and Bedrock Mantle Anthropic routes โ€ข App queue and steer behavior now matches the TUI, plus a header menu for running work โ€ข background service restarts and upgrades are more reliable โ€ข ACP gets spec-aligned permissions and compaction updates ๐—”๐—ฝ๐—ฝ Added โ€ข Added a menu in the session header that lists running subagents and shell commands. Each entry can be interrupted or killed from the menu. โ€ข Added the model variant to message metadata, shown as model (variant). โ€ข Restored Git initialization for projects without version control, using a new server endpoint that supports git and hg. Changed โ€ข Changed composer inbox, steer, queue, and revert behavior to match the TUI. You can now move pending prompts to the queue or delete them, see queued compaction, and get guidance when a revert blocks queue edits. โ€ข Moved review controls, including the sidebar toggle and Open in app, into the review and file panels. โ€ข Rebuilt the built-in terminal, review, files, browser, SSH, WSL, updater, and pairing features on a typed extension SDK with explicit lifecycle states. A disabled, failed, or restarting feature now shows as unavailable instead of breaking the window. โ€ข Moved What's New into the updater. It shows desktop highlights since the last version you saw, adds a Don't show these in the future option, and tries again on the next start if fetching the changelog fails. โ€ข Improved desktop startup by preloading stored state and extension enable state when the window opens, instead of waiting on an IPC round trip. Renamed extensions keep their enabled or disabled setting. Fixed โ€ข Fixed the Working indicator disappearing during turns that only produce reasoning. โ€ข Fixed side panel tabs being lost when a session moves to another directory. โ€ข Fixed markdown images with Windows paths not loading. โ€ข Fixed the web app's QR scanner failing to start in browsers without BarcodeDetector, such as Safari and desktop Chrome on Windows and Linux. โ€ข Fixed stale branch info in session details, duplicated update-check failure toasts, and leftover browser pane errors. ๐—ง๐—จ๐—œ โ€ข Added line ranges after file paths in Read tool rows, for example path:10-50. โ€ข Fixed the transcript blinking and remounting as older history pages load. This was most visible with Low verbosity. โ€ข Changed terminal panes to depend on whether the connected server supports persistent PTYs, instead of on the local platform. โ€ข Fixed question form highlights rendering off the raised surface. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Added a native Venice provider with streaming tools, reasoning effort and toggle variants, encrypted reasoning and Gemini thought-signature replay, and cache-write usage. It replaces the AI SDK Venice plugin. โ€ข Added a native Cohere chat provider and mapped @ai-sdk/cohere and OpenAI-compatible Cohere configs to it. โ€ข Added the Google Interactions API as a native Gemini route. It supports streamed function calls, thought signatures, multimodal input, and optional server-side continuation. โ€ข Added Anthropic Messages on Amazon Bedrock Mantle, with prompt caching. Mid-conversation effort updates are limited to Opus 5.1 and later. โ€ข Fixed configs whose top-level model uses a retired provider ID, such as azure-cognitive-services or google-vertex-anthropic. These IDs are now renamed automatically. ๐—Ÿ๐—Ÿ๐—  โ€ข Fixed placement of Anthropic mid-conversation system updates. They are held and sent right before the next assistant turn, falling back to wrapped user text when Anthropic would not accept a native system message there. โ€ข Fixed Gemini, Mistral, and Cohere so multiple system parts are sent separately instead of being joined into one. โ€ข Improved streaming performance by parsing partial tool-input JSON only when needed. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Fixed compaction ignoring the model set on the compaction agent. Summaries now use that model and its context limits. โ€ข Added support for disable-model-invocation in skill frontmatter, which hides a skill from the model's list. opencode/autoinvoke takes priority when both are set. โ€ข Improved compaction errors blocked by the provider's content filter to include the category and explanation. โ€ข Improved request preparation performance by reusing unchanged messages. ๐—–๐—Ÿ๐—œ Added โ€ข Added opencode upgrade support for the Homebrew Core opencode formula, checking versions against formulae.brew.sh. Fixed โ€ข Fixed curl-based upgrades on Windows picking up the WSL bash. Upgrades now use Git Bash, which can be overridden with OPENCODE_GIT_BASH_PATH. โ€ข Fixed managed service startup failing on temporary port conflicts. It now retries binding for up to 15 seconds. โ€ข Fixed background service startup hiding the real error behind a generic timeout. Restarts now also wait for the previous service to shut down. โ€ข Fixed reconnecting replacing a running service when only the health protocol differed. โ€ข Fixed a server restart failing when persistent terminals could not be handed off. Terminals are now best-effort and shut down cleanly instead. โ€ข Fixed console windows flashing for background processes on Windows. โ€ข Fixed pairing QR code indentation on Windows. ๐—”๐—–๐—ฃ โ€ข Changed compaction to be reported through standard ACP session updates. โ€ข Changed permission requests to follow the ACP tool-call spec. Requests answered in another client now settle, and request failures have typed errors. โ€ข Fixed turns ending as interrupted when a question cannot be shown in the client. The model now gets a message telling it to continue without an answer. โ€ข Fixed remote image links being sent as inline content instead of references, and sessions staying attached after a failed setup. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Changed requests for a missing location directory to return a typed 404 instead of a generic error. โ€ข Added a persistent-PTY capability flag to server info so clients can tell whether terminals are supported. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added custom search and footer actions with keybindings to the TUI plugin select dialog. โ€ข Fixed plugin keymap layers so they can be registered from setup, including after an await. Layers are removed when the plugin deactivates. ๐— ๐—–๐—ฃ โ€ข Added retries for transient MCP connection and listing failures: 408, 429, 5xx except 501, and network errors. Retries stop at the startup timeout. ๐—–๐—ผ๐—ฟ๐—ฒ โ€ข Fixed formatter config so it merges across config files per formatter instead of the last file replacing all earlier ones. Setting true resets to the built-ins, and false disables formatting. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
14
2,914
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.22 released. TL;DR: Desktop features now run as built-in extensions, OpenCode finds Azure deployments on its own, provider HTTP timeouts default to five minutes, and ACP adds form elicitation, extra workspace roots, and compaction markers. ๐—”๐—ฝ๐—ฝ Added โ€ข Added a Last turn changes mode to the review panel. For Git projects it shows the session's last-turn diff and keeps that choice after a reload. Changed โ€ข Moved terminal, review, file browser, browser pane, SSH, WSL, updater, usage, and session summary into built-in GUI extensions running on a new desktop extension host. โ€ข Increased the weight of bold markdown text in session messages. Fixed โ€ข Restored behavior that broke in the extension move, covering the composer, mobile session layout, WSL settings, browser pane restore, and saved review state. โ€ข Fixed the embedded browser surface drifting out of alignment during layout transitions. โ€ข Fixed sticky timeline headers getting caught in the title fade. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ Added โ€ข Added Azure deployment discovery. OpenCode lists your resource's deployments and shows them instead of the whole catalog, with limits, costs, and capabilities taken from the matching catalog models. It uses the management API with Azure CLI auth and the legacy inventory with API keys. โ€ข Added headerTimeout and chunkTimeout provider settings. Both default to 5 minutes and false disables them. A timed-out request is retried at most 3 times, so a dead provider can't hold a step for most of an hour. โ€ข Added prompt caching for DigitalOcean inference, with cache read and write usage accounting. โ€ข Enabled prompt caching for Qwen models on Alibaba chat. Fixed โ€ข Fixed context-overflow detection for Together, DeepInfra, Novita, and Z.ai rejections, so they go through overflow handling instead of failing as generic errors. โ€ข Fixed xAI invalid keys and Z.ai permission, balance, and plan rejections so they are reported as auth or quota errors, and stopped retrying Z.ai Responses model and permission rejections. โ€ข Fixed partial capabilities in provider model config: fields you leave unset now come from the base model. โ€ข Fixed content-filter failures to include the provider's category and explanation (Anthropic) instead of a bare blocked message. ๐—”๐—–๐—ฃ Added โ€ข Added additional workspace directories for ACP sessions. They are granted as external_directory permissions that persist on the server session. โ€ข Added answering question and web search provider forms through ACP form elicitation. Forms with fields that look like credentials are skipped. โ€ข Added compaction started, completed, and failed markers for ACP clients, both live and when a session is replayed. โ€ข Added following model and agent changes made to the same session from other clients. Fixed โ€ข Fixed token usage reporting to cover the whole turn, not just the last step. โ€ข Fixed native file tools to report file locations, and stopped echoing edited files back to the client. โ€ข Fixed unreadable resource links to fall back to a reference instead of failing the prompt. โ€ข Fixed available commands being sent before the session response, and invalid requests now return invalid-params errors. Changed โ€ข Changed the ACP process to exit when its backing server dies. ๐—Ÿ๐—Ÿ๐—  Fixed โ€ข Fixed connection drops in the middle of a stream being reported as decode errors. They now show as transport errors: Connection lost while reading the response. โ€ข Fixed tool history so tool calls left unanswered at the end get placeholder results, and mid-conversation system updates wait until pending tool results arrive. โ€ข Fixed Groq and Vertex Anthropic routes reusing OpenAI and Anthropic provider metadata keys. Changed โ€ข Changed Bedrock tool-result images to stay inline only for Claude and Nova. For other model families they are moved next to the tool results. โ€ข Changed capability defaults to cover future versions: per-turn effort updates for GPT-6 and later, system updates and per-turn effort for newer Claude versions, and tool streaming for GLM-4.6 and later. ๐— ๐—–๐—ฃ โ€ข Improved MCP error messages. They now include HTTP status and network error codes, the exit code and last stderr output of stdio servers, the reason a connection closed, and a pointer to reconnect or sign in from /mcps. โ€ข Fixed legacy streamable HTTP MCP sessions not being terminated when the connection closes. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added session compaction and session removal to the plugin session API. โ€ข Added parentID to session creation in plugins and the HTTP API, which creates a linked child session at the parent's location. โ€ข Fixed session updates from plugins dropping metadata. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Fixed instruction discovery picking up directories named AGENTS.md. โ€ข Fixed an AGENTS.md that was read directly also being loaded again as an automatic instruction. ๐—–๐—Ÿ๐—œ โ€ข Changed update checks to repeat every 10 minutes in long-running sessions, taking turns with /update and manual installs. โ€ข Added a lock so separate OpenCode processes can't install upgrades at the same time. ๐—ฅ๐—ฒ๐—น๐—ฒ๐—ฎ๐˜€๐—ฒ โ€ข Removed the x86_64-darwin Nix target and fixed flake evaluation on nixpkgs 26.11. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
1
30
4,944
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.21 released. TL;DR: The desktop browser lets you comment on page elements, ACP now uses the server's default model and agent and picks up catalog changes live, non-interactive runs keep going when the agent asks a question, and prompt caching works better on OpenRouter and Cloudflare AI Gateway. ๐—”๐—ฝ๐—ฝ Added โ€ข Added element comments in the desktop in-app browser. Turn on inspect mode, click an element and write a comment. The agent receives the element's role, accessible name, text, selector and browser ref. Comments come back into the composer after a revert or fork. โ€ข Added clickable session IDs in markdown. Session IDs mentioned in a transcript now open as a session tab. A toast appears if the session is missing or archived on the current server. โ€ข Added grouping of adjacent file reads into one collapsible timeline row. โ€ข Changed the open "Used" tool group header to stay pinned while you scroll through its contents. Fixed โ€ข Fixed agent-response and error system notifications firing for sessions that have no open tab. They now follow the same rule as sounds. โ€ข Fixed new-session project selection when the current directory doesn't match a known worktree path. The app now falls back to the resolved project ID. โ€ข Updated the ChatGPT usage-limit wording and links so they no longer promise a reset time. ๐—ง๐—จ๐—œ โ€ข Tightened spacing in expanded instruction groups. โ€ข Updated OpenTUI to 0.5.14. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed browser tools to be hidden by default. The agent only gets them while a desktop browser is attached to the session. โ€ข Added element targeting to the browser evaluate tool. Scripts can run against an element ref from a snapshot or from a user's browser comment. โ€ข Fixed the read tool re-adding AGENTS.md files from the project root or its parent directories, which initial instructions already include. โ€ข Changed question cancellations that include a message: the model now gets the message as tool feedback and continues, instead of the step ending. ๐—–๐—Ÿ๐—œ โ€ข Changed opencode run so a question from the agent is cancelled with an explanation and the model continues on stated assumptions. Previously the run was marked failed. V1 compatibility mode keeps the old behavior. ๐—”๐—–๐—ฃ โ€ข Changed new ACP sessions to use the server's default model and agent instead of fixing them at creation time. โ€ข Added live catalog refresh. Model, agent and command changes now push updated config options and slash commands to connected ACP clients. โ€ข Fixed model, mode and effort selection against a stale catalog. ACP now reloads the catalog and retries before rejecting. ๐—Ÿ๐—Ÿ๐—  โ€ข Added prompt-cache breakpoints for OpenRouter: automatic caching for Anthropic models and system plus conversation-tail breakpoints for Qwen. Other upstreams, such as Gemini, get no breakpoints because extra ones would add cache writes. โ€ข Fixed OpenAI Chat-compatible cache_control placement. Breakpoints now go on text content parts of assistant and tool messages instead of on the message itself. โ€ข Added context-overflow detection for Cloudflare Workers AI 413 errors and Amazon Nova on Bedrock input-length errors, so compaction and recovery can kick in. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Changed Cloudflare AI Gateway to route Claude and OpenAI models through the gateway's native Anthropic and OpenAI passthrough endpoints. This avoids request shapes the REST API rejects, such as system prompt blocks and minimal reasoning effort. โ€ข Fixed GitHub Copilot Responses dropping settings based on model-name guesses. Reasoning effort and summary, temperature, top_p and service tier are now passed through as configured, and system prompts are sent with the system role. ๐—–๐—ผ๐—ฟ๐—ฒ โ€ข Added x-opencode-session-id and x-opencode-parent-session-id headers to model requests, next to the existing session headers, so gateways and proxies can link requests to sessions. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Added an optional message to the cancel-form endpoint, so clients can tell the asker why a form wasn't answered. The change is reflected in OpenAPI and the generated clients. ๐——๐—ฎ๐˜๐—ฎ โ€ข Fixed the stats site's document background so it matches the page theme. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
1
21
1,959
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v1.18.34 released. TL;DR: macOS CLI binaries are now Developer ID signed, LLM requests carry namespaced session headers, the Go page adds Go Plus plans, and OpenCode Data gets daily model rankings. ๐—ง๐—จ๐—œ โ€ข Fixed plugin names in the /status dialog on Windows. File-based plugin paths are now split using the platform's path separator instead of always "/". ๐—ฅ๐—ฒ๐—น๐—ฒ๐—ฎ๐˜€๐—ฒ โ€ข Added Developer ID signing for the macOS CLI builds (arm64, x64, x64-baseline) with hardened runtime and entitlements. The signed zips replace the unsigned release assets. โ€ข Fixed local macOS compiles by re-signing them ad hoc. Embedding the bundle breaks the linker's signature, and macOS 27+ kills binaries with invalid pages. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Added x-opencode-session-id and x-opencode-parent-session-id headers to model requests for every provider, in both the legacy and v2 session runners. The existing affinity and session headers are still sent. ๐—–๐—ผ๐—ป๐˜€๐—ผ๐—น๐—ฒ Added โ€ข Added Go Plus ($40/month) to the Go page, with a side-by-side chart of Go and Go Plus limits per model. โ€ข Added a warning for referral-link visitors that the referral program has ended and links no longer earn credit. Changed โ€ข Changed the Go page hero, plan cards, and model limits list, and removed several older models from the list. โ€ข Changed OpenCode Black so it cannot renew: renewals made in the billing portal are automatically set to cancel at period end, and the workspace billing page no longer offers "Manage Subscription". Fixed โ€ข Fixed Go page layout and the limits chart on mobile screens. ๐——๐—ฎ๐˜๐—ฎ โ€ข Added a daily view to model rankings next to the weekly one. Rank changes are hidden in the daily view so partial days don't show misleading movement. โ€ข Fixed usage attribution by resolving model labs from the model catalog. Duplicate "unknown" rows are dropped, and per-model country data falls back to them when needed. โ€ข Fixed chart tooltips so they stay readable. ๐—ญ๐—ฒ๐—ป โ€ข Updated the Zen docs with GPT 6.1 Sol endpoint and pricing (corrected cached-input rates) and the Jev API data-retention policy. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
8
1,586
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.20 released. TL;DR: ChatGPT plan token sharing for OpenAI, auth export/import plus an opt-out for the background service in the CLI, non-interactive runs that keep going after a permission is rejected, and provider errors that show the provider's actual explanation. ๐—”๐—ฝ๐—ฝ โ€ข Added a one-time welcome dialog after connecting OpenAI through ChatGPT token sharing, with a link to ChatGPT usage settings. โ€ข Added a ChatGPT usage-limit dialog that appears when a session step hits the plan limit. It shows at most once every 24 hours. โ€ข Added a "Using ChatGPT plan" footer with a Manage usage link to the model selector when OpenAI is connected via OAuth. โ€ข Changed the session "moved to" location notice to render as a timeline divider, so it no longer gets folded into grouped context rows. โ€ข Improved diff readability with calmer word-level highlights and less prominent collapsed-row separators in dark mode. ๐—ง๐—จ๐—œ โ€ข Added a recently closed tabs list to the new session menu. Reopening a tab removes only that entry, and the closed-tab history grows from 10 to 25. โ€ข Added "Sign in required" markers in the integrations dialog. Selecting one opens the SSO URL or restarts sign-in. โ€ข Changed failed activity groups to keep the normal expand/collapse icon instead of showing a โœ—. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ Added โ€ข Added a separate "Sign in with ChatGPT" OAuth method for OpenAI that uses ChatGPT plan token sharing. It uses PKCE and verifies the ID token, and fails clearly if the user didn't grant token sharing. โ€ข Added per-account model discovery for ChatGPT token sharing. The model list refreshes every 15 minutes and is cached, with a fallback list of GPT-5.5, GPT-5.6 and GPT-6 Astra models. โ€ข Added OpenCode Console connection status: expired SSO or revoked sessions now mark the connection as needing sign-in, and generic 401/403 inference errors are replaced with steps to fix it. Changed โ€ข Changed ChatGPT-plan models to show zero cost, use summary compaction, and hide pro reasoning modes that token sharing doesn't support. โ€ข Changed token-sharing failures (usage limit, not eligible, unsupported capability, invalid user) to stop retrying and show clear messages. โ€ข Changed Cloudflare Workers AI to turn thinking off through chat-template flags, because most models ignore reasoning_effort "none". ๐—–๐—Ÿ๐—œ โ€ข Added opencode auth export, which prints stored credentials as JSON for one integration or all of them and warns when the output goes to a terminal. โ€ข Added opencode auth import, which reads from a file or stdin, skips credentials that already exist, and keeps the current account selections on the destination. โ€ข Added opencode service set disabled true, which stops the shared background service and makes CLI commands start a private server instead. Pairing is blocked while it is disabled. โ€ข Changed opencode run: when a permission can't be approved, it is rejected with feedback so the model continues without that action, instead of stopping the run and exiting with code 1. โ€ข Fixed opencode run so permission asks and questions from subagent child sessions are answered too, while sessions belonging to other clients on a shared server are left alone. ๐—Ÿ๐—Ÿ๐—  โ€ข Added explicit prompt caching on Alibaba, Cloudflare AI Gateway, Meta, MiniMax, Moonshot and Z.ai coding message routes. โ€ข Changed Bedrock Claude 5.1+ to drop mismatched thinking blocks by default, so sessions keep working after the system prompt changes. โ€ข Improved provider error messages: common error body formats are now recognized, including AWS and RFC 9457 problem details. Otherwise the raw body is shown, trimmed, and HTML error pages are skipped. โ€ข Fixed Bedrock redacted reasoning so it is finished at the end of each block. โ€ข Fixed Mistral thinking metadata being streamed before the block was complete. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed permission rejections that include feedback to apply to the whole batch of parallel asks, so the model gets the feedback and continues instead of ending the step. โ€ข Added the provider's raw response body to session errors, so clients can show the full failure details. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Added endpoints to list and create credentials, with an activate flag and a conflict error when the ID already exists. Credentials created with activate set to false don't replace the current selection. ๐—ฆ๐˜๐—ผ๐—ฟ๐—ฎ๐—ด๐—ฒ โ€ข Fixed database file permissions: the SQLite file and its -wal and -shm files are now owner-only (0600) on POSIX systems. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added a plugin API for reporting or clearing a connection's status, such as needing sign-in, with an optional sign-in URL shown in the TUI and App. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
3
1
27
1,941
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.19 released. TL;DR: Compaction is rebuilt to shrink and retry instead of failing, output-token limits now fit the context window, prompt-cache reuse improves across sessions and subagents, and the TUI diff viewer gains a Last turn view. ๐—ง๐—จ๐—œ Added โ€ข Added a Last turn source to /diff that shows the files the session changed in its latest turn and refreshes when each turn finishes. You can make it the default with diffs.source: "turn". Outside a session it falls back to branch. Fixed โ€ข Fixed --prompt auto-submit firing before the agent, model and catalog were ready. โ€ข Fixed duplicate entries in the open-project picker when older project records point to the same checkout. โ€ข Fixed shell tool rows so a command still running in the background no longer looks like an interrupted one. โ€ข Fixed the TUI jumping to model selection after connecting an MCP integration. โ€ข Fixed long /btw questions so they collapse to one truncated line. โ€ข Fixed the OpenCode web search provider label capitalization. ๐—”๐—ด๐—ฒ๐—ป๐˜ Changed โ€ข Rebuilt session compaction. When a provider says a request is too long, it now retries at 70%, 50% and then 35% of the rejected size. If the request is still too big, it sends history as trimmed text, dropping media first and then the oldest exchanges. Native OpenAI compaction retries smaller instead of switching to a summary. โ€ข Changed the default compaction buffer from a fixed 20k tokens to 10% of the model's limit, with a 16k minimum on larger windows. With auto compaction off, only manual /compact runs, including after a too-long rejection. โ€ข Changed the default max output tokens for main and compaction requests to fit the room left in the context window. It is capped at 256k, uses 32k when the model's limit is unknown, and is limited to 32k for summaries. โ€ข Reordered system instructions from most to least shared, putting date and environment last, and removed the session ID from the environment block. This keeps the reused prompt-cache prefix the same across sessions. Added โ€ข Added AGENT=1, OPENCODE=1, AI_AGENT=opencode and OPENCODE_SESSION_ID to the environment of shell tool commands, so scripts can tell they are running under an agent. โ€ข Added a warning log when a provider's too-long rejection triggers compaction. ๐—–๐—Ÿ๐—œ Added โ€ข Added support for passing an unused ID to --session in the TUI and opencode run. OpenCode now creates a session with that ID instead of failing with "Session not found". โ€ข Added a grouped, searchable picker to opencode auth login, with MCP, Popular and Services groups and markers for connected integrations. โ€ข Changed opencode mcp auth so the server name is optional and an interactive picker lists OAuth-capable servers. It flags servers with expired credentials, and re-authenticating replaces the old credential instead of adding another. Fixed โ€ข Fixed Ctrl+C during auth login so it cancels the pending OAuth or command attempt instead of exiting and leaving it running. โ€ข Fixed opencode run showing a misleading interruption error after a declined permission or dismissed question. It now exits with code 1. โ€ข Changed command-based auth to print the command's output line by line instead of inside a spinner. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ Changed โ€ข Changed session and affinity headers, including the ChatGPT session-id and GitHub Copilot interaction ID, so child sessions send their parent's ID and forks send the source session's ID. This lets subagents share the parent's provider cache. โ€ข Changed OpenAI context and compaction requests to omit the output-token limit, because the ChatGPT backend rejects it and OpenAI counts it against rate limits. โ€ข Changed xAI Responses variants to request reasoning summaries and encrypted reasoning. โ€ข Changed Anthropic-compatible providers to use their own route so they get Anthropic-style cache hints. xAI routes also get distinct IDs. Fixed โ€ข Fixed Gemini parallel tool calls over its OpenAI-compatible endpoint by keeping and replaying thought signatures. โ€ข Fixed invalid Google API keys being retried; they are now reported as authentication errors. โ€ข Fixed Cloudflare AI Gateway and Workers AI so configured account and gateway IDs take priority, with CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_GATEWAY_ID used only as fallbacks. โ€ข Fixed one-off generation calls so they carry session attribution, which gateways require. ๐—Ÿ๐—Ÿ๐—  Added โ€ข Added ElevenLabs Scribe transcription with word timestamps and diarized speaker turns. โ€ข Added retries with backoff and jitter for transient failures when checking queued media jobs. Starting and cancelling a job are never retried. โ€ข Added per-answer confidence to evaluation results. Fixed โ€ข Fixed aborted calls so they reject with signal.reason, like fetch, instead of ending quietly. โ€ข Fixed failed video jobs so they report the provider's error type, such as authentication, rate limit or invalid request, instead of a generic internal error. โ€ข Fixed cut-off or blocked Gemini speech and transcription results so they are reported instead of dropped. โ€ข Fixed OpenAI and Deepgram speech results reporting a different audio format than the one actually requested. ๐—–๐—ผ๐—ฟ๐—ฒ โ€ข Fixed repository hosts containing relative path segments so they are rejected before being used as cache directories. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Added Go Plus plan documentation and synced the V2 Go model list. โ€ข Listed LongCat 2.5 Preview Free among the free Console models and added the Jev data-retention policy to the Zen docs. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
4
1
40
4,365
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v1.18.33 released. TL;DR: GPT-6 Sol and Luna now work with Codex sign-in, Cloudflare AI Gateway respects timeout settings, browser launches only accept http(s) URLs, and debug config output hides secrets. ๐—ง๐—จ๐—œ โ€ข Changed clickable links, Open docs, and retry-dialog actions to go through a shared browser opener that refuses anything other than http and https URLs. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ Added โ€ข Added gpt-6-sol and gpt-6-luna to the models allowed when signing in with ChatGPT/Codex OAuth. Fixed โ€ข Fixed Cloudflare AI Gateway models ignoring timeout, headerTimeout, and chunkTimeout (SSE idle). Gateway and Workers AI requests now go through the same timeout-aware fetch as other providers. โ€ข Changed Gemini thinking defaults to use a list of older models instead of checking for gemini-3. Newer Gemini models now get thinkingLevel high by default, and OpenRouter Gemini models get high reasoning effort, while Gemini 1.x and 2.x keep the older behavior. โ€ข Fixed Gemma 4 reasoning variants so they only offer minimal (thinking off) and high (thinking on). โ€ข Tightened Gemini 2.5 model detection so thinking budgets and variants no longer match any ID that merely contains 2.5. โ€ข Updated gitlab-ai-provider to 6.18.0. ๐— ๐—–๐—ฃ โ€ข Fixed MCP OAuth browser launches on Windows and WSL, where the launcher can exit before OpenCode checks it. A failed launch is now reported instead of silently hanging. โ€ข Added a check that rejects MCP authorization URLs using any scheme other than http or https, with an error naming the server. ๐—–๐—Ÿ๐—œ โ€ข Fixed opencode debug config printing credentials. API keys, tokens, secrets, passwords, header values, and URLs carrying credentials or secret query parameters are now shown as ***. The config used at runtime is unchanged. โ€ข Changed opencode web, account login, and the DigitalOcean and Snowflake Cortex OAuth flows to open the browser only for http and https URLs. ๐—–๐—ผ๐—ป๐˜€๐—ผ๐—น๐—ฒ Changed โ€ข Changed legacy Console sign-in and workspace access to require a Black subscription. Other accounts are redirected to the new Console, and sign-in no longer creates new accounts or default workspaces. โ€ข Moved Go subscriptions to the new Console. Legacy Go checkout now fails, and the Go workspace page redirects to /console/go. Added โ€ข Added GPT 6 Luna and the limited-time free models Space Bunny Free and LongCat 2.5 Preview Free to Go pages. The limits graph shows unlimited models as โˆž. โ€ข Made DeepSeek V4.1 Flash's higher Go allowance permanent and removed the limited-time 4x promo. ๐——๐—ฎ๐˜๐—ฎ โ€ข Fixed the model comparison radar showing missing benchmarks as zero. Reasoning and tool-use axes now fall back to capability support (50/100 if supported, 0 if not), show fallbacks as hollow points, and explain each score in hover tooltips. โ€ข Fixed Hy4 preview traffic being counted under an unknown provider instead of Tencent. โ€ข Added Muse Spark Contributor pricing entries without letting them skew benchmark normalization, and grouped Space Bunny under stealth-model stats. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Documented Claude Opus 5.5, GPT 6 Sol, GPT 6 Luna, and Qwen3.8 Max in the Zen docs, and updated the Go model pages. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
2
32
4,377
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.18 released. TL;DR: A small hardening release: TUI, CLI, and MCP OAuth only open http/https URLs now, and sessions with older compaction checkpoints that contain images or files load again. ๐—ง๐—จ๐—œ โ€ข Changed clickable links, OAuth authorization prompts, and external-link form fields to open only http and https URLs. Other schemes such as file:, javascript:, and ms-msdt:, plus UNC paths, are refused. Where a prompt has an error path, it tells you to copy the URL and continue manually. โ€ข Kept "Open in system file manager" for the working directory on a separate path-opening route, so it still works under the new URL rules. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Fixed loading of compaction checkpoints written before 2.0.15 that contain image or file attachments. Old checkpoints stored media in a different format, which now fails to decode. They are upgraded on read, so older sessions can be restored and continued. ๐— ๐—–๐—ฃ โ€ข Changed MCP OAuth to reject authorization URLs that are not http or https. You get an error naming the server instead of a handoff to an arbitrary system URL handler. ๐—–๐—Ÿ๐—œ โ€ข Changed browser opening in CLI prompts to use the same http/https-only check as the TUI and core, so all three behave the same way. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
1
28
2,483
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.17 released. TL;DR: Pairing now uses one-time connect links instead of shared passwords, the TUI gets transcript verbosity levels and queued-prompt undo, Console can push hosted MCP servers, and thinking budgets now fit inside each model's output limit across more providers. ๐—ง๐—จ๐—œ Added โ€ข Added a session.verbosity setting with low, medium, and high levels, plus a cycle keybind. Low collapses each run of tools and thoughts into a summary like "3 commands, 1 edit, 2 reads". High opens exploration and instruction groups. โ€ข Added undo for queued prompts (ctrl+u), which pulls a queued prompt back into the input and keeps its file, agent, and paste references. Fixed โ€ข Fixed large added-file diffs by virtualizing them so they no longer mount every line at once. โ€ข Fixed crashes when the storage file watcher throws, for example ENOSPC from running out of inotify watches, both at startup and later. โ€ข Fixed missing-directory recovery so it opens the workspace picker and actually moves the session, including into a new worktree. โ€ข Changed failed activity groups to show a plain โœ— marker. ๐—”๐—ฝ๐—ฝ Added โ€ข Added provider account switching in Settings, so you can add, switch between, and remove multiple credentials for one provider. โ€ข Added undo for queued prompts in the composer's queue panel. โ€ข Made the bottom navigation setting available in production mobile builds. Changed โ€ข Replaced password-based server pairing with one-time links: scanned or opened links are exchanged for a session token. โ€ข Grouped nested subagent tabs in the titlebar and made the session header show the full session path. Fixed โ€ข Fixed the desktop browser pane disappearing when floating content was drawn over it. โ€ข Fixed inconsistent project icons and names when several projects share an ID or a session sits in a sandbox. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Added pairing endpoints that issue random single-use codes that expire after 5 minutes. Redeeming one gives a browser an HttpOnly session cookie scoped per port, or gives an API client a token that works in place of the password. โ€ข Made pairing sessions last 30 days and signed them with a key derived from the server password, so rotating the password revokes every session. ๐—–๐—Ÿ๐—œ โ€ข Changed opencode pair to print one-time connect links and a QR code instead of printing the username and password, and to show the link expiry. โ€ข Added SSH port-forwarding hints to opencode pair when the service only listens on localhost. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Changed GitHub Copilot session titles to use Copilot's free gpt-4o-mini utility model when it is available. If that fails, the normal title path runs instead. โ€ข Added a default of low text verbosity for OpenAI GPT-5.x and GPT-6 models, whether reached directly or through Azure, Bedrock Mantle, or AI gateways, unless the model or variant sets its own value. โ€ข Capped Alibaba thinking-budget variants at 64k. โ€ข Fixed Grok reasoning effort not being sent on Bedrock Converse. โ€ข Fixed provider error messages being lost when an AI SDK stream error arrives as a plain object. ๐— ๐—–๐—ฃ โ€ข Added MCP servers hosted by Console, delivered through the OpenCode Console config. Only remote servers are accepted, a server you configured under the same name wins, and servers can opt in to reusing your Console credential. They reload when your credential changes. ๐—Ÿ๐—Ÿ๐—  Added โ€ข Added prompt-cache preservation across reasoning-effort switches on GPT-6 Sol and Luna. Pro mode is excluded. โ€ข Improved the media client API with promise-based file helpers, a single client layer, and a shared request shape for image, speech, transcription, and video. Fixed โ€ข Fixed thinking budgets on Anthropic, Gemini, Alibaba, OpenRouter, and Claude on Bedrock Converse so they fit under the requested output limit instead of being rejected. โ€ข Fixed Nova 2 at high reasoning effort by no longer sending maxTokens. โ€ข Fixed tool schema roots so they are always declared as objects, and applied the schema rules once per request. โ€ข Fixed several media bugs: Gemini TTS WAV output, AssemblyAI speaker labels, OpenAI transcription stream parsing, fal Kontext aspect-ratio sizing, Runway cancel deleting finished tasks, and Black Forest Labs cost reporting. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed truncated tool and shell output to say which line range is shown out of the total, and restored the "(no output)" placeholder for shell commands. โ€ข Added reporting for shell commands killed by a signal ("Killed by SIGTERM") instead of treating them as plain exits. โ€ข Raised the tool name limit from 64 to 128 characters, so long MCP and plugin tool names register. โ€ข Fixed streamed text and reasoning deltas so they are published before the next block starts, keeping transcript order the same as the model's. โ€ข Expanded the code-mode interpreter with WeakMap, WeakSet, this and arguments bindings, call/apply/bind, and more spec-accurate conversions and error subclassing. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added a TUI plugin API to read the selected model and to list or set its variant. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
3
22
3,058
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.16 released. TL;DR: MCP resources are now available as Code Mode tools, the App can sign in to Console and Go with a device code, GitLab gets OAuth and workflow model discovery back, and @opencode/ai gains video, speech, transcription and queued image generation. ๐—”๐—ฝ๐—ฝ Added โ€ข Added sign-in to OpenCode Console and Go from the provider connect dialog using a device code, with copy-link and reopen-browser options. Provider and model settings were redesigned to match. โ€ข Added worktree and branch details to the desktop home session list. Hold Alt to see them. โ€ข Added a project options menu in settings with edit, rename, reveal in file manager, clear notifications and close. Changed โ€ข Changed the session summary to open as an overlay, so the timeline no longer slides or shifts when it opens. โ€ข Moved the tab layout option from Experimental into General settings and removed the other experimental toggles. โ€ข Changed desktop update checks to send an identifying User-Agent. Fixed โ€ข Fixed settings pages so a refresh keeps you on the same settings page. โ€ข Fixed timeline scroll resetting when switching models. โ€ข Fixed the composer losing focus after you attach files. โ€ข Fixed file previews showing stale contents. Files are now reread every time a preview opens. โ€ข Fixed MCP rows that need sign-in: clicking the row now starts sign-in instead of only toggling the server. โ€ข Fixed attachment remove buttons being hidden on touch devices. ๐—ง๐—จ๐—œ โ€ข Improved long-transcript mounting: the loading budget now counts rendered entries, so a collapsed group costs one entry. โ€ข Added memory of expanded groups and exact scroll positions for each session tab. โ€ข Fixed history paging splitting a tool group at a page boundary. Loading continues until the oldest group is complete. โ€ข Fixed failed execute tool calls so clicking them opens the full details dialog. โ€ข Removed a stale MCP failure error message. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed the read tool to cap limit at 2000 lines instead of rejecting larger values, and to cap very long lines on full-file reads too. โ€ข Improved read errors: an out-of-range offset now reports how many lines the file has. โ€ข Fixed read path recovery for filenames that differ only by curly quotes or Unicode normalization, such as accented characters. โ€ข Fixed subagent calls failing when the model sends an empty model or sessionID. โ€ข Fixed OpenAI system prompt selection: the Astra prompt now goes to Astra models instead of every model named gpt-6. โ€ข Improved the Code Mode interpreter: added Object.freeze, seal, create, getPrototypeOf, structuredClone and Uint8Array callback methods; == now follows spec loose equality. ๐— ๐—–๐—ฃ โ€ข Added list_mcp_resources and read_mcp_resource tools, available in Code Mode, with per-server permission checks. Images and PDFs in resources are passed to the model directly. โ€ข Added Code Mode defaults for known servers: Code Mode is turned off for executor.sh, and PostHog is asked for plain tools instead of its own server-side Code Mode. Servers with codemode set in config are left alone. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Added GitLab OAuth login with PKCE and restored duo-workflow-* model discovery for logins stored with /connect. โ€ข Fixed GitHub Copilot routing for Grok, Gemini and MAI Code models, which now go through the Responses API. โ€ข Changed requests to OpenCode Console to include a User-Agent identifying the client. ๐—Ÿ๐—Ÿ๐—  Added โ€ข Added video generation to @opencode/ai via queued routes for Google, fal, Runway and xAI. โ€ข Added speech generation with streaming for OpenAI, ElevenLabs, Cartesia, Deepgram and Google. โ€ข Added transcription (inline, streamed and queued) for OpenAI, Deepgram, AssemblyAI and Google, with speaker labels and word timestamps. โ€ข Added queued image routes, OpenAI partial-image streaming, and Black Forest Labs, fal, Replicate and Stability as image providers. Fixed โ€ข Fixed Gemini tool schemas, which are now sent as parametersJsonSchema. Gemini and Kimi schema cleanup now also applies by model name behind gateways and OpenAI-compatible endpoints, and can be turned off with a none option. โ€ข Fixed Moonshot tool schemas rejecting enums without a type. โ€ข Fixed Vertex streams breaking on keepalives sent as SSE data. โ€ข Fixed PDFs on OpenAI Chat routes, which are now sent as inline file parts instead of being rejected. โ€ข Fixed long-running reasoning turns timing out on WebSocket transport: the idle timeout went from 5 to 30 minutes, and the provider chunkTimeout setting is now respected. ๐—ฆ๐˜๐—ผ๐—ฟ๐—ฎ๐—ด๐—ฒ โ€ข Added a note when migrating V1 sessions that tells the model about renamed or removed tools and changed arguments (bash to shell, task to subagent, filePath to path), so it stops calling the old versions. ๐—–๐—Ÿ๐—œ โ€ข Fixed debug config output leaking secrets. API keys, tokens, headers and credentialed URLs are now redacted. ๐—ฆ๐——๐—ž โ€ข Improved client error messages to include the server's error detail. ๐—จ๐—œ โ€ข Added site icons to external Markdown links (loaded through Google's favicon service) and a GitHub mark on GitHub links. โ€ข Completed V2 translations across all supported languages. โ€ข Fixed desktop theme background colors, light-mode contrast and color-name typos. ๐——๐—ฎ๐˜๐—ฎ โ€ข Fixed stats so Hy4 preview traffic counts toward Tencent instead of an unknown provider. Bundle +1.8 MB because mostly CLI/TUI JS +2.1 MB and Bundle metadata +1.9 MB Compare: github.com/anomalyco/opencodโ€ฆ
5
1
33
3,066
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.15 released. TL;DR: Windows upgrades and uninstalls no longer get blocked by the running binary, API errors now show the server's real message in the TUI, CLI and SDK, opencode pair prints a direct connect link, and projects are sorted by recent activity. ๐—ง๐—จ๐—œ Added โ€ข Added support for any hue name in custom themes. Only accent, interactive and neutral are required now, and missing hue references fail with a clear validation error. โ€ข Changed the embedded terminal's ANSI palette to follow the active theme and light/dark mode. Blue and magenta come from the closest theme hue, and bright colors are derived from the normal ones. Fixed โ€ข Fixed toasts and auth/plugin/migration dialogs showing "An unknown error has occurred". They now show the error message returned by the server. โ€ข Fixed transcript copy and export so they fetch the full session from the server instead of only the messages loaded in the view. โ€ข Fixed the per-turn token summary adding up every step. It now shows the latest step's new, cached and total tokens, which matches the current context size. โ€ข Fixed the Open dialog showing duplicate entries for sandboxes and sessions. It now lists one canonical entry per project, in recent-activity order. ๐—”๐—ฝ๐—ฝ โ€ข Fixed the Console sign-in row disappearing from Providers when only a Zen API key is stored, including keys imported from a v1 auth.json. It now stays until you sign in with OAuth. โ€ข Changed the pairing QR scanner to accept full /connect URLs as well as raw pairing codes. โ€ข Fixed the side-panel divider staying visible after the panel closes. ๐—–๐—Ÿ๐—œ โ€ข Changed opencode pair to print a direct /connect link and encode that link in the QR code. Credentials stay in the URL fragment, so scanning opens the server directly. โ€ข Fixed opencode upgrade and uninstall on Windows for package-manager and curl installs. A running service or upgrade no longer locks the executable, and uninstall retries folders still held by a service that is shutting down. โ€ข Fixed opencode run showing a generic error instead of the server's error message. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Changed shell tool output to drop "exited with code 0" and "(no output)" filler. Truncated output now ends with a short note saying where the full log was saved. โ€ข Improved the code-mode JS interpreter: added tagged templates and String.raw, match/search/split now accept any pattern value, for...in accepts any assignment target, and duplicate non-strict parameters bind to the last one as in JavaScript. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Added session metadata updates via PATCH /api/session/:id. Each update is recorded as a durable session.metadata.updated event, and forks and child sessions inherit the current metadata. โ€ข Added a time.active field to projects. Project lists are now sorted by it instead of by last metadata edit. ๐—ฆ๐——๐—ž โ€ข Changed the promise client to throw documented API errors as real Error objects with a proper message. The response fields stay on the error, and the error tag becomes its name. โ€ข Fixed the promise client and PTY websocket URLs dropping the path prefix of the base URL, so servers hosted under a subpath now work. ๐—–๐—ผ๐—ฟ๐—ฒ โ€ข Added project activity tracking. Session activity marks a project as active at most once a minute, and a database migration adds the column used to sort projects. ๐—Ÿ๐—Ÿ๐—  โ€ข Fixed streams aborting when OpenAI-compatible proxies send a bare data: null SSE frame. These frames are now ignored. โ€ข Fixed AI SDK providers that overlap, repeat or skip text/reasoning start and end markers. Output is normalized so the session always has one open text part and one open reasoning part at a time. โ€ข Added a shared media model for image inputs and image generation across the OpenAI, Google, xAI, Z.ai and Meta protocols. Remote media no longer counts toward the inline image size limit. โ€ข Added experimental evaluation support for Vercel AI Gateway and OpenRouter, with checks that answers match the questions asked. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Fixed Kimi thinking in multi-turn chats: the stream-only index Kimi rejects is removed when history is sent back, reasoning_content is always included, and the thinking summary is no longer shown twice. โ€ข Updated gitlab-ai-provider to 6.16.0. ๐—”๐—–๐—ฃ โ€ข Added forwarding of provider retry status (attempt, next retry time, error) to ACP clients. The status clears when the next step starts and is included in the response if a prompt is interrupted mid-retry. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Fixed installing git-hosted plugins from a subdirectory of a branch. ๐— ๐—–๐—ฃ โ€ข Improved logs for MCP OAuth and credential failures. They now include the error message along with the error type and code. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
4
24
2,917
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.14 released. TL;DR: A small fix release: the TUI open dialog stops listing worktrees as separate projects, and desktop IPC calls with optional fields no longer fail. ๐—ง๐—จ๐—œ โ€ข Fixed the open dialog listing session worktree directories as separate projects. Sessions that belong to a known project now show up under that project, and only sessions without a project get their own directory entry. ๐—”๐—ฝ๐—ฝ โ€ข Fixed desktop renderer-to-main RPC calls failing when optional fields were left undefined. The main process decodes payloads as JSON, so undefined keys are now removed before sending, the same way JSON.stringify drops them. Binary data is passed through unchanged. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Added Console API reference docs for inference, BYOK, usage, and budgets. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Updated the bundled models.dev snapshot, so the offline model catalog is current. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
2
7
1,353
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.13 released. TL;DR: OpenCode Console organization policies are now enforced, desktop gets local device pairing and a /btw side-question panel, OpenCode Go and Console sign-in happens in the browser, and the Code Mode interpreter behaves more like real JavaScript. ๐—”๐—ฝ๐—ฝ Added โ€ข Added local device pairing on desktop: a new Pairing settings page and a Pair device command show a QR code and a copyable /connect link, so another device on the same network can connect to this machine's server. โ€ข Added a Keep screen active setting that stops the display from sleeping while OpenCode is running. โ€ข Added /btw on desktop: it answers a quick side question in its own panel tab, with copy and retry, and the answer is never added to the conversation. โ€ข Added browser sign-in for OpenCode Go and OpenCode Console: the dialog opens the Console, shows a confirmation code, and keeps a small link for connecting with an API key or service account instead. Changed โ€ข Changed provider settings to tag OAuth-connected providers as Account, and to connect or disconnect Console-managed providers through the Console integration. โ€ข Changed OAuth connect flows to open the browser automatically, show a clear message when authorization expires, offer Try again, and cancel unfinished attempts when the dialog closes. โ€ข Changed new provider connections to show every non-deprecated model they unlock in the model picker. โ€ข Updated Electron to 44.4.3. ๐—ง๐—จ๐—œ Added โ€ข Added tabs.mode with auto, on, and off. The default, auto, turns session tabs off inside Herdr. The old tabs.enabled key still works and is converted to mode. โ€ข Restored the Getting started card in the sidebar. It appears when no provider is connected, links to /connect, and can be dismissed. โ€ข Added /q as an exit alias in Mini, alongside /exit and /quit. Changed โ€ข Changed /clear from an alias of /new into its own command, which closes the active session tab and returns to home. โ€ข Changed the /btw dialog to fill up to 60% of the terminal height, scroll with j/k, and page by the visible height. โ€ข Changed the MCP sidebar section to remember whether it is collapsed or expanded. ๐—–๐—ผ๐—ฟ๐—ฒ โ€ข Added enforcement of organization policies from a connected OpenCode Console workspace. These policies run after all local ones, so they have the final say on provider.use and permission rules, and denials name the organization. โ€ข Changed policy behavior so the last known organization policy stays in effect when the Console is unreachable, while switching workspaces or disconnecting replaces or clears it. ๐—”๐—ด๐—ฒ๐—ป๐˜ Added โ€ข Added Iterator helpers, Iterator.from, Promise.withResolvers, and Promise.try to the Code Mode interpreter. โ€ข Added the closest matching tool name to unknown-tool errors in Code Mode, and let search accept namespaces that start with tools. Fixed โ€ข Fixed built-in functions in Code Mode to convert arguments the way JavaScript does, instead of rejecting anything that is not already a number or string. โ€ข Fixed several Code Mode generator and collection bugs: generator arguments are bound when the generator is called, Map/Set forEach sees live changes, and repeated function declarations and delete work correctly. โ€ข Changed the Code Mode instructions to say plainly that catalog tools and search only work inside execute, and that search is synchronous. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Fixed session HTTP request hooks so they also run for providers served through the AI SDK route, not only native routes. โ€ข Changed plugin config so repository settings cannot disable the Console plugin or the policy plugin. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Fixed Google Vertex tool calling by keeping function call IDs in the conversation history instead of removing them. โ€ข Changed subagent sessions to reuse their parent session's prompt cache key, which improves cache hits across child sessions. ๐—Ÿ๐—Ÿ๐—  โ€ข Added an experimental evaluation API to @opencode/ai. It answers typed choice, score, and yes/no questions about a piece of text, and works with TypeSafeAI and OpenCode Zen. ๐—–๐—Ÿ๐—œ โ€ข Improved opencode upgrade errors: failures now show which step failed, the last lines of the installer's error output, the command that ran, and what to try next. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ โ€ข Changed the built-in web server to serve the web UI before API authentication, so pairing links to /connect can load, while /api and /openapi.json still require auth. โ€ข Added a method field (key or oauth) to integration credentials in the API. ๐— ๐—–๐—ฃ โ€ข Fixed MCP OAuth login so it no longer forces a consent screen when offline_access is requested. ๐—–๐—ผ๐—ป๐˜€๐—ผ๐—น๐—ฒ โ€ข Removed the $5 first-month OpenCode Go promotion. Go is now $10/month in every language, and checkout no longer applies the 50% first-month coupon. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Added a Policies guide that covers statement matching, precedence, permission rules, and Console-delivered organization policy. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
2
12
945
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.12 released. TL;DR: Files the agent references now open as rich artifact tabs in the App, the agent gets a browser.preview tool, Anthropic thinking-budget variants are capped at 32k again, and plugin tools can now be cancelled. ๐—”๐—ฝ๐—ฝ Added โ€ข Added rich artifact tabs. Local links and inline file paths in the timeline now open in the side panel, including path:line citations and files outside the workspace. A tab only opens after the file is confirmed to exist. โ€ข Added previews for images, SVG, audio, video, PDF, Markdown, Mermaid, CSV/TSV tables and fonts, with a Preview/Source toggle. Other files show highlighted source. Tables show the first 1,000 rows, and media over 25 MB shows a placeholder instead of loading. โ€ข Added a browser.preview tool to the desktop browser plugin. The agent can use it to show a file it created in the Review pane instead of pasting or describing it. โ€ข Added the option to open HTML artifacts in the desktop browser pane as file:// pages. This only works on the built-in local sidecar, and both page loads and subresource requests outside the session workspace are blocked. Fixed โ€ข Fixed browser focus requests from background sessions. The Review pane and the matching browser tab are now already selected when you switch back to that session. โ€ข Fixed the Review pane loading forever in projects without VCS. It now shows the empty state. โ€ข Restored spacing in the server status settings view. ๐—ง๐—จ๐—œ โ€ข Added a Copy session ID action to the session tab right-click menu, with a toast confirming the copy. ๐—”๐—ด๐—ฒ๐—ป๐˜ Added โ€ข Added toLocaleString, Error.isError and Map.getOrInsert to the code-mode sandbox. Changed โ€ข Improved code-mode tool search so whole-word path matches rank above substring matches (for example, zones matches get_zones ahead of timezones). Fixed โ€ข Fixed code-mode error locations so line and column point at the code the model submitted, not the internal wrapper. โ€ข Improved "is not a function" errors in code mode to name the full call chain, like native JS engines do. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Fixed Anthropic thinking-budget variants so high and max stay under Anthropic's 32k output limit (high is 16,000 and max is 31,999 tokens), instead of growing with the model's advertised output limit. This applies to Anthropic, Claude on Bedrock (Converse and AI SDK paths) and Anthropic models on SAP AI Core. โ€ข Updated the bundled models.dev model catalog snapshot. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Fixed cancellation for Promise-based plugin tools. They now receive an AbortSignal in their tool context, and cancelling a tool call aborts the running Promise execution and its progress updates. ๐—–๐—Ÿ๐—œ โ€ข Fixed fatal startup errors being printed to stdout. They now go to stderr, so the desktop app and service startup can show why the server failed to start. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
1
6
646
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.11 released. TL;DR: The desktop app starts faster, TUI toasts can now be tied to a session, the OpenAI Responses WebSocket transport is more reliable, and the CLI supports Vite+ installs. ๐—”๐—ฝ๐—ฝ Added โ€ข Added empty and "URL can't be reached" states to the in-app browser panel. Failed loads, including unreachable targets behind the server proxy, now show a clear error instead of a blank or stale page. Changed โ€ข Improved desktop startup: the renderer boots alongside the main bundle, its first assets are served before the main bundle runs, and its initial modules ship as one chunk. โ€ข Improved first-window time by moving startup work the first window doesn't need off the critical path. โ€ข Changed desktop IPC so the renderer no longer loads the Effect runtime to talk to the main process. โ€ข Changed windows to receive their saved stores before the first render, so saved state no longer loads after the window paints. โ€ข Changed the browser address bar to select the URL on focus, restore the current URL after a blocked navigation, and disable reload when there is no page. Fixed โ€ข Fixed tab interactions on mobile: touch dragging works again with a larger activation distance, and tab context menus no longer block the page. โ€ข Fixed vertical tabs changing sessions at the end of a drag, and matched the hover and pressed styles of the vertical Home and New Session buttons. โ€ข Fixed the conversation timeline so it centers in the space beside an open summary panel at medium widths. โ€ข Fixed the shortcuts settings search field losing focus while typing. โ€ข Fixed file references in user messages showing as attachments. Only inline or data-backed files now count as attachments. ๐—ง๐—จ๐—œ โ€ข Added right-aligned skill, agent, and reference labels to @ autocomplete options, and truncated long entries in the middle. โ€ข Removed MCP resources from @ mention autocomplete. โ€ข Changed "Session failed" toasts to also appear for background sessions, using the session title and offering an Open action. โ€ข Fixed the question form border to use the theme's focused action color. ๐—Ÿ๐—Ÿ๐—  โ€ข Fixed OpenAI Responses-compatible error frames failing to decode. Unusual gateway error shapes (plain strings, numeric codes, extra fields) are now always classified, and the raw body is used as the fallback message. โ€ข Fixed WebSocket streams dropping with inbound queue overflow errors under bursty traffic by removing the fixed-size inbound queues. โ€ข Changed session WebSocket transport to stay on HTTP after 5 consecutive mid-stream socket losses, instead of paying a retry on every step. Also raised the connect timeout to 15s. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Fixed skill and MCP instruction discovery to respect session-level permissions as well as agent permissions, so denied skills and servers are no longer advertised to the model. โ€ข Added a Headers built-in to code mode, with normalized names, set-cookie handling, and JSON serialization across tool boundaries. โ€ข Changed code mode keys(), values(), and entries() on arrays, strings, Map, Set, URLSearchParams, Headers, and Uint8Array to return live iterators instead of arrays. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Fixed a startup race where a models.dev catalog refresh could be missed, leaving the bundled snapshot in use until the next scheduled refresh. โ€ข Updated the bundled models.dev model catalog snapshot. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added a sessionID option to TUI plugin toasts. When that session isn't open, the toast uses the session title and offers an Open action. ๐—–๐—Ÿ๐—œ โ€ข Added Vite+ (vp) support: opencode detects global vp installs and upgrades or uninstalls through vp. Bundle +2.0 MB because mostly Web UI assets +6.1 MB and Bytecode +38.6 KB Compare: github.com/anomalyco/opencodโ€ฆ
2
5
777
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.10 released. TL;DR: OpenCode V2 now installs through Homebrew, with built-in upgrades for brew installs. The TUI's running and needs-attention status colors are back to their earlier mapping. ๐—–๐—Ÿ๐—œ โ€ข Added Homebrew install for macOS and Linux on arm64 and x64: brew install anomalyco/tap/opencode-v2 for stable, or anomalyco/tap/opencode-beta for beta. The formula installs ripgrep too and conflicts with the legacy opencode formula, since both provide an opencode binary. โ€ข Added brew as an upgrade method. OpenCode now spots installs under the Homebrew Cellar, checks Homebrew's release channel for new versions and upgrades with brew upgrade instead of npm or the curl installer. It also skips package-manager cleanup for brew installs. ๐—ง๐—จ๐—œ โ€ข Restored the status colors in session tabs and the footer: running or busy sessions, the active tab number and the /btw spinner use the interactive color again. Questions, permission prompts and unread markers go back to the accent color, so sessions waiting on you stand out from ones that are still working. ๐—ฅ๐—ฒ๐—น๐—ฒ๐—ฎ๐˜€๐—ฒ โ€ข Added a Homebrew tap step to the beta and stable release pipelines. It hashes each platform archive, writes the formula, pushes it to the tap and registers the build with the update service. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Removed the V2 announcement banner from the legacy docs site. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
12
1,318
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.9 released. TL;DR: Desktop starts faster, provider compaction and transport config now lives under settings, V2 themes switch to a new base format with a built-in opencode theme, and malformed tool arguments are repaired before validation. ๐—”๐—ฝ๐—ฝ Changed โ€ข Improved desktop startup: the first window now opens as soon as Electron is ready, without waiting for the background service to connect. โ€ข Improved desktop cold start. The renderer now uses the V8 code cache, the browser pane and node-pty load only when first needed, the CLI version ships with the build instead of being found by spawning the CLI, and declarations and source maps are left out of the asar. โ€ข Replaced electron-store and electron-window-state with small built-in JSON stores for settings and window bounds. โ€ข Changed composer drafts to load image bytes only when needed instead of keeping them all in memory. Fixed โ€ข Fixed failed sends staying in prompt history after the prompt is put back in the composer. โ€ข Fixed very long toast messages, such as server errors that include a whole data URL, being kept in memory. They are now cut off at 2000 characters. โ€ข Fixed WSL commands on Windows being expanded by the distro's default shell before they ran. They now run with --exec. ๐—ง๐—จ๐—œ โ€ข Added the native V2 opencode theme as a built-in theme. โ€ข Changed the V2 theme file format, which breaks existing custom V2 themes. Files now need one complete base token tree plus light and/or dark hue palettes. version and mergeMode are gone, @context:elevated and @context:overlay are replaced by a @dialog surface, and the default and subdued tokens are renamed base and muted. โ€ข Changed theme state resolution: a contextual action base is now the fallback for any unspecified state, and explicit state overrides still take priority. โ€ข Fixed markdown rendering and sizing in the /btw answer dialog. โ€ข Fixed session tab status colors picking the wrong hue step. ๐—ฃ๐—ฟ๐—ผ๐˜ƒ๐—ถ๐—ฑ๐—ฒ๐—ฟ๐˜€ โ€ข Changed provider config: compaction and transport now go under settings, and a model's settings override its provider's. Compaction is now { type: "summary" | "native" } instead of mode local/provider. โ€ข Removed the native compaction threshold option and model-level transport. Automatic compaction now uses the model's usable input budget, and transport can only be set per provider. โ€ข Added typed settings.timeout and settings.chunkTimeout to provider config. โ€ข Fixed the OpenCode console provider losing its config when a refresh fails. The last good config is now kept for the same connection. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Added automatic repair of malformed tool arguments before validation, only where the input schema makes the fix unambiguous. This covers JSON objects or arrays sent as strings, numbers and booleans sent as strings, null or {} placeholders in optional fields, and extra keys on closed objects. โ€ข Changed Code Mode to reject TypeScript-only syntax instead of stripping it, which drops the bundled TypeScript compiler. โ€ข Improved skill guidance so the model knows a skill the user invoked directly is already in the conversation and does not load it again. โ€ข Fixed finished job results piling up in memory. Consumed results are now capped at the 25 most recent. ๐—Ÿ๐—Ÿ๐—  โ€ข Fixed OpenAI Responses and Alibaba provider options so one malformed option no longer throws away the valid options next to it. โ€ข Changed Anthropic provider options to pass through new values for fields like service_tier and thinking display instead of dropping them. ๐—ฃ๐—น๐˜‚๐—ด๐—ถ๐—ป โ€ข Added tool.list() for Effect and Promise plugins. It returns the currently registered tools with their effective IDs after all transforms. โ€ข Clarified the browser plugin's tabs.open description: new tabs open in the Review pane by default, and agents should pass focus: false only when the user asks for a background tab. ๐—ฆ๐——๐—ž โ€ข Fixed importing the published SDK and server packages from Node. They are now built as Node ESM bundles. โ€ข Improved client startup by checking for a starting service every 25 ms. ๐——๐—ผ๐—ฐ๐˜€ โ€ข Added a v2 announcement banner to the legacy docs and a v1 docs link in the docs header. Bundle -13.7 MB because mostly Bytecode -27.6 MB and CLI/TUI JS -10.7 MB Compare: github.com/anomalyco/opencodโ€ฆ
2
9
884
๐™Š๐™ฅ๐™š๐™ฃ๐˜พ๐™ค๐™™๐™š v2.0.8 released. TL;DR: TUI adds /btw side questions and live update progress, the App streams large attachments to the server with progress and can scan pairing QR codes, and desktop IPC now sends binary data as raw bytes. ๐—ง๐—จ๐—œ Added โ€ข Added /btw <question> (also in the command palette, with an unbound session.aside keybind). It gives a one-shot answer using the session's context and current model without adding anything to the conversation. The answer opens in a scrollable dialog, and you can press C to copy it. โ€ข Added click-through on completed subagent notices so they open the child session. โ€ข Added an "Updating OpenCode" state to the update dialog so auto-installs show progress instead of looking idle or already current. Fixed โ€ข Fixed model favorites, recents and variants getting out of sync between TUI instances. The preferences file is now written under a lock and watched for changes. โ€ข Fixed the tokens/sec throughput display to count reasoning tokens along with output tokens. โ€ข Fixed slash command detection when the prompt contains collapsed pasted text, so the full pasted content reaches the command. โ€ข Fixed block tool output losing its spacing when layout space is tight. Changed โ€ข Renamed the v2 theme background tokens from surface.offset/overlay to raised.base/high, and added raised.max. v1 theme migration now produces the new keys. ๐—”๐—ฝ๐—ฝ Added โ€ข Added streaming uploads for large or non-native attachments sent to remote servers. Files stream from disk into the server's temp directory, with a progress toast and per-file cancel, and sending waits for uploads still in flight. โ€ข Added QR pairing scan to the web Add Server dialog. It fills in the server URL and password, offers the other addresses as suggestions, and checks for a secure context and camera availability. โ€ข Added a "Toggle debug bar" command that works in production builds. It shows provider TTFT, time to first answer, TPS and end-to-end latency for the latest request. Changed โ€ข Changed attachment delivery: only images and PDFs the model reads natively, up to 20 MB, go inline. Text and larger files now reach the model as server-side paths instead of being base64-encoded into the request, and queued prompts keep those path attachments when edited. Fixed โ€ข Fixed new local sessions starting in the current subdirectory instead of the project root. โ€ข Fixed tool calls that stayed stuck as running or streaming after a session settled. The message list now resyncs when the session settles. โ€ข Fixed desktop IPC corrupting binary payloads (clipboard images, picked files, draft blobs). IPC now uses structured clone instead of a shared MessagePack buffer, which also removes the optional msgpackr-extract native dependency. ๐—”๐—ด๐—ฒ๐—ป๐˜ โ€ข Fixed attachment errors for inline data URLs repeating the entire encoded file. Size and decode errors now name the attachment instead. No noticeable bundle change Compare: github.com/anomalyco/opencodโ€ฆ
1
6
1,274