OpenCode v1.18.32: provider retry resilience, Azure CLI sign-in, Cloudflare Gateway passthroughs#

Part of the OpenCode Version Tracker series. | OpenCode on GitHub | Releases

Between v1.18.13 and v1.18.32, OpenCode spent nineteen releases hardening the multi-provider path rather than widening it: automatic retries for more network and mid-stream errors, five-minute default timeouts so slow model startups stop failing early, Azure sign-in through the Azure CLI with Microsoft Entra ID instead of an API key, and native OpenAI and Anthropic passthroughs for Cloudflare AI Gateway.

Reliability the multi-provider promise needed#

Most of these releases are provider-loop fixes, and they cluster around retries and timeouts. v1.18.20 taught the loop to retry responses that end in finish_reason: network_error and to recognize more variants of the same failure (network-error, network_error).[1] v1.18.14 preserved structured mid-stream provider errors so a compatible provider can retry a failed response instead of discarding it. v1.18.17 capped automatic session retries and added jitter to stop retry storms. And v1.18.27 defaulted both provider-header and streamed-chunk timeouts to five minutes, so a slow model startup no longer trips an early failure, with false supported to disable the chunk timeout.

Subagents got the same treatment. v1.18.20 surfaces a failed subagent tool call with a resumable task_id instead of returning an empty result, and answers permission requests that subagents raise during opencode run.

Wider provider reach#

Provider workRelease
Azure sign-in via the Azure CLI with Microsoft Entra ID, no API key required1.18.24
Native OpenAI and Anthropic passthroughs for Cloudflare AI Gateway; dotted model IDs like claude-haiku-4.5 converted to the dashed slug Anthropic expects, and non-Workers providers routed via the gateway REST API1.18.19, 1.18.23
xAI login simplified to a single device-code flow that works headless and remote1.18.14
Codex rate limits matched to ChatGPT subscription limits; web search enabled on the OpenCode Go provider1.18.19
GitHub Copilot: PDF attachments for models that advertise vision, session ID sent as the interaction header, summarized adaptive thinking1.18.17, 1.18.28, 1.18.31
Astra system prompt added for GPT-6 models; Codex OAuth filtering recognizes integer versions like gpt-61.18.29, 1.18.30

The same window also routed Vertex AI multi-region Gemini requests through REP endpoints, added GitLab reasoning-effort variants, fixed Together AI streaming usage reporting, and preserved ARN-based Bedrock DeepSeek model IDs. The model catalog tracks the models.dev entries OpenCode fetches at runtime.[2]

Desktop and TUI#

The desktop app kept maturing. Full session transcripts export to JSON from the UI, locale coverage widened with native language names in the picker, session lists and timelines sort by real activity and creation time, and the macOS app now stays alive after its last window closes and reopens on activation. In the TUI, cursor style is configurable, clipboard copy works over SSH with a set-clipboard on tmux config, and remote-config authentication errors surface at startup and exit with a failure status instead of failing silently.

Inside the release#

471 commits landed between August 23 and September 21, about sixteen a day across roughly four weeks. Among human contributors, fwang, MrMushrooooom, and rekram1-node lead the commit counts, while the automated opencode-agent[bot] account has the highest raw commit count; the changelog credits more than a dozen outside contributors across the window.

Nearly all changes landed under packages/, effectively the whole monorepo, which holds 3,292 tracked source files. That fits a cycle spent on provider handling and the desktop client rather than new opt-in features.

What this tells us#

OpenCode is spending its cadence on the hard part of being provider-agnostic: making every backend behave. This window touched Anthropic, OpenAI, Azure, Bedrock, Vertex, Cloudflare AI Gateway, GitHub Copilot, GitLab, xAI, Together AI, DeepSeek, and Grok, and most of the commits are retries, timeouts, slug conversions, and auth flows rather than new capabilities. Breadth is only useful when it is reliable, and this is the reliability bill coming due.

That is a different posture from the closed terminal harnesses. Claude Code, Codex CLI, and Gemini CLI each ride one vendor's models, so their provider layer is thin by design; OpenCode carries the full matrix and pays to keep it working. The Azure Entra ID and Cloudflare AI Gateway work in particular reads as enterprise plumbing, the kind of integration that matters when a team routes model traffic through its own gateway and identity provider.

Session transcript export, activity-ordered session lists, and broader locale coverage are product-shaped changes rather than agent-shaped ones, consistent with OpenCode treating the desktop app as a first-class surface rather than a shell around the CLI.

Sources#

  1. OpenCode releases and changelog
  2. models.dev catalog

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.