Install
openclaw skills install iblai-openclaw-routerCost-optimizing model router for OpenClaw. Automatically routes each request to the cheapest capable Claude model (Haiku/Sonnet/Opus) using weighted scoring....
openclaw skills install iblai-openclaw-routerA zero-dependency proxy that sits between OpenClaw and the Anthropic API, routing each request to the cheapest capable model using a 14-dimension weighted scorer (<1ms overhead).
Run the install script to set up everything automatically:
bash "$(dirname "$0")/scripts/install.sh"
This will:
server.js and config.json to ~/.openclaw/workspace/router/iblai-router) on port 8402iblai-router/auto as an OpenClaw model providerAfter install, iblai-router/auto is available anywhere OpenClaw accepts a model ID.
curl -s http://127.0.0.1:8402/health | jq .
curl -s http://127.0.0.1:8402/stats | jq .
Set iblai-router/auto as the model for any scope:
| Scope | How |
|---|---|
| Cron job | Set model to iblai-router/auto in job config |
| Subagents | agents.defaults.subagents.model = "iblai-router/auto" |
| Per-session | /model iblai-router/auto |
| All sessions | agents.defaults.model.primary = "iblai-router/auto" |
Tip: Keep the main interactive session on a fixed model (e.g. Opus). Use the router for cron jobs, subagents, and background tasks where cost savings compound.
All config lives in ~/.openclaw/workspace/router/config.json and hot-reloads on save — no restart needed.
Change the models per tier:
{
"models": {
"LIGHT": "claude-3-5-haiku-20241022",
"MEDIUM": "claude-sonnet-4-20250514",
"HEAVY": "claude-opus-4-20250514"
}
}
Set apiBaseUrl to route through OpenRouter:
{
"models": {
"LIGHT": "openai/gpt-4.1-mini",
"MEDIUM": "openai/gpt-4.1",
"HEAVY": "openai/o3"
},
"apiBaseUrl": "https://openrouter.ai/api/v1"
}
Update the API key in the systemd service when switching providers, then systemctl daemon-reload && systemctl restart iblai-router.
Keyword lists control which tier handles a request:
simpleKeywords, relayKeywords → push toward LIGHT (cheap)imperativeVerbs, codeKeywords, agenticKeywords → push toward MEDIUMtechnicalKeywords, reasoningKeywords, domainKeywords → push toward HEAVY (capable)Tune boundaries and weights in config.json to match your workload. See the full README for details.
bash "$(dirname "$0")/scripts/uninstall.sh"
Stops the service, removes the systemd unit, and deletes router files. Reminder: switch any workloads using iblai-router/auto back to a direct model first.