Why OpenRouter?
Last weekend I started to set up my OpenClaw. A framework for running personal AI bots. Think of it as a personal assistant. But I ran into an issue: You can’t use Claude Code subscription for OpenClaw since it is against the Terms and Conditions, and I’m not planning on getting banned. So I began to look for an alternative.
The Cost Problem
The thing about running a personal AI bot is that it does many tasks, and they’re not all equally hard.
Take for example the heartbeat. It’s a simple ping that runs every 30 mins by default. The bot checks in, updates a status file, maybe logs a note. It’s trivial work that can be completed with a non-opus model. But if you’re sending that heartbeat through Claude Opus, you’re paying a big price for a task that a model a hundred times cheaper could do just as well.
Now multiply that by every small task the bot does in a day. Memory lookups, file formatting, status checks, sync operations. Token consumption can add up fast. Paying top-tier prices for trivial tasks is how you go bankrupt running a side project.
The Routing Idea
What I wanted was simple: use a cheap model for easy tasks and an expensive model for hard tasks. Kimi K2.5 caught my eye. It’s not Opus, but it’s really good (and cheap too). But if I went directly to Kimi’s API, I’d be locked into one provider. What if I want to try other models? Grok, Gemini, etc? On top of that what if I wanted to mix in Claude for the hard tasks? I’d need more API keys and more billing accounts. More providers means more dashboards, more invoices, and more sets of credentials to manage.
One Key, Every Model
That’s where OpenRouter clicked. One API key. One site. Access to basically every model worth using: Claude, Kimi, Gemini, etc.
The bot’s config just specifies which model to use for which task class:
- Heartbeat, sync, formatting -> cheapest available
- Memory search, summarization -> mid-tier (Kimi K2.5)
- Complex reasoning, writing -> top-tier (Claude, when it matters)
One integration. One billing page. And if a new model drops tomorrow that’s better and cheaper, I can just make the swap.
Economies of Scale
The other thing I noticed: OpenRouter can be cheaper than going direct. They aggregate volume across all their users, so they get bulk pricing from the model providers and can pass some of that savings through.
Take Kimi K2.5. Moonshot’s direct API pricing is $0.60/M input tokens and $2.50/M output tokens. OpenRouter charges $0.30/M input and $1.50/M output. Roughly half the price for the same model. This can add up quickly.
The Setup
If you’re running OpenClaw or making any calls to LLMs, the switch is straightforward:
base_url: https://openrouter.ai/api/v1
api_key: sk-or-...
model: moonshotai/kimi-k2.5 # or anthropic/claude-opus-4, etc.
That’s it. One interface, but you can point at any model.
The bot’s been running for the whole weekend. Most calls hit Kimi K2.5, the heartbeat stuff goes to Gemini Flash, and I haven’t had to think about billing once.