Personal agents
An agent that runs all night needs a ceiling, not a credit line.
OpenClaw, Hermes Agent and OpenHands all take a custom OpenAI-compatible endpoint. Point one at minirouter and you get a key with no account behind it, a hard spend cap you set yourself, and a balance that physically cannot overdraw.
- Account
- None
- Spend cap
- Per key, daily + monthly
- Minimum deposit
- $5
- Prompt retention
- Not stored by default
The key is the identity. Nothing to register, nothing to verify.
Set dailyLimitNano and monthlyLimitNano on the key the agent holds.
Credits never expire, so a quiet month costs nothing.
Token counts, model id and cost are kept. The words are not.
Why an always-on agent bills differently
A coding agent spends while you watch it. A personal agent spends while you sleep, and the shape of the bill is not the same.
The prefix is the bill. Every turn re-sends the same system prompt, tool schema and conversation history. The completion is usually a sentence. So the cost of running an agent is dominated by input it has already sent before — which is why cheap input rates matter far more here than peak capability, and why the model list below is not the coding list.
Nobody presses Stop at 3am. A person hits a rate limit and reads the error. An agent hits it, retries, and hits it again. The failure mode that matters is not a bad answer, it is a loop that runs for six hours — so the containment story has to be told before the setup story.
Containment
Three mechanisms, in the order they catch a runaway.
- A prepaid balance is a hard ceiling. There is no credit line to exceed and no invoice arriving later. When the balance reaches zero the requests stop, which is a structural difference from a postpaid gateway rather than a setting either of us chose.
- Per-key daily and monthly caps.
dailyLimitNanoandmonthlyLimitNanoare enforced at the edge, and open reservations count immediately — so a burst of concurrent requests cannot slip past a cap that a serial one would have hit. Full field list in /docs/rate-limits. - One key per agent. This is the only one of the three that is a habit rather than a feature, and it is the one that does the most work: a cap on a shared key contains nothing, because you cannot tell which of four agents ate it.
The arithmetic — what to actually set the cap to — is worked through in capping what an unattended agent can spend.
Clients · 3 guides
Each guide carries a complete configuration block with literal values, the exact field the base URL belongs in, and the failures this client actually produces.
Every guide here is a draft. None of these clients has passed our recorded-fixture compatibility suite yet, so the field names are our best current reading of each client rather than something we have replayed in CI. The configuration blocks are complete and literal; confirm the field names against your installed version before relying on one.
Models worth pointing an agent at
Chosen for cheap input and dependable tool calling, because that is what the turn loop actually consumes. These are judgements, not rankings — we have no usage data to rank by and will not imply that we do.
Linked rows resolve in the current live catalog. Paste ids exactly as written, author/name. The full catalog with current rates is at /models.
Where your agent's errors get read
A personal agent's interface is WhatsApp, Telegram or Discord. There is no navigation there, no support link and no context — the error string is the entire interface.
So every error we return names what happened, what it cost and where to fix it, and carries a URL — because the URL is the only navigation that exists inside someone else’s chat pane. If the balance hits zero mid-stream the stream ends with a terminal error stating the exact charge for tokens already delivered, never a silent close.
Every response also carries x-minirouter-balance-usd, which is the signal to watch if you want your agent to warn you before it runs dry rather than after. Codes and message shapes: /docs/errors.
What an agent tells us about you
More than a coding agent does. A personal agent reads your messages, your calendar and your files, and every turn of that goes through an inference call.
Prompts and completions are not stored by default. That is the absence of code rather than a feature with a switch: a usage record holds token counts, model id, serving upstream, cost, latency and status. Prompts still transit the upstream serving the request, and each upstream has its own retention policy — the upstreams that can serve a model are named on its model page. The full boundary is in /docs/privacy.
Next
- Capping unattended spendWhat to set the cap to, and what happens at each of the three ceilings.
- Rate and spend limitsEvery per-key field, how reservations are counted, and the 429 shape.
- Why there is no accountThe accountless position stated structurally, including what it costs you.
- The full catalogCurrent rates and context windows for every model we can serve.
- FailoverWhat happens to an unattended request when an upstream degrades mid-run.
- Roleplay clientsThe other cluster with a long static prefix and a very different bill.