Models & LLM Keys

Configure multiple LLM providers and API keys. Set per-workspace or per-agent model overrides.

Supported providers

ElasticClaw supports API-key providers and subscription-backed coding providers in the server UI and bootstrap path. Use these provider IDs in llm_keys[].provider and as the prefix in default_model.

ProviderCredentialConfig fieldExample models
anthropicAPI keyapi_key: ${ANTHROPIC_API_KEY}anthropic/claude-sonnet-4-6, anthropic/claude-opus-4-5
codexSubscription loginauth_profile: codex-defaultcodex/gpt-5.5, codex/gpt-5.5-high
grokSubscription loginauth_profile: grok-defaultgrok/grok-build-0.1, grok/grok-4.3
fireworksAPI keyapi_key: ${FIREWORKS_API_KEY}fireworks/accounts/fireworks/models/kimi-k2p6, fireworks/accounts/fireworks/models/llama-v3p3-70b-instruct

Named LLM keys

Instead of a single API key, ElasticClaw uses named LLM keys inhub.yaml. Each key has a provider plus either an API key or an auth profile, and an optional default model. One key can be marked default: true. Configure more than one key when different workspaces should use different providers or accounts.

yaml
llm_keys:
  - name: anthropic-prod
    provider: anthropic
    api_key: ${ANTHROPIC_API_KEY}
    default: true
    default_model: anthropic/claude-sonnet-4-6

  - name: fireworks-kimi
    provider: fireworks
    api_key: ${FIREWORKS_API_KEY}
    default_model: fireworks/accounts/fireworks/models/kimi-k2p6

  - name: codex-chatgpt
    provider: codex
    auth_profile: codex-default
    default_model: codex/gpt-5.5

  - name: grok-build
    provider: grok
    auth_profile: grok-default
    default_model: grok/grok-build-0.1

The default_model field uses the provider/model format (e.g. anthropic/claude-sonnet-4-6).

Fireworks model catalog

Fireworks model choices in the hub are loaded from the Fireworks List Models API when a Fireworks key is configured. The examples on this page are representative only; the dropdown should show the currently available Fireworks models returned by your account.

If a model is not listed yet, choose the custom model option and enter the full Fireworks model ID, such as fireworks/accounts/fireworks/models/....

Codex and Grok subscription logins

Codex and Grok Build are not configured with API tokens. They use the same subscription-backed account login that their coding CLIs use. Your provider subscription controls access, model availability, and usage limits; ElasticClaw only stores the resulting device-login auth profile.

  1. Open Settings → Models in the ElasticClaw hub.
  2. Add a model key and select Codex or Grok Build.
  3. Enter a stable CLI auth profile name, such as codex-default or grok-default.
  4. Click Login, open the device-login URL, and enter the one-time code shown in the hub.
  5. After the profile is saved, choose the default model and save the model key.
Treat subscription auth profiles like secrets. They allow claws using that model key to run under the signed-in subscription account.

How device login works

The hub starts a provider device-login flow and shows the URL plus a one-time code. After you approve the login in the provider's browser flow, the hub stores an opaque model_auth_profiles entry and links it from the named llm_keys entry with auth_profile.

yaml
llm_keys:
  - name: codex-chatgpt
    provider: codex
    auth_profile: codex-default
    default_model: codex/gpt-5.5

model_auth_profiles:
  - name: codex-default
    provider: codex
    mode: device
    auth_state: <managed by the hub login flow>

You normally should not hand-edit auth_state. During claw bootstrap, ElasticClaw restores the saved profile into the sandbox in the format expected by the selected provider CLI.

Server default model

Set a global default model at the server level. All agents use this unless overridden.

yaml
default_model: anthropic/claude-sonnet-4-6

Per-workspace model override

Workspaces can override the default model and specify which LLM key to use:

yaml
# elasticclaw-config.yaml
default_model: fireworks/accounts/fireworks/models/kimi-k2p6
llm_key: fireworks-kimi

If llm_key is set and default_model is empty, ElasticClaw Server resolves the model from the named key's default_model. If nollm_key is set, ElasticClaw Server uses the key marked default: true, then the server-level default_model.