@continuum-ai-corp/openclaw-orcarouter
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.
Install
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-orcarouter
Configure
openclaw 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" },
},
},
}
Models
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.
Routing
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" } }
Attribution headers
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.
Caveats
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.
Development
npm install
npm run test # unit tests
LIVE=1 OPENCLAW_LIVE_TEST=1 ORCAROUTER_API_KEY=sk-orca-... npm run test:live
License
MIT