Skip to main content

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:

ProviderSign-inModels
OpenAIAPI keyGPT family
AnthropicAPI keyClaude family
GeminiAPI keyGemini family
CodexSign in with ChatGPT (OAuth)GPT-5 Codex family
ClaudeSign 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.

note

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:

CommandWhat 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> statusList 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:

ProviderAuthenticationBilling / quota
anthropic/...Anthropic API keyAnthropic API usage
claude/...Claude OAuth sign-inClaude 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:

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:

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.

note

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:

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.

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:

ValueMeaning
autoLet the provider choose (the default).
conciseShow a short summary of the model's reasoning.
detailedShow a fuller summary.
disabledDo not show reasoning summaries.
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.

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.

note

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

KeyTypeDescription
models.defaultstringDefault model for new chats, as provider/name.
models.reasoning_summarystringReasoning summary level for OpenAI and Codex: auto, concise, detailed, or disabled.
models.openai.base_urlstringOverride the OpenAI API base URL.
models.openai.reasoning_effortstringReasoning effort for OpenAI models.
models.anthropic.base_urlstringOverride the Anthropic API base URL.
models.anthropic.reasoning_effortstringReasoning effort for Anthropic models.
models.gemini.base_urlstringOverride the Gemini API base URL.
models.gemini.reasoning_effortstringReasoning effort for Gemini models.
models.codex.base_urlstringOverride the Codex backend base URL.
models.claude.base_urlstringOverride the Claude subscription backend base URL.

See also

Ask Rune Agent