Integrations / OpenClaw
OpenClaw
OpenClaw's gateway supports custom OpenAI-compatible providers under models.providers, using the openai-completions API type — Viro's native wire format.
In ~/.openclaw/openclaw.json:
{
"models": {
"providers": {
"viro": {
"api": "openai-completions",
"baseUrl": "https://api.viro.app/v1",
"apiKey": "${VIRO_API_KEY}",
"timeoutSeconds": 300
}
}
},
"agents": {
"defaults": {
"model": "viro/optimized",
"models": {
"viro/optimized": { "alias": "optimized" },
"viro/clean": { "alias": "clean" },
"viro/kimi-k2.5": { "alias": "kimi" }
}
}
}
}Store the key in ~/.openclaw/.env:
VIRO_API_KEY=viro_sk_live_...Then reload the gateway: openclaw gateway restart. Get a key from API Keys.
Model IDs use Viro's real slugs directly — viro/optimized, viro/clean, and viro/frontier are routers that pick the best underlying model per request (see Model Routing); anything else is a specific model like viro/gpt-oss-120b or anthropic/claude-sonnet-5. Call GET https://api.viro.app/v1/models for the current full list.
Aliases under agents.defaults.models are how OpenClaw lets an agent switch models mid-session without a config change — assign a short alias to whichever slugs you use most.
OpenClaw sends and expects standard OpenAI-shaped tool calls and SSE streaming — both are exactly what Viro already implements, so no extra configuration is needed beyond picking a model that holds up over long tool-call sequences. See Server tools for which viro/* models we've verified.