OpenCode 2 v2.0.22: ACP editor integration, plugin session control, clearer provider errors#
Published by Alex Sorokoletov
Part of the OpenCode 2 Version Tracker series. | OpenCode on GitHub | OpenCode 2 docs
OpenCode 2 v2.0.22 follows v2.0.21 and concentrates on three areas. Driving OpenCode through the Agent Client Protocol now handles extra workspace directories, follows model and agent changes from other connected clients, and answers V2 forms by elicitation. Plugins gain session removal, compaction, and parent-session creation. Provider failures across several services now report why.
Running OpenCode inside an editor#
The Agent Client Protocol (ACP) starts OpenCode as a subprocess an editor drives over JSON-RPC, so a client like Zed runs it with the same tools, commands, and permissions as the terminal.[1] This release widens what that client gets. A session can span additional workspace directories (#52524), it follows the model and agent when another connected client switches them (#52499), and V2 forms are answered through ACP elicitation (#52511). Compactions are marked for ACP clients (#52485).
Several fixes tighten the same path: usage is reported for the whole turn (#52467), edited files are no longer echoed back to the client (#52466), native file tools report their locations (#52469), available commands are sent after the session response (#52522), unreadable resource links fall back to a reference (#52520), and invalid requests map to invalid-params errors (#52521).
Plugins reach the session lifecycle#
Plugins can now act on sessions directly: remove a session (#52387), trigger compaction (#52385), and create a parent session (#52359). Session-update metadata is forwarded to plugins (#52434).[2] These sit on top of the plugin system OpenCode 2 already exposes for tools, hooks, and commands.
Provider failures that say why#
When a provider refuses a request, v2.0.22 names the reason instead of returning a generic failure.[3] A blocked response now reports why the provider blocked it (#52518). Rejections are classified so retries and context handling react correctly:
| Provider | Now classified as |
|---|---|
| DeepInfra, Novita, Together | Input and context length rejections read as context overflow (#52132, #52134, #52133). |
| xAI | Invalid API keys read as authentication errors (#52112). |
| Z.ai | Provider errors classified (#52104); the Responses model and permission rejections are no longer retried (#52135). |
More provider coverage#
OpenCode can discover Azure deployments (#50053).[4] Prompt caching reaches DigitalOcean inference (#51559), Bedrock tool images are placed by model family (#52528), and Groq and Vertex metadata keys are isolated (#52598). Model-capability defaults were made forward-compatible for Claude and in general (#52535, #52388).
Two other user-facing changes: the CLI checks for updates every 10 minutes (#52552), and the review panel shows the last turn's changes (#51640).
What this tells us#
The ACP block is the throughline. OpenCode 2 keeps making itself drivable from an editor through the protocol Zed uses, and this release extends what a connected client can do: multiple workspace directories, model and agent changes that propagate between clients, elicitation forms, and correct usage and command reporting. Claude Code ships its own IDE extensions for VS Code and JetBrains; OpenCode instead implements a shared client protocol, so any ACP-speaking editor drives the same agent.
Exposing session removal, compaction, and parent-session creation to plugins extends the server-backed model where a background process holds sessions and clients attach to it. Plugin authors get the same session operations the clients use.
The provider work is catalog-breadth maintenance against v2's provider plugins: classifying each service's rejections so context overflow and auth failures are handled rather than retried, and extending caching and deployment discovery across more providers. Provider classification and coverage account for a large share of v2.0.22.
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#
- ACP integration: OpenCode ACP docs, #52524, #52499, #52511, #52485, #52467, #52466, #52469, #52522, #52520, #52521
- Plugin session methods: #52387, #52385, #52359, #52434
- Provider error classification: #52518, #52132, #52134, #52133, #52112, #52104, #52135
- Provider coverage: #50053, #51559, #52528, #52598, #52535, #52388
Previous OpenCode 2 analysis: v2.0.21 (October 1, 2026)
All 5 OpenCode 2 analyses: OpenCode 2 Version Tracker · Official OpenCode 2 changelog