---
summary: "Use the OpenCode Go catalog with the shared OpenCode setup"
read_when:
- You want the OpenCode Go catalog
- You need the runtime model refs for Go-hosted models
title: "OpenCode Go"
---
# OpenCode Go
OpenCode Go is the Go catalog within [OpenCode](/providers/opencode).
It uses the same `OPENCODE_API_KEY` as the Zen catalog, but keeps the runtime
provider id `opencode-go` so upstream per-model routing stays correct.
| Property | Value |
| ---------------- | ------------------------------- |
| Runtime provider | `opencode-go` |
| Auth | `OPENCODE_API_KEY` |
| Parent setup | [OpenCode](/providers/opencode) |
## Supported models
| Model ref | Name |
| -------------------------- | ------------ |
| `opencode-go/kimi-k2.5` | Kimi K2.5 |
| `opencode-go/glm-5` | GLM 5 |
| `opencode-go/minimax-m2.5` | MiniMax M2.5 |
## Getting started
```bash
openclaw onboard --auth-choice opencode-go
```
```bash
openclaw config set agents.defaults.model.primary "opencode-go/kimi-k2.5"
```
```bash
openclaw models list --provider opencode-go
```
```bash
openclaw onboard --opencode-go-api-key "$OPENCODE_API_KEY"
```
```bash
openclaw models list --provider opencode-go
```
## Config example
```json5
{
env: { OPENCODE_API_KEY: "YOUR_API_KEY_HERE" }, // pragma: allowlist secret
agents: { defaults: { model: { primary: "opencode-go/kimi-k2.5" } } },
}
```
## Advanced notes
OpenClaw handles per-model routing automatically when the model ref uses
`opencode-go/...`. No additional provider config is required.
Runtime refs stay explicit: `opencode/...` for Zen, `opencode-go/...` for Go.
This keeps upstream per-model routing correct across both catalogs.
The same `OPENCODE_API_KEY` is used by both the Zen and Go catalogs. Entering
the key during setup stores credentials for both runtime providers.
See [OpenCode](/providers/opencode) for the shared onboarding overview and the full
Zen + Go catalog reference.
## Related
Shared onboarding, catalog overview, and advanced notes.
Choosing providers, model refs, and failover behavior.