Cloud Providers & Accounts
Lattis can route to remote providers alongside your local models. Connect an
account and its provider’s models appear in GET /v1/models next to the local
ones; pass a model id like claude-opus-4-8 or gpt-5.5 to use it.
Requests are translated between the OpenAI, Anthropic, and Responses formats as needed, so a client speaking either dialect can use any connected model.
Supported providers
Section titled “Supported providers”| Provider | Auth | Notes |
|---|---|---|
| Anthropic | Subscription (OAuth) or API key | Claude models. |
| OpenAI / Codex | Subscription (OAuth) or API key | GPT-5 family and Codex models. |
| OpenRouter | API key | OpenAI-compatible aggregator; many vendors behind one key. |
| Amazon Bedrock | API key (bearer token) | Per-account region; served on /v1/chat/completions. |
| Pump | API key | OpenAI-compatible aggregator. |
Each provider’s live /models catalog drives pricing and context windows
automatically, so newly released models are routable without a Lattis update.
Accounts
Section titled “Accounts”Cloud access is organized into accounts, managed under Settings → Accounts. You can add more than one account per provider — for example a personal Claude Pro subscription and a work Console key side by side.
Each account authenticates one of two ways, chosen when you add it (and switchable later with Re-authenticate):
- Subscription — sign in through the browser with a Claude Pro/Max or ChatGPT Plus/Pro account (OAuth).
- API key — paste a Console API key for the provider.
Priority-ordered routing
Section titled “Priority-ordered routing”Accounts live in a single ordered list (with an optional per-project order). For each request, Lattis walks the list top-to-bottom and uses the first connected account whose provider can serve the requested model. Drag to reorder in Settings → Accounts; the order persists.
If a chosen account errors, Lattis fails over to the next account that can serve the model — across providers — and, on exhaustion, shows the full chain of what was tried and why each option failed. Pin a project to a specific subset (and order) of accounts from that project’s settings screen; unpinned projects use the global order.
Anthropic
Section titled “Anthropic”Connect a Claude Pro/Max subscription via OAuth, or paste a Console API key from
the Anthropic Console. Once an account is connected, Claude models (e.g.
claude-opus-4-8, claude-sonnet-4-6, claude-haiku-4-5) are routable. The
daemon advertises each model’s real context window in GET /v1/models.
A Claude Pro/Max subscription can also be connected without a browser on the
Lattis machine, using a long-lived token from claude setup-token. That is
the supported route for a remote or headless host — see
Headless & Remote Hosts.
OpenAI / Codex
Section titled “OpenAI / Codex”Connect a ChatGPT subscription via OAuth — which uses the Codex Responses
backend, including the Codex Responses WebSocket transport — or paste a
standard OpenAI API key. GPT-5 family and Codex models become routable (e.g.
gpt-5.5, gpt-5.4-mini).
The subscription sign-in needs a browser redirect back to the machine running the daemon, so on a headless host an API key is the practical option; Headless & Remote Hosts covers why and what the alternatives are.
OpenRouter
Section titled “OpenRouter”Paste an OpenRouter API key. OpenRouter is an OpenAI-compatible aggregator, so its
catalog spans many vendors behind one credential; the models it serves appear in
GET /v1/models and route via chat-completions translation.
Amazon Bedrock
Section titled “Amazon Bedrock”Paste a Bedrock API key (bearer token) and set the account’s region (defaults
to us-east-1). Lattis speaks the Bedrock Converse API and translates to and from
the internal format, so clients use Bedrock models with no changes. Served on
/v1/chat/completions (streaming and non-streaming); model listing comes from
Bedrock’s inference profiles with a curated fallback.
Paste a Pump API key. Like OpenRouter, Pump is an OpenAI-compatible aggregator; its live catalog (with pricing and context) is fetched on connect and routes via chat-completions translation.
Apps that sign in themselves
Section titled “Apps that sign in themselves”A provider’s models are always listed in GET /v1/models, even when no
account is connected, so apps that bring their own credential can use them via
passthrough. A connected Lattis account, when present, takes precedence over an
app-supplied credential for that provider.
Connecting from the API
Section titled “Connecting from the API”The GUI wraps these, but they’re scriptable via the Control API.
<account_id> is a Lattis account id: the GUI assigns one per account, and for
raw API use any stable string works — the daemon creates the account entry on
first use.
# Store a Console API key on a specific accountcurl -X POST http://127.0.0.1:5288/control/remote/anthropic/account/<account_id>/key \ -H 'Content-Type: application/json' -d '{"key":"sk-ant-..."}'
# Begin an OAuth connection for an account (open the returned URL in a browser)curl -X POST http://127.0.0.1:5288/control/remote/openai/account/<account_id>/connect
# Disconnect an accountcurl -X POST http://127.0.0.1:5288/control/remote/anthropic/account/<account_id>/disconnectCredentials
Section titled “Credentials”Cloud credentials are stored in remote_auth.json in the data directory, written
with 0600 permissions on Unix. See Configuration & Storage.
Continue to Usage & Cost to see how spend on paid cloud models is tracked.