Coding Agents

OpenClaw setup with Thalam

Install OpenClaw, paste your Thalam API key, and ship in under a minute. Claude, GPT, Gemini, DeepSeek, Qwen, Kling, Sora, and more — through one OpenAI-compatible endpoint. Pay per token. No lock-in.

Download SKILL.md

Setup in three steps

OpenClaw reads its config from ~/.openclaw/openclaw.json (Mac/Linux) or C:\Users\<you>\.openclaw\openclaw.json (Windows).

1

Sign up

Create a THALAM account and copy your API key from the dashboard. No credit card required.

2

Merge the snippet

Open openclaw.json (run "openclaw onboard" first if it doesn't exist) and merge the snippet below — the models block at the top level, plus the model.primary and models allowlist under agents.defaults.

3

Validate + restart

Run "openclaw config validate" to catch JSON errors, then "openclaw gateway restart" so the new provider takes effect.

openclaw.json
{
  "models": {
    "mode": "merge",
    "providers": {
      "thalam": {
        "baseUrl": "https://api.thalam.ai/v1",
        "apiKey": "tl-live-...",
        "api": "openai-completions",
        "models": [
          {
            "id": "anthropic/claude-sonnet-4.6",
            "name": "Claude Sonnet 4.6 (THALAM)",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": { "input": 0.003, "output": 0.015, "cacheRead": 0, "cacheWrite": 0 },
            "contextWindow": 200000,
            "maxTokens": 8192
          },
          {
            "id": "deepseek/deepseek-v3.2",
            "name": "DeepSeek V3.2 (THALAM)",
            "reasoning": false,
            "input": ["text"],
            "cost": { "input": 0.00027, "output": 0.0011, "cacheRead": 0, "cacheWrite": 0 },
            "contextWindow": 128000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "thalam/anthropic/claude-sonnet-4.6"
      },
      "models": {
        "thalam/anthropic/claude-sonnet-4.6": {},
        "thalam/deepseek/deepseek-v3.2": {}
      }
    }
  }
}

Replace tl-live-... with your real key. To add more models, append to both the provider's models array AND the agents.defaults.models allowlist — OpenClaw refuses to route to undeclared models. Browse available ids on the (format is <provider>/<model>; the OpenClaw-side prefix is thalam/).

Verify it works

Open a new OpenClaw session and ask it anything. If you see a streamed reply, you're done. To confirm the model is being routed through THALAM, ask:

Which model are you and which provider is serving you?

Common gotchas

Three issues that account for almost every "it validated but nothing happens" report.

"Unrecognized key: name" on validate

You wrote a name field at the provider level (older docs showed it). The current schema doesn't accept it — the display name lives inside each entry of the models array, not on the provider. Match the snippet above exactly.

Model missing from picker / silent refusal

You added the model to models.providers.thalam.models but forgot the matching entry in agents.defaults.models. OpenClaw enforces a per-agent allowlist — both lists need the model id.

"[assistant turn failed]" with no detail

The Control UI hides upstream errors. Run openclaw logs --follow in another terminal and retry — the real error (auth, network, schema) appears in the log. After any config change run openclaw gateway restart; provider changes don't hot-reload.


Want smarter routing? Install the skill.

The official THALAM SKILL.md teaches OpenClaw to auto-pick the best model for each task — flagship for hard reasoning, cheap open-weight for high volume, coding-tuned for engineering, vision-capable for OCR. Drop it into your skills folder and let the agent decide.

Download SKILL.md

Why use THALAM with OpenClaw

OpenClaw runs locally; the bottleneck is which models you can reach. THALAM removes that.

Every leading model, one key

Claude, GPT, Gemini, DeepSeek, Qwen, Kimi, Llama, Mistral, GLM, MiniMax — text, coding, vision, image, video, speech, music, embeddings. Switch by changing one string.

Pick the right model for each call

Route high-volume traffic to open-weight models like Qwen3 or DeepSeek V3.2, and reserve Claude or GPT for the calls that actually need them. Same key, same SDK.

No lock-in, no minimums

Pay only for what you use. Drop THALAM and switch back to provider-direct any time. The OpenClaw config stays the same — just point baseUrl elsewhere.

Multimodal in one place

OpenClaw tasks aren't just chat. Generate images with FLUX or Imagen, video with Veo or Sora, voice with ElevenLabs, transcription with Whisper — all from the same OpenAI-compatible endpoint.


Frequently asked questions

What developers ask before wiring Thalam into OpenClaw.

Do I need an API key to use OpenClaw with Thalam?

?

Yes. OpenClaw runs locally, but the models live behind a provider. To route OpenClaw through Thalam, create a free Thalam account, copy your API key from the dashboard, and paste it into the openclaw.json snippet above. No credit card required to create the key — you only pay when you make requests.

How do I install OpenClaw and connect it to Thalam?

?

Three steps. (1) Install OpenClaw with the one-line installer for Mac or Windows. (2) Sign up at thalam.ai and copy your tl-live-... key. (3) Merge the provider block above into ~/.openclaw/openclaw.json, then run openclaw config validate and openclaw gateway restart. Full beginner walkthrough is linked at the top of this page.

Is Thalam OpenAI-compatible?

?

Yes. Thalam exposes an OpenAI-compatible base URL at https://api.thalam.ai/v1, so OpenClaw treats it the same way it treats the OpenAI provider — just with a different baseUrl and apiKey. Every model Thalam routes to (Claude, Gemini, DeepSeek, Qwen and more) is reachable through the same OpenAI Chat Completions interface.

Can I use Thalam with OpenClaw on Mac and Windows?

?

Both. OpenClaw runs natively on macOS and Windows; the openclaw.json config file lives at ~/.openclaw/openclaw.json on Mac and C:\Users\<you>\.openclaw\openclaw.json on Windows. The Thalam provider snippet is identical on both — only the file path differs.

Can I switch models without changing my OpenClaw code?

?

Yes. Add as many model ids as you want to the provider's models array (and the matching agents.defaults.models allowlist), then pick from OpenClaw's model picker at runtime. Switching between Claude, GPT, DeepSeek or any other Thalam-routed model is a config change, not a code change.

Plug in. Pick a model. Ship.

Get an API key in under a minute. No credit card required.