# LiteLLM

> Connect your own LiteLLM proxy, with prices from models.dev or typed by you, and the cost LiteLLM billed for each call.

A LiteLLM proxy that you run, in front of the models you choose. The Hub talks to it over the OpenAI chat API.

## Set it up

1. Start your proxy. It listens on `http://127.0.0.1:4000` unless you changed it.
2. In **Settings → Model Hub → Providers**, select the **LiteLLM** tile.
3. Check **Server address** and paste the proxy's key into **API key**, if it asks for one. The key is kept in the keychain as `model-hub-litellm`.
4. In **Models**, list the model names your proxy serves, separated by commas, or leave it empty to use the list the proxy gives.
5. Select **Test**.

## Models and prices

Prices are found in this order:

1. A price you typed for the model. The dialog has no price field yet; a price goes in the model's `pricing` entry in the plugin's `data.json`.
2. models.dev, when the model id looks like `provider/model` and the provider is one of openai, anthropic, google, mistral, xai, deepseek, groq or cerebras. `openai/gpt-6-luna` is priced as OpenAI's `gpt-6-luna`.
3. Nothing. A model with an alias such as `my-fast-model` has no price until you type one, and a call on it is refused as unpriced.

## The cost LiteLLM billed

LiteLLM puts what it charged for a call in the `x-litellm-response-cost` header of its reply. The Hub reads it into **Billed** in the ledger. A reply without the header, or with it empty, has no billed cost; the ledger then shows the listed price only.

## Reasoning

There is no reasoning field of its own. The **Reasoning** option on a model's row is sent as `reasoning_effort`, as for any OpenAI-compatible endpoint.

## Related

- [Add a provider](../add-a-provider.md)
- [Where prices come from](../usage-and-costs.md#where-prices-come-from)
