---
title: OpenClaw
---


[OpenClaw](https://openclaw.ai) is an open-source AI assistant platform that brings conversational AI into Telegram, Discord, Slack, and other messaging channels. It supports custom OpenAI-compatible providers, so a bit of config gets you onto the CrossModel catalog.

## Quickstart

### 1. Install OpenClaw

```bash
curl -fsSL https://openclaw.ai/install.sh | bash
```

Or install with npm (requires Node.js 22+):

```bash
npm install -g openclaw@latest
```

### 2. Create an API key

Sign in to the [Console](/console/api-keys) and create a key that starts with `cm-` on the **API Keys** page. The key is shown only once, so copy it somewhere safe.

### 3. Point OpenClaw at CrossModel

CrossModel isn't a built-in OpenClaw provider, so wire it up as a custom OpenAI-compatible one. Edit `~/.openclaw/openclaw.json`:

```json
{
  "models": {
    "mode": "merge",
    "providers": {
      "crossmodel": {
        "baseUrl": "https://api.crossmodel.ai/v1",
        "apiKey": "cm-YOUR_KEY",
        "api": "openai-completions",
        "models": [
          { "id": "deepseek/deepseek-v4-pro", "name": "DeepSeek V4 Pro" }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": { "primary": "crossmodel/deepseek/deepseek-v4-pro" }
    }
  }
}
```

### 4. Start the gateway

```bash
openclaw gateway run
```

On first use you can also run `openclaw onboard` and let the wizard walk you through channels and skills.

## How it works

`models.providers.crossmodel` defines a custom provider: `api` is set to `openai-completions` so requests use the OpenAI-compatible format, `baseUrl` points at CrossModel, and `apiKey` handles auth.

`agents.defaults.model.primary` references a model as `provider/model-id` — so `crossmodel/deepseek/deepseek-v4-pro` means "the `deepseek/deepseek-v4-pro` model under the `crossmodel` provider".

## Choosing models

Each model you want to use goes into the `providers.crossmodel.models` array, with `id` in `vendor/short_name` format. When you reference it under `agents`, prefix it with `crossmodel/`. See the full list in the [model catalog](/models).

## Troubleshooting

| Symptom | What to check |
|---------|---------------|
| "Missing API key" | Confirm the `apiKey` on the `crossmodel` provider in `openclaw.json` is a valid `cm-` key. |
| Auth failure (401/403) | Check that the key is valid and your account has balance. |
| Model fails to load | Verify the `id` values in `models` and the `crossmodel/...` references under `agents`. |
| Config not applied | Make sure `openclaw.json` is valid JSON, and restart the gateway after editing. |
