#
OpenCode
#
Step 1: Install OpenCode
macOS / Linux:
curl -fsSL https://opencode.ai/install | bash
Alternatives: brew install anomalyco/tap/opencode or npm install -g opencode-ai
Windows: WSL recommended (then proceed as above). Alternatives: choco install opencode or npm install -g opencode-ai
Desktop app: https://opencode.ai/download
VS Code: open Extensions (Cmd+Shift+X on macOS, Ctrl+Shift+X on Windows), search for "OpenCode", install.
Important (curl install only): the install script places the binary in ~/.opencode/bin, which is not on your PATH by default. If opencode returns "command not found", add it to your PATH:
export PATH=$HOME/.opencode/bin:$PATH
Run this in your terminal to fix the current session. To make it permanent, append the same line to ~/.zshrc (macOS default) or ~/.bashrc (most Linux), then restart your shell. The npm and brew install methods add the binary to PATH for you, so this step does not apply to them.
#
Step 2: Set the API key
macOS / Linux (~/.zshrc or ~/.bashrc):
export PHOENIQS_API_KEY="your-api-key"
Windows PowerShell:
[Environment]::SetEnvironmentVariable("PHOENIQS_API_KEY", "your-api-key", "User")
The three parameters mean:
"PHOENIQS_API_KEY"— the environment variable name. Keep this exactly as written."your-api-key"— replace with your MaaS API key."User"— keep this exactly as written. It tells Windows to store the variable for your user account (it is not your Windows username).
Open a new terminal afterward so the variable is loaded.
#
Step 3: Create the configuration file
The file is not created automatically. Create the directory first:
mkdir -p ~/.config/opencode
Location: ~/.config/opencode/opencode.json Windows: C:\Users\<Username>\.config\opencode\opencode.json
File contents:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"phoeniqs": {
"npm": "@ai-sdk/openai-compatible",
"name": "Phoeniqs",
"options": {
"baseURL": "https://maas.phoeniqs.com/v1",
"apiKey": "{env:PHOENIQS_API_KEY}"
},
"models": {
"inference-glm5": {
"name": "GLM-5",
"limit": { "context": 131072, "output": 16384 }
},
"inference-deepseek-v32": {
"name": "DeepSeek V3.2",
"limit": { "context": 128000, "output": 16384 }
},
"inference-qwen3-vl-235b": {
"name": "Qwen3 VL 235B",
"limit": { "context": 128000, "output": 16384 }
},
"inference-glm45-air-110b": {
"name": "GLM4.5 Air 110B",
"limit": { "context": 128000, "output": 16384 }
},
"inference-apertus-70b": {
"name": "Apertus 70B",
"limit": { "context": 65536, "output": 8192 }
},
"inference-qwq-32b": {
"name": "QwQ 32B",
"limit": { "context": 65536, "output": 16384 }
},
"inference-qwen3-8b": {
"name": "Qwen3 8B",
"limit": { "context": 32768, "output": 8192 }
}
}
}
},
"model": "phoeniqs/inference-glm5",
"small_model": "phoeniqs/inference-qwen3-8b",
"disabled_providers": []
}
#
Step 4: Start
cd /path/to/project
opencode
On first launch in a project, run /init to initialize the project structure.
Switch model mid-session:
/model phoeniqs/inference-deepseek-v32
#
Troubleshooting
- command not found: opencode: PATH is not set. See the note under Step 1.
- Auth or 401 errors: the PHOENIQS_API_KEY variable is not loaded in the current shell. Open a new terminal, or confirm with
echo $PHOENIQS_API_KEY. - Model not found: check that the model ID in
/modelmatches an entry in opencode.json exactly, prefixed withphoeniqs/.