OrcaRouter provider plugin for OpenClaw — adaptive routing across many LLMs through a single OpenAI-compatible API (https://api.orcarouter.ai/v1).
I'm an engineer on the OrcaRouter team.
Requires OpenClaw 2026.5.12 or newer (Node ≥ 22).
openclaw plugins install clawhub:@continuum-ai-corp/openclaw-orcarouter
# or, during launch cutover, from npm directly:
openclaw plugins install @continuum-ai-corp/openclaw-orcarouteropenclaw onboard --auth-choice orcarouter-api-key
# or:
openclaw onboard --orcarouter-api-key "$ORCAROUTER_API_KEY"OrcaRouter API keys start with sk-orca-. Get one at orcarouter.ai/console.
Config snippet (~/.openclaw/config.json5):
{
env: { ORCAROUTER_API_KEY: "sk-orca-..." },
agents: {
defaults: {
model: { primary: "orcarouter/auto" },
},
},
}Model refs follow orcarouter/<vendor>/<model> for routed upstream models, plus the virtual router orcarouter/auto.
| Model ref | Notes |
|---|---|
orcarouter/auto |
Adaptive router; strategy is configurable per workspace at orcarouter.ai/console |
openai/gpt-5.5 |
OpenAI flagship |
anthropic/claude-opus-4.7 |
Anthropic reasoning flagship (does not accept temperature) |
google/gemini-3-flash-preview |
Google preview |
deepseek/deepseek-v4-pro |
DeepSeek flagship |
Free-form model strings are accepted — any orcarouter/<vendor>/<model> ID is forwarded as-is. See the full catalog at orcarouter.ai/models.
orcarouter/auto is a virtual router, not a model. Strategy options configured at orcarouter.ai/console/routing:
| Strategy | Behavior |
|---|---|
cheapest |
Lowest-priced upstream that can serve the request (default). |
balanced |
Trades off price vs latency vs quality. |
quality |
Highest-quality upstream. |
adaptive |
LinUCB contextual bandit picks among candidates from request features. |
gated_adaptive |
Adaptive plus a task-difficulty score that gates between weak/strong pools. |
extra_body (per-request routing override):
{ "extra_body": { "models": ["openai/gpt-5", "openai/gpt-4o"], "route": "fallback" } }On verified api.orcarouter.ai routes, the plugin sends:
| Header | Value |
|---|---|
HTTP-Referer |
https://openclaw.ai |
X-Title |
OpenClaw |
OrcaRouter accepts unknown headers (OpenAI-compat); attribution surfaces in the OrcaRouter console traffic view.
orcarouter/autodefaults to thecheapeststrategy, which may select upstreams without tool/function-calling support. For agentic flows that require tool calls, either pin a tool-capable model (e.g.orcarouter/openai/gpt-5) or adjust theautorouter pool at orcarouter.ai/console/routing.- Reasoning models reject
temperature:anthropic/claude-opus-4.7- OpenAI
gpt-5family (incl.mini/nano) deepseek/deepseek-reasonerPass reasoning controls viareasoning_effort(top-level) for OpenAI / Gemini / Grok / Qwen / Kimi reasoners; viathinking: {type: "enabled", budget_tokens: N}for Anthropic.
npm install
npm run test # unit tests
LIVE=1 OPENCLAW_LIVE_TEST=1 ORCAROUTER_API_KEY=sk-orca-... npm run test:liveMIT