Providers & routing

Providers

The five sources OpenLLM gets models from: included models, subscriptions, API keys, local servers and custom endpoints, who pays, and where each runs.

You can reach models in several ways: OpenLLM's included models, a coding subscription you already pay for, a provider API key, a model server on your own machine, or a gateway you run somewhere else. Each one is billed differently and runs in a different place. OpenLLM puts them behind one API key and one list of model ids, so your tools don't need to know which is which.

Model sources

SourceWho paysWhere it runsPlanSetup page
Included modelsOpenLLM, up to a monthly allowanceHosted gatewayAll plans; the allowance depends on the planIncluded models
SubscriptionsYou, through your Claude, ChatGPT, Kimi, or Grok planYour device, through the vendor's own CLIAll plansSubscriptions
API keysYou, billed by the providerHosted gatewayAll plansAPI keys
Local modelsNobody; your hardware serves themYour deviceAll plansLocal models
Custom endpointsYou, billed by whoever runs the endpointHosted gatewayAll plansCustom endpoints
Credentials stay in their lane; requests cross between lanes, logins never do.

On the Free plan, requests on every source except the included models count toward the monthly token cap. See Plans and limits.

Web search isn't a model source. It's a separate Brave Search API key that powers POST /v1/search and the search tool in the OpenLLM MCP server. See Web search.

Every model has an id in the form provider/model, for example openai/gpt-5, claude_code/claude-opus-5-5, local_ollama/llama3.2, or custom:home-lab/qwen3. To see the ids available to you, call GET https://www.openllm.sh/v1/models with your key.

Which source serves a request

OpenLLM never compares prices or picks a source for you. The order comes from what you ask for:

  1. You name one model. A concrete id such as openai/gpt-5 runs on that model's source.
  2. You name an alias. An alias such as plus expands to its fallback chain, an ordered list of models. OpenLLM tries them top to bottom and stops at the first one that answers. On a new account, the built-in ultra, plus, and lite chains start with the included models, followed by models from the providers you've connected. See Routing and fallback.

Before the first attempt, OpenLLM removes models it can't use right now: included models whose allowance is spent, and models that failed recently and are cooling down. Then the order decides where the request runs.

  • Requests to the hosted gateway (https://www.openllm.sh/v1). If the first remaining model is a subscription or local model, the gateway hands the whole request to one of your online devices that can serve it. The device runs the chain in order: subscription and local models on the device, everything else back through the gateway. If the first model is anything else, the gateway runs the request itself and skips every subscription and local model in the chain. If nothing is left after skipping, the request fails with 403 subscription_requires_daemon or local_requires_daemon.
  • Requests to the daemon on your machine (http://127.0.0.1:8787/v1). The daemon runs the whole chain in order, so subscription and local models are used wherever they appear in the chain.
The first remaining model in the chain decides where a hosted request runs.

To use a subscription or local model from the hosted gateway, put it first in the chain. Or point your tool at the daemon. The openllm client launchers do this for you. See Clients.

The Providers page

You connect every source on the Providers page in the app. It has five tabs:

TabWhat it holds
SubscriptionsOne row per vendor CLI login on the selected device, with Connect, usage, and Log out. Needs a running daemon.
LocalModel servers the daemon found on the selected device, with an optional API key per server and Rescan.
API keysProvider API keys, encrypted in your browser before they're saved.
Web searchThe Brave Search API key.
CustomYour own OpenAI- or Anthropic-compatible endpoints, and the models you enabled on each.

The Subscriptions and Local tabs work on one device at a time. If you have more than one device, pick the device first. See Devices.

What OpenLLM can and cannot see

SourceCredentialWhat OpenLLM's servers see
Included modelsOpenLLM's own keyYour requests, which they forward to the upstream provider
SubscriptionsStays in the vendor CLI's store on your deviceUsage metadata recorded by the device. Never the login token.
API keysEncrypted in your browser with your vault keyCiphertext at rest. Decrypted in memory for each request.
Local modelsOptional server key, stored only on the deviceUsage metadata recorded by the device
Custom endpointsEncrypted in your browser with your vault keyCiphertext at rest. Decrypted in memory for each request.

For the full picture, see Security and vault and Privacy.

Limitations

  • Subscription and local models need one of your devices to be online. Local models don't show up in GET /v1/models while their device is offline. Subscription models stay listed, but requests to them fail until a signed-in device is back online.
  • The hosted gateway uses a subscription or local model only when it comes first in the chain.
  • Custom endpoints are called from OpenLLM's servers, so they must be reachable from the public internet.
  • Saving an API key doesn't test it. You find out the key is wrong on the first request.

Further reading

Last updated on

On this page