Skip to content

Providers

Provider Kind Default endpoint Credentials
Ollama Local http://localhost:11434 Optional
LM Studio Local http://localhost:1234 Optional
llama.cpp Local http://localhost:8080 Optional
Custom Local http://localhost:8080 Optional
OpenRouter Cloud https://openrouter.ai/api/v1 API key
Vercel Cloud https://ai-gateway.vercel.sh API key

Ollama, LM Studio, and llama.cpp accept a remote address too. Point Cannonade at another machine on your network and mark the entry as remote, and its models behave like local ones apart from the actions that have to run on the server’s own machine.

You can configure the same provider type more than once, so two Ollama hosts can sit side by side. OpenRouter and Vercel are limited to one entry each.

Capability Ollama LM Studio llama.cpp Custom OpenRouter Vercel
List models yes yes yes yes yes yes
Chat and Playground yes yes yes yes yes yes
Token and timing stats yes yes yes partial partial partial
Load and unload models yes yes yes no no no
Download models yes yes yes no no no
Delete models yes local only yes no no no
Start and stop the server local, opt-in local only local, opt-in no no no
Pricing and context length no no no no yes yes

Stats coverage on cloud and OpenAI-compatible endpoints depends on what the endpoint reports. Cannonade shows what it receives and leaves the rest blank rather than estimating.

For llama.cpp, model management needs llama-server running in router mode. A server started to hold a single model still handles chat and test runs.

The server controls marked opt-in are experimental and hidden until you enable them. See Managed server processes.

For local providers, Cannonade can pull models from the provider’s own registry or directly from Hugging Face, with progress reported in the app. llama.cpp is Hugging Face only. Downloads land wherever the provider stores its models; Cannonade does not keep a second copy.

You can also name a model that is not installed yet when starting a test run. Cannonade downloads it first, and a run option removes it again afterwards. See Model downloads.

For local providers, the provider card in Settings > Providers shows server status and gives you start and stop buttons.

Where a server can start and stop itself, the controls are there for any local entry and Cannonade simply asks it to.

The rest offer no way to shut themselves down. The only way to stop one is to end its process, which is why those controls are hidden behind an experiment. The capability table above marks which is which.

Turn on Cannonade-managed servers in Settings > Experiments to get the controls for those providers. It only stops what it started, and stopping ends the process outright. See Experiments.

A provider entry resolves its key one of three ways: none, an environment variable you name, or a key you paste, which is encrypted with the operating system’s secret storage before it is written to disk. Local providers default to none, cloud providers require a key.

Two options, in order of effort:

  1. Use the Custom provider. If the endpoint speaks the OpenAI chat completions API, this works today and needs no code.
  2. Contribute a native provider. Native providers get accurate stats, model management, and provider-specific features that the OpenAI-compatible shape cannot express. The provider layer is deliberately small: a factory, a set of mappers, and a registration entry. Start from the repository.

More native providers are in progress.