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.