Skip to content

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.

ProviderAuthNotes
AnthropicSubscription (OAuth) or API keyClaude models.
OpenAI / CodexSubscription (OAuth) or API keyGPT-5 family and Codex models.
OpenRouterAPI keyOpenAI-compatible aggregator; many vendors behind one key.
Amazon BedrockAPI key (bearer token)Per-account region; served on /v1/chat/completions.
PumpAPI keyOpenAI-compatible aggregator.

Each provider’s live /models catalog drives pricing and context windows automatically, so newly released models are routable without a Lattis update.

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.

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.

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.

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.

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.

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.

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.

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.

Terminal window
# Store a Console API key on a specific account
curl -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 account
curl -X POST http://127.0.0.1:5288/control/remote/anthropic/account/<account_id>/disconnect

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.