OpenCode 2 v2.0.28: Windows ARM64 native builds, Figma plugin, release highlights#
Published by Alex Sorokoletov
Part of the OpenCode 2 Version Tracker series. | OpenCode on GitHub | OpenCode 2 docs
OpenCode 2 v2.0.28 follows v2.0.27 with native Windows ARM64 builds across the CLI and desktop app, an opt-in Figma plugin that registers Figma's remote MCP server and skills, and a terminal that shows the new version's release highlights after you update.
Native Windows ARM64#
OpenCode 2 now installs its native binary on Windows ARM64 (#54955) and bundles ARM64 binaries in the desktop app (#54689). The console offers a Windows ARM64 desktop download (#54971), and official WinGet packages are published and kept upgradeable (#54808). A build still running under x64 emulation is detected and reported (#54984), and an emulated x64 install upgrades itself to the native ARM64 build (#54983).[1]
Supporting changes land with it: the bundled CLI is staged per architecture (#54979), ripgrep is extracted on Windows without invoking PowerShell (#54981), and a CI check fails any release that bundles native code compiled for the wrong CPU (#54982).[2]
Figma plugin and skills#
An opt-in Figma plugin registers Figma's remote MCP server and bundles Figma's official skills (#55049, #55061). It installs through the same path as any other plugin: opencode plugin add with a Git spec, or a plugins entry in opencode.jsonc.[3]
Release highlights and /changelog#
After you update, the terminal shows the new version's release highlights (#54969). Stable release builds embed the highlights section from the version's notes, and the client displays it on that build. The console also renders CHANGELOG.md at a /changelog page (#54902), served from a standalone worker (#54906). This puts the changelog pipeline in front of users running the terminal and anyone reading the console.[4]
Provider and transport changes#
| Change | What It Does |
|---|---|
compatibility.cacheFormat (#54945) | A per-model compatibility setting that controls how Anthropic cache breakpoints are placed. |
| Request body encoding (#54932) | A setting that encodes the outgoing request body. |
| Gemini transport (#55056) | Continues a Gemini response that arrives split across parts. |
| Chunk timeout (#55032) | Raises the default per-chunk timeout to fifteen minutes. |
| Azure startup (#54870) | Stops listing Azure resources at startup. |
| Provider idle timeout (#55007) | Disables Bun's fetch idle timeout for provider requests. |
The v1 OpenAI-compatible path also now sends unknown model options in the request body (#54694), and provider-level compatibility carries through with the older setCacheKey migrated onto it (#54911).[5]
Smaller fixes#
The app gains per-project auto-accept permissions that override a default (#54839). The edit tool preserves mixed line endings in a file (#53166). The system configuration directory is discovered at the lowest precedence (#54921). Server plugins can call credential.activate (#52797). The VS Code extension launches the V2 CLI without --port (#49084), and TUI command autocomplete is restricted to the start of the prompt (#54857).[6]
What this tells us#
Windows ARM64 lands as a first-class target across the CLI, the desktop app, the console download, and WinGet. OpenCode 2 carries a desktop app, a web app, and a hosted console alongside the terminal client, and this range brings native ARM64 to all of them. That distribution surface is wider than the single-binary terminal tools it sits beside, Claude Code, Codex CLI, and Gemini CLI.
The Figma plugin extends the plugin and skill surface through MCP. OpenCode installs it with the same opencode plugin add path it uses for any plugin, and the design skills ship bundled with it. MCP is common across harnesses; a first-party design-tool plugin that carries its own skills is the shape OpenCode 2's plugin system is taking.
Release highlights in the terminal and a /changelog page put the changelog pipeline in front of users. The provider work, a per-model cache format, request body encoding, split Gemini responses, and a longer chunk timeout, sits in the transport layer under the agent rather than in agent behavior itself.
This analysis is based on publicly available open-source code and release metadata, conducted for educational and research purposes. All trademarks and software referenced belong to their respective owners.
Sources#
- Windows ARM64 builds: #54955, #54689, #54971, #54808, #54984, #54983
- Build support: #54979, #54981, #54982
- Figma plugin: #55049, #55061; OpenCode 2 plugins docs
- Release highlights and changelog: #54969, #54902, #54906
- Provider and transport: #54945, #54932, #55056, #55032, #54870, #55007, #54694, #54911
- Core and app fixes: #54839, #53166, #54921, #52797, #49084, #54857
Previous OpenCode 2 analysis: v2.0.27 (October 14, 2026)
All 11 OpenCode 2 analyses: OpenCode 2 Version Tracker · Official OpenCode 2 changelog