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.