Skip to main content
Use CometAPI as the model provider for OpenClaw — 500+ models in one API.

Prerequisites

  • Node.js ≥ 22 — recommended via nvm
  • A CometAPI account with an active API key — get yours here

Installation

1

Get your CometAPI API key

Log in to the CometAPI console. Click Add API Key and copy your CometAPI API key.
CometAPI dashboard showing the Add API Key button
CometAPI API key details with base URL
2

Install or update OpenClaw

Recommended — use the official installer:
curl -fsSL https://openclaw.ai/install.sh | bash
Or install via npm:
npm install -g openclaw@latest
Then run the setup wizard once:
openclaw onboard --install-daemon
During onboarding, choose Skip in the Model/Auth step if you want to configure CometAPI manually. After onboarding, confirm the gateway is running:
openclaw gateway status
openclaw dashboard

Configuration

1

Store your CometAPI key

Write your key to ~/.openclaw/.env so it is available to the daemon without being hardcoded in config files:
printf 'COMETAPI_KEY=%s\n' "$COMETAPI_KEY" >> ~/.openclaw/.env
chmod 600 ~/.openclaw/.env
If you already inject COMETAPI_KEY through your shell, service manager, or a secrets workflow, skip this step — the config below uses $\{COMETAPI_KEY\} regardless of how the variable is set.
2

Configure CometAPI providers

CometAPI supports four API formats. Add one or more provider blocks to ~/.openclaw/openclaw.json:
ProviderAPI FormatEndpoint calledBase URL
cometapi-openaiopenai-completionsPOST /v1/chat/completionshttps://api.cometapi.com/v1
cometapi-openai-responsesopenai-responsesPOST /v1/responseshttps://api.cometapi.com/v1
cometapi-claudeanthropic-messagesPOST /messageshttps://api.cometapi.com
cometapi-googlegoogle-generative-aiPOST /v1beta/...https://api.cometapi.com/v1beta
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "cometapi-claude/your-claude-model-id"
      }
    }
  },
  "models": {
    "mode": "merge",
    "providers": {
      "cometapi-openai": {
        "baseUrl": "https://api.cometapi.com/v1",
        "apiKey": "${COMETAPI_KEY}",
        "api": "openai-completions",
        "models": [{ "id": "your-chat-model-id", "name": "OpenAI-compatible text model" }]
      },
      "cometapi-openai-responses": {
        "baseUrl": "https://api.cometapi.com/v1",
        "apiKey": "${COMETAPI_KEY}",
        "api": "openai-responses",
        "models": [{ "id": "your-responses-model-id", "name": "Responses API model" }]
      },
      "cometapi-claude": {
        "baseUrl": "https://api.cometapi.com",
        "apiKey": "${COMETAPI_KEY}",
        "api": "anthropic-messages",
        "models": [{ "id": "your-claude-model-id", "name": "Claude family model" }]
      },
      "cometapi-google": {
        "baseUrl": "https://api.cometapi.com/v1beta",
        "apiKey": "${COMETAPI_KEY}",
        "api": "google-generative-ai",
        "models": [{ "id": "your-gemini-model-id", "name": "Gemini family model" }]
      }
    }
  }
}
You can keep only the providers you need, or keep all four to route between formats using provider/model references.Replace each your-...-model-id placeholder with a current model ID from the CometAPI Models page that matches the provider block.
Use cometapi-openai-responses (api: "openai-responses") for models that require the OpenAI Responses API. Use cometapi-openai (api: "openai-completions") for models on the classic Chat Completions path. Both share the same baseUrl (https://api.cometapi.com/v1); the only difference is which downstream endpoint OpenClaw calls.
The auth-profiles.json file is not required for this setup. Provider keys are resolved from models.providers.*.apiKey via the $\{COMETAPI_KEY\} env var. auth-profiles.json is only needed if you want per-profile credential rotation across multiple keys.

Verification

1

Restart and verify

Restart the gateway after adding .env or changing provider config:
openclaw gateway restart
Then run diagnostics:
openclaw models status
openclaw models list --provider cometapi-claude
openclaw doctor
A successful setup looks like:
  • openclaw models status resolves the primary model to cometapi-claude/your-claude-model-id with no missing-auth warnings for CometAPI providers
  • openclaw models list --provider cometapi-claude lists your configured models
  • openclaw doctor reports no config or auth errors for CometAPI providers
OpenClaw models status showing CometAPI providers authenticated

Switch models

1

Switch models

# Set the default model in config
openclaw models set cometapi-claude/your-claude-model-id

# Switch for the current chat session
/model cometapi-openai/your-chat-model-id
/model cometapi-openai-responses/your-responses-model-id
/model cometapi-claude/your-claude-model-id
/model cometapi-google/your-gemini-model-id

Troubleshooting

If you are fixing a broken older setup, stop the gateway, remove ~/.openclaw, then rerun onboarding before applying the CometAPI config:
openclaw gateway stop
rm -rf ~/.openclaw
openclaw onboard --install-daemon
This removes all local config, sessions, logs, auth state, and workspaces. Then follow Steps 3–5 again.