OpenCode 2 v2.1.3: voice model listing and hosted GPT-Live#

Published by

Part of the OpenCode 2 Version Tracker series. | OpenCode on GitHub | OpenCode 2 docs

OpenCode 2 v2.1.3 follows v2.1.2. The experimental voice API gains an endpoint that lists available models (#57194), the OpenCode Console can start hosted GPT-Live sessions (#57735), and compaction summaries now use the same output-token limit as a normal turn (#57564).

Voice: list models, send instructions, hosted GPT-Live#

OpenCode 2 exposes voice as an experimental HTTP API under /api/experimental/voice. v2.1.3 adds the models-listing endpoint next to the session and instructions endpoints that were already there (#57194):

EndpointWhat It Does
GET /api/experimental/voice/modelsLists the voice models available to the workspace. Each entry carries its provider, transport, availability, and whether it is the default.

The session endpoint (POST /api/experimental/voice/session) opens a session and returns a WebRTC or WebSocket transport, and the instructions endpoint (POST /api/experimental/voice/session/:sessionID/instructions) sends instructions to an open session; both predate v2.1.3. The OpenCode Console can start hosted GPT-Live sessions for a workspace (#57735); the provider record carries the hosted models, the inference base URL that creates them, and the workspace name. The supported voice engines include OpenAI's gpt-live-1 and xAI's grok-voice-3.0, which the models endpoint marks unavailable without an xAI key.

Core, provider, and client fixes#

  • Compaction summaries use the same output-token limit as a normal turn (#57564).
  • A configured provider's baseURL overrides the catalog's model endpoints (#57810).
  • Unsupported MCP media is kept out of tool attachments (#57640).
  • Legacy apply_patch permissions map to the edit permission (#57900).
  • Relative directories resolve during a V1 migration (#57618).
  • The GitHub App installation token is scoped to the verified repository (#57827).
  • Session titles generate at the lowest model variant (#51939), and the title prompt is tightened (#57648).
  • The TUI degrades gracefully when fs.watch fails (#51536).
  • On Windows, the service port moves out of the WSL mirrored range (#57428).
  • The app highlights code with @pierre/highlights instead of Shiki (#57937).
  • Dragging the timeline scrollbar no longer follows the timeline end (#57831), and unsupported agent colors are ignored (#57910).

The CLI's debug subcommands are now documented: opencode debug agents, opencode debug config, and opencode debug paths, where adding a name such as opencode debug paths db prints a single path (#57861).[1]

One server API for voice, a typed pass over the rest#

The voice work is server-shaped. The three endpoints live in the server package under /api/experimental/voice, the shared protocol group defines them, and the generated client exposes them, so a voice session is brokered through the OpenCode server and tied to a workspace rather than opened directly against the model provider.

The rest of v2.1.3 is a pass over types in the ai and core packages: deduplicating request, JSON, and URL helpers, replacing runtime schema checks with typed decoding, and removing dead error, option, and config helpers. That pass meets the behavior fixes on the session path. The same compaction code that gains the normal-turn output limit also starts validating its keep-ID against the SessionMessage.ID schema (#57945), so the fix and the typing land in the same files.

On the hosted backend, two routes are gone: the GitHub App token-for-PAT exchange (#57630) and an unauthenticated bridge route (#57792). With the installation token now scoped to the verified repository, the GitHub App's reach narrows to the repository a caller has proven.

All trademarks and software referenced belong to their respective owners.


Sources#

  1. Debug subcommands: OpenCode 2 docs, CLI commands.

Previous OpenCode 2 analysis: v2.1.2 (October 21, 2026)

All 19 OpenCode 2 analyses: OpenCode 2 Version Tracker · Official OpenCode 2 changelog