R9S works with tools that allow a custom OpenAI-compatible base URL. The integrations below are listed only after end-to-end verification with a supported R9S model.
Common OpenAI-compatible base URL:
https://gw.r9s.ai/v1
Use your R9S API key for authentication.
Verify access
Before configuring an agent, confirm that the key can list models:
export R9S_API_KEY="<R9S_API_KEY>"
curl https://gw.r9s.ai/v1/models \
-H "Authorization: Bearer $R9S_API_KEY"
Supported patterns
| Tool | Status | Protocol | Tested model | Last tested |
|---|---|---|---|---|
| Codex | Verified | OpenAI-compatible | glm-5.3 |
2026-09-03 |
| OpenCode | Verified | Custom provider | glm-5.3 |
2026-09-03 |
| OpenClaw | Verified | Custom provider | glm-5.3 |
2026-09-03 |
Codex
Configure Codex with an OpenAI-compatible base URL:
export R9S_API_KEY="<R9S_API_KEY>"
export OPENAI_BASE_URL="https://gw.r9s.ai/v1"
export OPENAI_API_KEY="$R9S_API_KEY"
Run with a supported R9S model:
codex --model glm-5.3
OpenCode
Add an R9S provider to OpenCode configuration:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"r9s": {
"npm": "@ai-sdk/openai-compatible",
"name": "R9S",
"options": {
"baseURL": "https://gw.r9s.ai/v1"
},
"models": {
"glm-5.3": {
"name": "GLM-5.3"
}
}
}
}
}
Launch OpenCode, run /connect, choose R9S, and paste the R9S API key. Then use /models to select an R9S-backed model.
OpenClaw
OpenClaw can use a LiteLLM-style custom base URL:
export R9S_API_KEY="<R9S_API_KEY>"
export LITELLM_API_KEY="$R9S_API_KEY"
Onboard with R9S:
openclaw onboard \
--non-interactive \
--accept-risk \
--auth-choice litellm-api-key \
--litellm-api-key "$R9S_API_KEY" \
--custom-base-url "https://gw.r9s.ai/v1" \
--install-daemon \
--skip-channels \
--skip-skills
Select a model routed through R9S:
openclaw models set litellm/glm-5.3
Troubleshooting
| Symptom | Check |
|---|---|
| Authentication error | Confirm the tool’s API key variable contains the R9S API key |
| Model not found | Confirm the model is available in /v1/models |
| Requests use a default endpoint | Confirm the custom base URL is configured before starting the tool |
Operational notes
- Prefer model names that have been verified through
/v1/models. - Keep agent keys scoped and rotated separately from application keys.
- Use separate API keys per agent team when you need usage attribution.
- Watch cost and retry behavior before giving agents high autonomy.