AgentKit Cloud vs OpenRouter
OpenRouter set to prepaid caps your whole account, not each user: one looping user can drain the shared balance. AgentKit Cloud caps spend per end user, keeps keys off the device, and routes a tier to a model you change later. You bring your own keys, with no token markup, and can repoint to OpenRouter any time.
OpenRouter is a hosted API that routes a single endpoint to many language models.
| AgentKit Cloud | OpenRouter | |
|---|---|---|
| Model providers | Anthropic, OpenAI, Gemini, and Apple on-device | Many cloud models through one API |
| Provider keys off the device | Encrypted server-side; the app ships a publishable key | Needs your own backend to hide the key |
| End-user identity verified per request | A JWT from your trusted issuer, checked every request | No end-user identity check |
| Hard spend cap per user | A hard ceiling per user and per project. Hit it, requests stop. | Per-key limits, not per end user |
| Subscription-tier model routing | Bind tiers to RevenueCat entitlements | Not provided |
| Change models without an app update | Name a tier; remap it server-side | The caller sets the model |
| On-device option | Apple Foundation Models on-device, cloud when needed | Cloud only |
| In-app agent loop with tools, guards, undo | Runs in your app with guards, undo, and run limits | No native Swift SDK |
| Device attestation | Optional App Attest binds requests to real devices | Not provided |
| Backend to build and maintain | None. AgentKit Cloud is the backend. | You still build the app backend around it |
Keys still need a backend
Calling OpenRouter from the app ships a key in the binary. AgentKit holds keys server-side; the app sends a publishable key and a short-lived user token.
Limits per user, not per account
OpenRouter meters your account. AgentKit attributes every request to the verified end user and caps spend per user and per project.
The production layer, not just a relay
OpenRouter is one endpoint. Shipping an app also means identity, per-user caps, tiers, and an agent loop. AgentKit is that whole layer.