Providers
Rune Agent works with a set of model providers. A provider is a service that hosts models and authenticates your requests. Rune ships with built-in support for the major cloud providers, plus local models and custom OpenAI-compatible endpoints. Every model, whatever its provider, shows up in one flat list and is selected the same way.
This guide covers the hosted cloud providers: how to onboard them, what each one offers, and how to configure them in detail.
The built-in providers
Rune has five built-in cloud providers:
| Provider | Sign-in | Models |
|---|---|---|
| OpenAI | API key | GPT family |
| Anthropic | API key | Claude family |
| Gemini | API key | Gemini family |
| Codex | Sign in with ChatGPT (OAuth) | GPT-5 Codex family |
| Claude | Sign in with Claude (OAuth) | Claude family through your Claude Pro/Max subscription |
The first three are the basic cloud providers: you onboard each by pasting an API key. Codex and Claude are browser sign-in providers. Codex signs in to ChatGPT and talks to the ChatGPT Codex backend on your behalf. Claude signs in to your Claude account and talks to Anthropic models through your Claude Pro/Max subscription.
Rune already knows the catalog of models each provider serves, so you do not declare them. Once a provider is authenticated, its models appear in the model list automatically.
Onboarding a provider
You onboard providers with the models command from the
Rune shell. The provider subcommands live under
models providers:
models providers # show all providers and their status
models providers <provider> # show one provider's subcommands
How you authenticate depends on the provider.
API-key providers (OpenAI, Anthropic, Gemini)
OpenAI, Anthropic, and Gemini are onboarded by storing an API key. Each provider keeps a set of named keys, so you can hold more than one (for example a personal and a work key) and switch between them. The same four subcommands work for all three:
| Command | What it does |
|---|---|
models providers <provider> add <name> | Opens a masked prompt to paste a key, tests it against the provider, then stores it under <name>. The first key you add becomes the active one. |
models providers <provider> use <name> | Make a stored key the active one. Takes effect immediately, no restart needed. |
models providers <provider> status | List the stored key names and show which is active. |
models providers <provider> remove <name> | Delete a stored key. If it was active, another stored key is promoted automatically. |
To onboard OpenAI, for example:
models providers openai add work # paste a key, store it as 'work'
models providers openai status # confirm 'work' is the active key
The key is pasted into a masked prompt (each character shows as *, like a
password field), verified with a live request to the provider, and only stored
if the test succeeds. Keys are
kept in Rune's local storage, not in your config file, so you never commit a
secret. Anthropic and Gemini work identically; just swap the provider name:
models providers anthropic add work
models providers gemini add work
Codex (Sign in with ChatGPT)
Codex does not use an API key. You sign in to your ChatGPT account and Rune uses that session to reach the ChatGPT Codex backend:
models providers codex login # opens a browser to sign in to ChatGPT
models providers codex status # show the signed-in account and its plan
login opens your browser to complete the OAuth flow, then stores the
resulting credentials locally and refreshes them as needed. Once signed in,
the Codex models appear in the model list like any other provider's.
Claude (Sign in with Claude)
Claude lets Rune Agent use Anthropic models through your Claude Pro or Claude Max subscription. You sign in with Claude; no Anthropic API key is required.
This is different from running Anthropic's standalone Claude Code CLI inside Rune. For the CLI integration, see the Claude Code guide.
Rune has two built-in ways to use Claude-family models:
| Provider | Authentication | Billing / quota |
|---|---|---|
anthropic/... | Anthropic API key | Anthropic API usage |
claude/... | Claude OAuth sign-in | Claude Pro/Max Agent-SDK usage credit |
Use anthropic when you want API-key billing. Use claude when you want to use
your Claude subscription.
To sign in, run:
models providers claude login
Rune opens a browser for the Claude OAuth flow, stores the resulting credential locally, and refreshes it when needed. Check the account and plan with:
models providers claude status
Once authenticated, Claude models appear alongside the rest of your models. Use
the claude/ provider prefix when a model name is ambiguous:
models
model claude/claude-opus-4-6
You can also make a Claude subscription model the default for new chats:
- config.yaml
- config.star
models:
default: "claude/claude-opus-4-6"
"models": {
"default": "claude/claude-opus-4-6",
},
Most users do not need any models.claude config. Authentication is managed by
models providers claude login, not by config files. If you front the Claude
subscription endpoint with a proxy, set a base URL override:
- config.yaml
- config.star
models:
claude:
base_url: "https://claude-proxy.internal"
"models": {
"claude": {"base_url": "https://claude-proxy.internal"},
},
Reasoning effort for Claude-family models is shared with the Anthropic provider,
so configure it under models.anthropic.reasoning_effort.
Claude subscription usage in Rune draws from Claude's Agent-SDK credit, which is separate from your Claude.ai chat limits. If that credit is exhausted, enable usage credits ("extra usage") in your Claude account under Settings > Usage.
Selecting a model
After a provider is authenticated, run models (or agent models) in the
Rune shell to see its models in the list. Because the same
model name can be served by more than one provider, Rune identifies models as
provider/name, for example
openai/gpt-5.4, anthropic/claude-opus-4-6, claude/claude-opus-4-6, or
codex/gpt-5.4. A bare name resolves when only one provider exposes it;
otherwise prefix it with the provider.
Set the default model for new chats in your config:
- config.yaml
- config.star
models:
default: "anthropic/claude-opus-4-6"
"models": {
"default": "anthropic/claude-opus-4-6",
},
You can also switch a focused chat's model with the chatmodel command-prompt
command. See the agent intro for the model-selection
commands.
Configuration
Authentication is managed entirely through the models providers commands
above, so the config file holds no secrets. What you configure under models
is provider behavior: which base URL to talk to, how much the model should
reason, and how reasoning is summarized.
These settings are optional. With a default install and an authenticated
provider, every provider works without any models block at all.
Reasoning effort
OpenAI, Anthropic, and Gemini each take a reasoning_effort that controls how
much the model thinks before answering. Higher effort trades latency and token
cost for more thorough reasoning. The accepted levels are:
none minimal low medium high xhigh max
Not every model supports every level; an unsupported level is adjusted to the nearest one the model accepts. Leave it unset to use the provider's default.
- config.yaml
- config.star
models:
openai:
reasoning_effort: "high"
anthropic:
reasoning_effort: "high"
gemini:
reasoning_effort: "medium"
"models": {
"openai": {"reasoning_effort": "high"},
"anthropic": {"reasoning_effort": "high"},
"gemini": {"reasoning_effort": "medium"},
},
You can also change effort per conversation with /effort in a chat, or set
the default with agent effort <level>.
Reasoning summary
models.reasoning_summary controls how Rune surfaces a reasoning model's
thinking. It applies to OpenAI and Codex and is one of:
| Value | Meaning |
|---|---|
auto | Let the provider choose (the default). |
concise | Show a short summary of the model's reasoning. |
detailed | Show a fuller summary. |
disabled | Do not show reasoning summaries. |
- config.yaml
- config.star
models:
reasoning_summary: "concise"
"models": {
"reasoning_summary": "concise",
},
Base URL overrides
Each provider talks to its standard endpoint out of the box. You can override
the base_url to route through a proxy, gateway, or compatible alternative
endpoint, while still using that provider's authentication and model catalog.
- config.yaml
- config.star
models:
openai:
base_url: "https://openai-proxy.internal/v1"
anthropic:
base_url: "https://anthropic-proxy.internal"
gemini:
base_url: "https://gemini-proxy.internal"
codex:
base_url: "https://codex-proxy.internal"
claude:
base_url: "https://claude-proxy.internal"
"models": {
"openai": {"base_url": "https://openai-proxy.internal/v1"},
"anthropic": {"base_url": "https://anthropic-proxy.internal"},
"gemini": {"base_url": "https://gemini-proxy.internal"},
"codex": {"base_url": "https://codex-proxy.internal"},
"claude": {"base_url": "https://claude-proxy.internal"},
},
Leave base_url unset to use the provider's default. For Codex, the default
is the ChatGPT Codex backend; for Claude, the default is Anthropic's Claude
subscription endpoint using Claude Code-compatible request headers. Override
either only if you front it with a proxy.
To point at a fully self-hosted or third-party OpenAI-compatible server (where you declare your own models and key), use a custom provider instead. Base-URL overrides here keep the built-in provider's authentication and known model catalog.
Configuration reference
| Key | Type | Description |
|---|---|---|
models.default | string | Default model for new chats, as provider/name. |
models.reasoning_summary | string | Reasoning summary level for OpenAI and Codex: auto, concise, detailed, or disabled. |
models.openai.base_url | string | Override the OpenAI API base URL. |
models.openai.reasoning_effort | string | Reasoning effort for OpenAI models. |
models.anthropic.base_url | string | Override the Anthropic API base URL. |
models.anthropic.reasoning_effort | string | Reasoning effort for Anthropic models. |
models.gemini.base_url | string | Override the Gemini API base URL. |
models.gemini.reasoning_effort | string | Reasoning effort for Gemini models. |
models.codex.base_url | string | Override the Codex backend base URL. |
models.claude.base_url | string | Override the Claude subscription backend base URL. |
See also
- Custom Model Provider: connect any OpenAI-compatible endpoint with your own model catalog.
- Local Models: run GGUF models on your own machine with no API key.
- Claude Code: run Anthropic's standalone CLI inside Rune.
- Rune Shell: the
modelscommand and its subcommands.