Chutes Provider Setup: OAuth, API Keys, and Models

Configure the Chutes provider for OpenClaw using browser OAuth or API keys, with model discovery and aliases. Useful for users connecting OpenAI-compatible open-source model catalogs.

Read this when

  • You want to use Chutes with OpenClaw
  • You need the OAuth or API key setup path
  • You want the default model, aliases, or discovery behavior

Chutes provides catalogs of open-source models via an API that is OpenAI-compatible. Two auth methods are supported by OpenClaw: browser OAuth and API keys.

PropertyValue
Providerchutes
Pluginofficial external package (@openclaw/chutes-provider)
APIOpenAI-compatible
Base URLhttps://llm.chutes.ai/v1
AuthOAuth or API key (see below)
Runtime env varsCHUTES_API_KEY, CHUTES_OAUTH_TOKEN

An OAuth access token you already hold can be passed in through CHUTES_OAUTH_TOKEN (in CI, for instance), which skips the interactive browser flow described below.

Install plugin

openclaw plugins install @openclaw/chutes-provider

If a Gateway is running, installation is applied to it automatically; if not, it takes effect at the next startup. See Apply changes and inspect.

Getting started

Either path registers the Chutes catalog and sets chutes/zai-org/GLM-5.2-TEE as the default model.

OAuth

Run the OAuth onboarding flow

openclaw onboard --auth-choice chutes

On a local machine OpenClaw starts the browser flow itself. On remote or headless hosts it instead presents a URL plus a redirect-paste flow. OAuth tokens are refreshed automatically by OpenClaw auth profiles.

API key

Get an API key

A key can be created at chutes.ai/app/settings/api-keys.

Run the API key onboarding flow

openclaw onboard --auth-choice chutes-api-key

Discovery behavior

Once Chutes auth is in place, OpenClaw calls GET /v1/models using that credential and adopts the models it discovers, cached per credential for 5 minutes. If the credential is rejected, the catalog fails with an authentication error and no anonymous retry is made. Any other request failure yields an unavailable catalog result rather than a successful static list. A successful response that contains no models remains empty. Discovery for API keys and OAuth goes through this same path.

Pricing is taken from the native Chutes model catalog. Its numeric prompt, completion, and cached-input rates are already expressed in USD per million tokens, not as per-token OpenRouter rates. A model cannot be assumed free just because its price metadata is missing or invalid.

With the default models.mode: "merge", fresh onboarding records the provider and its aliases, and does not copy generated model rows or prices into your config. Live prices can therefore refresh without clobbering model costs you authored explicitly. Under models.mode: "replace" discovery is off, so in that mode onboarding keeps the bundled catalog as an explicit offline seed. Model rows you already configured, along with their prices, survive when provider setup is applied again.

Default aliases

Two convenience aliases are registered by OpenClaw for the Chutes catalog:

AliasTarget model
chutes-prochutes/deepseek-ai/DeepSeek-V3.2-TEE
chutes-visionchutes/moonshotai/Kimi-K2.6-TEE

Built-in starter catalog

These current starter models ship in the bundled fallback catalog, together with one compatible prior-generation ref that stays selectable yet is hidden from pickers:

Model refPicker status
chutes/zai-org/GLM-5.2-TEEVisible
chutes/deepseek-ai/DeepSeek-V3.2-TEEVisible
chutes/moonshotai/Kimi-K2.6-TEEVisible
chutes/Qwen/Qwen3.6-27B-TEEVisible
chutes/Qwen/Qwen3.5-397B-A17B-TEEHidden

The full list is available by running openclaw models list --all --provider chutes.

For starter models the native endpoint still lists, fallback prices were refreshed from its August 31, 2026 response. A model that is absent keeps the seed snapshot it had before: absence from the feed by itself neither retires a shipped reference nor alters its picker status. Being listed in metadata does not prove your account is able to invoke a model.

Config example

{
  agents: {
    defaults: {
      model: { primary: "chutes/zai-org/GLM-5.2-TEE" },
      models: {
        "chutes/zai-org/GLM-5.2-TEE": { alias: "Chutes GLM 5.2" },
        "chutes/deepseek-ai/DeepSeek-V3.2-TEE": { alias: "Chutes DeepSeek V3.2" },
      },
    },
  },
}

OAuth overrides

The OAuth flow can be customized with these optional environment variables:

VariablePurpose
CHUTES_CLIENT_IDOAuth client id (prompted if unset)
CHUTES_CLIENT_SECRETOAuth client secret
CHUTES_OAUTH_REDIRECT_URIRedirect URI (default http://127.0.0.1:1456/oauth-callback)
CHUTES_OAUTH_SCOPESSpace-separated scopes (default openid profile chutes:invoke)

Redirect-app requirements and further help are covered in the Chutes OAuth docs.

Notes

  • Chutes models get registered as chutes/<model-id>.
  • While streaming, Chutes does not report token usage (supportsUsageInStreaming: false); the usage totals appear only after the stream finishes.
769 words · updated Oct 25, 2026