Calto documentation
Calto is a model-routing service used alongside your existing Claude Code installation. You create API keys, install our CLI, enter a key at a hidden prompt, and Calto then routes eligible tasks to an appropriate Claude model — considering task difficulty and whether a model switch repays its cache cost.
This is a private, operator-funded evaluation: no payment, wallet or balance is involved, and Claude usage itself is billed by your provider as usual.
API-key handling
An API key is a secret credential. The full secret is shown once, at creation. Store it in your own password manager or secret store — Calto cannot show it again, and your browser never saves it.
- Create as many keys as you need — one per person, device or project.
- Revoking a key prevents future admissions; historical records are retained.
- Rotating creates a replacement key and revokes the old one once the replacement exists.
- Key holders get client access only. The account owner controls the dashboard.
- Never paste a key into a command argument, a URL or a support ticket.
Routing decisions
Each routed turn produces one recorded decision. The dashboard distinguishes the recommendation (keep the current model, or switch to a specific one) from the model that actually served the turn once your client reports it — they are not the same thing, and we never present a recommendation as an observed outcome.
Decisions are content-free metadata: a reason code, a confidence and model ids. Your prompt and output text is never stored or displayed.
Manual model selection
Your own model choice always wins. When you pick a model explicitly in Claude Code, Calto passes the task through and records the decision reason as a manual selection rather than substituting its own choice.
Privacy in this evaluation
Server-side classification receives only the eligible current prompt and bounded metadata. Full inference context stays local. No prompt content, hashes or recordings appear in the dashboard or evidence.
Troubleshooting
- Decisions show “unavailable”
- The routing service reported an honest unavailable state (or is not enabled yet). This is not an error in your setup, and nothing was fabricated in its place.
- A key stopped working
- Check its status on the API keys page — expired and revoked keys are refused, while other keys keep working.
- The dashboard shows an error
- The overview never replaces a failed request with sample data. Retry, and if it persists check the request id shown with the error.