OpenCode Go Provider Setup and Configuration
OpenCode Go is a paid subscription within OpenCode that uses the shared OPENCODE_API_KEY credential but keeps its own runtime provider id. This page covers onboarding, configuration, and verifying a Go model as default.
Read this when
- You want the OpenCode Go catalog
- You need the runtime model refs for Go-hosted models
OpenCode Go is a paid subscription offered separately within OpenCode. It shares the OPENCODE_API_KEY credential infrastructure used by Zen, yet holding a Zen key does not by itself grant Go entitlement. Go retains a runtime provider id of its own (opencode-go) so that per-model routing upstream continues to work correctly. Because OpenCode Go ships inside the OpenClaw package, onboarding and configuration are all that is needed; installing a separate plugin is not 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 comes with OpenClaw already. Either proceed through interactive onboarding or supply the shared OpenCode API key yourself.
Interactive
Run onboarding
openclaw onboard --auth-choice opencode-go
Set a Go model as default
openclaw config set agents.defaults.model.primary "opencode-go/kimi-k3"
Verify models are available
openclaw models list --provider opencode-go
Non-interactive
Pass the key directly
openclaw onboard --opencode-go-api-key "$OPENCODE_API_KEY"
Verify models are available
openclaw 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
To see the models currently available, run openclaw models list --provider opencode-go.
Every model ID advertised by Go's model list is displayed by OpenClaw, which then enriches it with metadata from https://models.opencode.ai/api.json, so newly added models show up without an OpenClaw update. For IDs that metadata does not yet describe, Go's OpenAI-compatible route applies with default limits. On model-list requests, OpenClaw also identifies itself through its openclaw/<version> User-Agent. The upstream catalog is downloaded and cached only when OpenCode Zen or Go is configured, or when it is explicitly selected with OpenCode credentials; it is never fetched at startup, nor while unrelated providers are in use.
Example refs include opencode-go/deepseek-v4.1-flash, opencode-go/kimi-k3, and opencode-go/qwen3.8-max. Rather than treating these examples as an inventory, use the CLI to get the current lineup. Deprecated rows are excluded by OpenClaw from active discovery, and refreshed lifecycle status is applied to its offline fallback. Bundled preview rows remain hidden until accepted upstream metadata supplies them. Explicit refs that already exist in the bundled seed stay resolvable.
The Go model-list endpoint serves as a general inventory, not as an account-entitlement check. A successful listing does not grant access: an active Go subscription is still required for inference, promotional models included.
In agent turns and standalone completions alike, DeepSeek V4 models apply the same thinking controls. Native thinking is disabled by an explicit off and reasoning is removed from replayed history; when thinking is enabled, the reasoning needed for follow-up turns is preserved. Both paths also drop unsupported controls for MiniMax models with fixed reasoning and strip Kimi K2 reasoning replay fields.
Privacy
Retention and training policies differ from model to model. Check the current OpenCode Go privacy table before you use a model, since provider policy can change without any change to OpenClaw.
Advanced configuration
Routing behavior
OpenClaw picks each model's API family and endpoint on its own; no extra provider config is needed. Chat Completions and Responses use https://opencode.ai/inference/go/openai/v1, Anthropic Messages uses https://opencode.ai/inference/go/anthropic (the transport appends /v1/messages), and Gemini uses https://opencode.ai/inference/go/google/v1beta.
Model discovery relies on the separate https://opencode.ai/inference/go/v1/models inventory endpoint, not on the inference base plus /models. Each model's API family is used to normalize saved native Go URLs; custom proxy URLs are left as they are.
Runtime ref convention
Runtime refs remain explicit: opencode/... for Zen and opencode-go/... for Go. This preserves correct per-model routing upstream across both catalogs.
Shared credentials
A single OPENCODE_API_KEY can authenticate both runtime providers, so setup may store both profiles. Access to Go still requires a separate paid subscription in the OpenCode console.
Tip
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.