OpenCode Go is a separate paid subscription inside OpenCode. It uses the same OPENCODE_API_KEY credential infrastructure as Zen, but a Zen key does not automatically include Go entitlement. Go keeps its own runtime provider id (opencode-go) so upstream per-model routing stays correct. OpenCode Go is bundled in the Apus package, so onboarding and configuration are sufficient; no separate plugin install is required.

Property Value
Runtime provider opencode-go
Plugin Bundled (opencode-go)
Auth OPENCODE_API_KEY (alias: OPENCODE_ZEN_API_KEY)
Parent setup OpenCode

Getting started

OpenCode Go is already included with Apus. Continue with interactive onboarding or pass the shared OpenCode API key directly.

Interactive

Run onboarding

    ```bash
    apus onboard --auth-choice opencode-go
    ```

Set a Go model as default

    ```bash
    apus config set agents.defaults.model.primary "opencode-go/kimi-k3"
    ```

Verify models are available

    ```bash
    apus models list --provider opencode-go
    ```

Non-interactive

Pass the key directly

    ```bash
    apus onboard --opencode-go-api-key "$OPENCODE_API_KEY"
    ```

Verify models are available

    ```bash
    apus models list --provider opencode-go
    ```

Config example

{
  env: { vars: { OPENCODE_API_KEY: "YOUR_API_KEY_HERE" } }, // pragma: allowlist secret
  agents: { defaults: { model: { primary: "opencode-go/kimi-k3" } } },
}

Catalog

Run apus models list --provider opencode-go for the current model list. Apus combines Go's advertised model IDs with authoritative metadata from https://models.opencode.ai/api.json, so new upstream models appear without an Apus update when they use a supported transport on the trusted OpenCode endpoint. The upstream catalog is downloaded and cached only when OpenCode Zen or Go is configured or explicitly selected with OpenCode credentials; it is never fetched at startup or while using unrelated providers.

Example refs include opencode-go/deepseek-v4-flash, opencode-go/kimi-k3, and opencode-go/qwen3.8-max. Use the CLI for the current lineup rather than treating these examples as an inventory. Apus excludes deprecated rows from active discovery and applies refreshed lifecycle status to its offline fallback. Bundled preview rows stay hidden until accepted upstream metadata supplies them. Existing explicit refs in the bundled seed remain resolvable.

The Go model-list endpoint is a general inventory, not an account-entitlement check. A successful listing does not grant access: inference still requires an active Go subscription, including for promotional models.

DeepSeek V4 models apply the same thinking controls in agent turns and standalone completions. Explicit off disables native thinking and removes reasoning from replayed history; enabled thinking preserves the reasoning needed for follow-up turns. Both paths also omit unsupported controls for MiniMax models with fixed reasoning and remove Kimi K2 reasoning replay fields.

Privacy

Retention and training policies vary by model. Review the current OpenCode Go privacy table before using a model, because provider policy can change independently of Apus.

Advanced configuration

Routing behavior
Apus routes any `opencode-go/...` model ref automatically. No extra
provider config is required.
Runtime ref convention
Runtime refs stay explicit: `opencode/...` for Zen, `opencode-go/...` for
Go. This keeps upstream per-model routing correct across both catalogs.
Shared credentials
The same `OPENCODE_API_KEY` can authenticate both runtime providers, so
setup may store both profiles. Go access still requires a separate paid
subscription in the OpenCode console.

See OpenCode for the shared onboarding overview and the full Zen + Go catalog reference.

Related

OpenCode (parent)

Shared onboarding, catalog overview, and advanced notes.

Model selection

Choosing providers, model refs, and failover behavior.