OpenClaw

更新时间:
复制 MD 格式

OpenClaw is an open source personal AI assistant platform that lets you interact with AI through various messaging channels. You can configure it to access AI models from Alibaba Cloud Model Studio. It supports four access methods: pay-as-you-go, Coding Plan, Token Plan Personal Edition, and Token Plan Team Edition.

Install OpenClaw

OpenClaw requires Node.js 22.19.0 or later. To check your version:

node --version

If Node.js is not installed or your version is older than 22.19.0, download and install it from the Node.js official website.

macOS / Linux

We recommend using the official installation script:

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

Alternatively, install it globally using npm:

npm install -g openclaw@latest

Windows

In PowerShell:

iwr -useb https://openclaw.ai/install.ps1 | iex

Alternatively, install it globally using npm:

npm install -g openclaw@latest

After installation, OpenClaw automatically starts the configuration wizard. You can also run openclaw onboard to configure it manually.

Parameter

Recommendation

I understand this is powerful and inherently risky. Continue?

Select Yes

Onboarding mode

Select QuickStart

Model/auth provider

Select Skip for now (you can configure a Model Studio model later)

Filter models by provider

Select All providers

Default model

Select Keep current

Select channel (QuickStart)

Select Skip for now (you can configure a channel later)

Configure skills now? (recommended)

Select No

Enable hooks?

Press the Spacebar to select an option, then press Enter.

How do you want to hatch your bot?

Select Do this later

Configure access credentials

Token Plan Personal Edition

Item

Description

API Key

Dedicated API Key for the Token Plan Personal Edition

Base URL

https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic

Available models

All models included in the Token Plan Personal Edition

The configuration file is located at ~/.openclaw/openclaw.json. OpenClaw automatically reads this file on startup.

Note

The example disables gateway authentication (auth.mode: none), suitable only for single-machine local use. For shared or remote access, run openclaw doctor --fix to enable token authentication.

For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your API Key for the Token Plan Personal Edition.

For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

{
  "meta": {
    "lastTouchedVersion": "2026.2.1",
    "lastTouchedAt": "2026-02-03T08:20:00.000Z"
  },
  "models": {
    "mode": "merge",
    "providers": {
      "bailian-token-plan": {
        "baseUrl": "https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",
        "apiKey": "YOUR_API_KEY",
        "api": "anthropic-messages",
        "models": [
          {
            "id": "qwen3.8-max",
            "name": "qwen3.8-max",
            "reasoning": true,
            "input": ["text", "image"],
            "contextWindow": 983616,
            "maxTokens": 131072,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "compat": { "thinkingFormat": "openai" }
          },          {
            "id": "qwen3.7-max",
            "name": "qwen3.7-max",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 1000000,
            "maxTokens": 65536,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "compat": { "thinkingFormat": "openai" }
          },
          {
            "id": "qwen3.7-plus",
            "name": "qwen3.7-plus",
            "reasoning": false,
            "input": ["text", "image"],
            "contextWindow": 1000000,
            "maxTokens": 65536,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "compat": { "thinkingFormat": "openai" }
          },
          {
            "id": "qwen3.6-flash",
            "name": "qwen3.6-flash",
            "reasoning": false,
            "input": ["text", "image"],
            "contextWindow": 1000000,
            "maxTokens": 32768,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "compat": { "thinkingFormat": "openai" }
          },
          {
            "id": "glm-5.2",
            "name": "glm-5.2",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 1000000,
            "maxTokens": 16384,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
            "compat": { "thinkingFormat": "openai" }
          },
          {
            "id": "deepseek-v4-pro",
            "name": "deepseek-v4-pro",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 163840,
            "maxTokens": 32768,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
          },
          {
            "id": "deepseek-v4-pro-0813",
            "name": "deepseek-v4-pro-0813",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 163840,
            "maxTokens": 32768,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
          },
          {
            "id": "deepseek-v4-flash-0731",
            "name": "deepseek-v4-flash-0731",
            "reasoning": false,
            "input": ["text"],
            "contextWindow": 1000000,
            "maxTokens": 393216,
            "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "bailian-token-plan/qwen3.8-max"
      },
      "models": {
        "bailian-token-plan/qwen3.8-max": {},        "bailian-token-plan/qwen3.7-max": {},
        "bailian-token-plan/qwen3.7-plus": {},
        "bailian-token-plan/qwen3.6-flash": {},
        "bailian-token-plan/glm-5.2": {},
        "bailian-token-plan/deepseek-v4-pro": {},
        "bailian-token-plan/deepseek-v4-pro-0813": {},
        "bailian-token-plan/deepseek-v4-flash-0731": {}
      }
    }
  },
  "gateway": {
    "mode": "local",
    "auth": { "mode": "none" }
  }
}

Token Plan Team Edition

Item

Description

API Key

Dedicated API Key for the Token Plan Team Edition

Base URL

https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic

Available models

All models included in the Token Plan Team Edition

The configuration file is located at ~/.openclaw/openclaw.json. OpenClaw automatically reads this file on startup.

Note

The example disables gateway authentication (auth.mode: none), suitable only for single-machine local use. For shared or remote access, run openclaw doctor --fix to enable token authentication.

Method 1: Terminal

  1. Open the configuration file

    nano ~/.openclaw/openclaw.json
  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your API Key for the Token Plan Team Edition.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian-token-plan": {
            "baseUrl": "https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.8-max",
                "name": "qwen3.8-max",
                "reasoning": true,
                "input": ["text", "image"],
                "contextWindow": 983616,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },          {
                "id": "qwen3.7-max",
                "name": "qwen3.7-max",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-flash",
                "name": "qwen3.6-flash",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "deepseek-v4-pro",
                "name": "deepseek-v4-pro",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-pro-0813",
                "name": "deepseek-v4-pro-0813",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-flash",
                "name": "deepseek-v4-flash",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-flash-0731",
                "name": "deepseek-v4-flash-0731",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 393216,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v3.2",
                "name": "deepseek-v3.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.7-code",
                "name": "kimi-k2.7-code",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.6",
                "name": "kimi-k2.6",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.5",
                "name": "kimi-k2.5",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5.2",
                "name": "glm-5.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5.1",
                "name": "glm-5.1",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian-token-plan/qwen3.8-max"
          },
          "models": {
            "bailian-token-plan/qwen3.8-max": {},        "bailian-token-plan/qwen3.7-max": {},
            "bailian-token-plan/qwen3.7-plus": {},
            "bailian-token-plan/qwen3.6-plus": {},
            "bailian-token-plan/qwen3.6-flash": {},
            "bailian-token-plan/deepseek-v4-pro": {},
            "bailian-token-plan/deepseek-v4-pro-0813": {},
            "bailian-token-plan/deepseek-v4-flash": {},
            "bailian-token-plan/deepseek-v4-flash-0731": {},
            "bailian-token-plan/deepseek-v3.2": {},
            "bailian-token-plan/kimi-k2.7-code": {},
            "bailian-token-plan/kimi-k2.6": {},
            "bailian-token-plan/kimi-k2.5": {},
            "bailian-token-plan/glm-5.2": {},
            "bailian-token-plan/glm-5.1": {},
            "bailian-token-plan/glm-5": {},
            "bailian-token-plan/MiniMax-M2.5": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save and exit

    Press Ctrl+X, press Y to confirm saving, and then press Enter to confirm the file name.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Method 2: Web UI

  1. Start the Web UI

    In your terminal, run the following command to start the Web UI:

    openclaw dashboard

    In the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.

  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your API Key for the Token Plan Team Edition.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian-token-plan": {
            "baseUrl": "https://token-plan.cn-beijing.maas.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.8-max",
                "name": "qwen3.8-max",
                "reasoning": true,
                "input": ["text", "image"],
                "contextWindow": 983616,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },          {
                "id": "qwen3.7-max",
                "name": "qwen3.7-max",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-flash",
                "name": "qwen3.6-flash",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "deepseek-v4-pro",
                "name": "deepseek-v4-pro",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-pro-0813",
                "name": "deepseek-v4-pro-0813",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-flash",
                "name": "deepseek-v4-flash",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v4-flash-0731",
                "name": "deepseek-v4-flash-0731",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 393216,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "deepseek-v3.2",
                "name": "deepseek-v3.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.7-code",
                "name": "kimi-k2.7-code",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 32768,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.6",
                "name": "kimi-k2.6",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "kimi-k2.5",
                "name": "kimi-k2.5",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5.2",
                "name": "glm-5.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5.1",
                "name": "glm-5.1",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian-token-plan/qwen3.8-max"
          },
          "models": {
            "bailian-token-plan/qwen3.8-max": {},        "bailian-token-plan/qwen3.7-max": {},
            "bailian-token-plan/qwen3.7-plus": {},
            "bailian-token-plan/qwen3.6-plus": {},
            "bailian-token-plan/qwen3.6-flash": {},
            "bailian-token-plan/deepseek-v4-pro": {},
            "bailian-token-plan/deepseek-v4-pro-0813": {},
            "bailian-token-plan/deepseek-v4-flash": {},
            "bailian-token-plan/deepseek-v4-flash-0731": {},
            "bailian-token-plan/deepseek-v3.2": {},
            "bailian-token-plan/kimi-k2.7-code": {},
            "bailian-token-plan/kimi-k2.6": {},
            "bailian-token-plan/kimi-k2.5": {},
            "bailian-token-plan/glm-5.2": {},
            "bailian-token-plan/glm-5.1": {},
            "bailian-token-plan/glm-5": {},
            "bailian-token-plan/MiniMax-M2.5": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save the configuration

    In the Web UI configuration page, click the save button to complete the configuration.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Coding Plan

Item

Description

API Key

Dedicated API Key for the Coding Plan, in the format sk-sp-xxxxx

Base URL

https://coding.dashscope.aliyuncs.com/apps/anthropic

Available models

All models included in the Coding Plan

The configuration file is located at ~/.openclaw/openclaw.json. OpenClaw automatically reads this file on startup.

Note

The example disables gateway authentication (auth.mode: none), suitable only for single-machine local use. For shared or remote access, run openclaw doctor --fix to enable token authentication.

Method 1: Terminal

  1. Open the configuration file

    nano ~/.openclaw/openclaw.json
  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your Coding Plan API Key.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian-coding-plan": {
            "baseUrl": "https://coding.dashscope.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.5-plus",
                "name": "qwen3.5-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3-max-2026-01-23",
                "name": "qwen3-max-2026-01-23",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 262144,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3-coder-next",
                "name": "qwen3-coder-next",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 262144,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "qwen3-coder-plus",
                "name": "qwen3-coder-plus",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-4.7",
                "name": "glm-4.7",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "kimi-k2.5",
                "name": "kimi-k2.5",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian-coding-plan/qwen3.7-plus"
          },
          "models": {
            "bailian-coding-plan/qwen3.7-plus": {},
            "bailian-coding-plan/qwen3.6-plus": {},
            "bailian-coding-plan/qwen3.5-plus": {},
            "bailian-coding-plan/qwen3-max-2026-01-23": {},
            "bailian-coding-plan/qwen3-coder-next": {},
            "bailian-coding-plan/qwen3-coder-plus": {},
            "bailian-coding-plan/MiniMax-M2.5": {},
            "bailian-coding-plan/glm-5": {},
            "bailian-coding-plan/glm-4.7": {},
            "bailian-coding-plan/kimi-k2.5": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save and exit

    Press Ctrl+X, press Y to confirm saving, and then press Enter to confirm the file name.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Method 2: Web UI

  1. Start the Web UI

    In your terminal, run the following command to start the Web UI:

    openclaw dashboard

    In the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.

  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your Coding Plan API Key.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian-coding-plan": {
            "baseUrl": "https://coding.dashscope.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.5-plus",
                "name": "qwen3.5-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3-max-2026-01-23",
                "name": "qwen3-max-2026-01-23",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 262144,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3-coder-next",
                "name": "qwen3-coder-next",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 262144,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "qwen3-coder-plus",
                "name": "qwen3-coder-plus",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "glm-4.7",
                "name": "glm-4.7",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "kimi-k2.5",
                "name": "kimi-k2.5",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 262144,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian-coding-plan/qwen3.7-plus"
          },
          "models": {
            "bailian-coding-plan/qwen3.7-plus": {},
            "bailian-coding-plan/qwen3.6-plus": {},
            "bailian-coding-plan/qwen3.5-plus": {},
            "bailian-coding-plan/qwen3-max-2026-01-23": {},
            "bailian-coding-plan/qwen3-coder-next": {},
            "bailian-coding-plan/qwen3-coder-plus": {},
            "bailian-coding-plan/MiniMax-M2.5": {},
            "bailian-coding-plan/glm-5": {},
            "bailian-coding-plan/glm-4.7": {},
            "bailian-coding-plan/kimi-k2.5": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save the configuration

    In the Web UI configuration page, click the save button to complete the configuration.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Pay-as-you-go

Item

Description

API Key

Model Studio API Key, in the format sk-xxxxx

Base URL

Ensure your Base URL, API Key, and model all correspond to the same region:

  • China (Beijing): https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/apps/anthropic

  • Singapore: https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/apps/anthropic. Replace WorkspaceId with your actual Get the Workspace ID.

Available models

All models available in the Model Market

The configuration file is located at ~/.openclaw/openclaw.json. OpenClaw automatically reads this file on startup. The following examples use the China (Beijing) region. If you use a different region, replace the baseUrl with the corresponding URL from the table above.

Note

The example disables gateway authentication (auth.mode: none), suitable only for single-machine local use. For shared or remote access, run openclaw doctor --fix to enable token authentication.

Method 1: Terminal

  1. Open the configuration file

    nano ~/.openclaw/openclaw.json
  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your Model Studio API Key.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian": {
            "baseUrl": "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "deepseek-v3.2",
                "name": "deepseek-v3.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian/qwen3.6-plus"
          },
          "models": {
            "bailian/qwen3.6-plus": {},
            "bailian/MiniMax-M2.5": {},
            "bailian/glm-5": {},
            "bailian/deepseek-v3.2": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save and exit

    Press Ctrl+X, press Y to confirm saving, and then press Enter to confirm the file name.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Method 2: Web UI

  1. Start the Web UI

    In your terminal, run the following command to start the Web UI:

    openclaw dashboard

    In the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.

  2. Add the configuration

    For a new configuration: Copy the following content into the configuration file. Replace YOUR_API_KEY with your Model Studio API Key.

    For an existing configuration: To preserve your current settings, do not replace the entire file content. See How to safely modify an existing configuration.

    {
      "meta": {
        "lastTouchedVersion": "2026.2.1",
        "lastTouchedAt": "2026-02-03T08:20:00.000Z"
      },
      "models": {
        "mode": "merge",
        "providers": {
          "bailian": {
            "baseUrl": "https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/apps/anthropic",
            "apiKey": "YOUR_API_KEY",
            "api": "anthropic-messages",
            "models": [
              {
                "id": "qwen3.7-plus",
                "name": "qwen3.7-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "qwen3.6-plus",
                "name": "qwen3.6-plus",
                "reasoning": false,
                "input": ["text", "image"],
                "contextWindow": 1000000,
                "maxTokens": 65536,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "MiniMax-M2.5",
                "name": "MiniMax-M2.5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 204800,
                "maxTokens": 131072,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 }
              },
              {
                "id": "glm-5",
                "name": "glm-5",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 202752,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              },
              {
                "id": "deepseek-v3.2",
                "name": "deepseek-v3.2",
                "reasoning": false,
                "input": ["text"],
                "contextWindow": 163840,
                "maxTokens": 16384,
                "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
                "compat": { "thinkingFormat": "openai" }
              }
            ]
          }
        }
      },
      "agents": {
        "defaults": {
          "model": {
            "primary": "bailian/qwen3.6-plus"
          },
          "models": {
            "bailian/qwen3.6-plus": {},
            "bailian/MiniMax-M2.5": {},
            "bailian/glm-5": {},
            "bailian/deepseek-v3.2": {}
          }
        }
      },
      "gateway": {
        "mode": "local",
        "auth": { "mode": "none" }
      }
    }
  3. Save the configuration

    In the Web UI configuration page, click the save button to complete the configuration.

  4. Apply the configuration

    To apply the changes, restart the gateway with the following command:

    openclaw gateway restart

Connect to message channels

DingTalk

Step 1: Create a DingTalk application

  1. Select or create an organization

    1. Log in to the DingTalk Open Platform, select an organization for which you have developer permissions, or select an organization and then obtain developer permissions.

    2. If you do not have developer permissions, create a new organization. You can use the DingTalk mobile app to scan the QR code below to quickly create one.

  2. Create a DingTalk bot application

    1. Sign in to the DingTalk Open Platform. In the top menu bar, select Application Development.

    2. Click Create Application. Enter an application name (e.g., "AI Assistant") and description, and then click Save. You will be redirected to the application details page.

    3. On the Add Application Capabilities page, add a Bot.

    4. Configure the bot:

      • Enable the Bot Configuration switch.

      • Fill in the bot name and other required fields.

      • For message receiving mode, keep the default Stream mode.

      • Click Publish.

  3. Get application credentials

    In the left navigation pane, click Credentials and Basic Information to get the Client ID and Client Secret, which you will need for deployment.

  4. Publish the application

    1. In the left navigation pane of the application details page, click Version Management and Release.

    2. Click Create New Version and enter a version number, such as 1.0.0.

    3. Set the visibility range, for example, to Visible only to me.

    4. Click Save, and then confirm the publication.

Step 2: Install the DingTalk channel plugin

Note

If you deploy OpenClaw using the Simple Application Server deployment solution or the Elastic Desktop Service deployment solution, the plugin is typically pre-installed.

  1. Install the DingTalk channel plugin:

    openclaw plugins install @soimy/dingtalk
  2. Confirm the plugin is loaded:

    openclaw plugins list

    The output should include the dingtalk plugin with a status of loaded.

Step 3: Configure the DingTalk channel

Note

If you deploy OpenClaw using the Simple Application Server deployment solution or the Elastic Desktop Service deployment solution, you can typically configure these settings in the graphical user interface.

Add the channels and plugins.allow configurations to ~/.openclaw/openclaw.json. Replace YOUR_DINGTALK_APPKEY and YOUR_DINGTALK_APPSECRET with the credentials that you obtained in Step 1. Add channels and plugins to the corresponding locations in the existing configuration file, and do not overwrite existing configurations such as models and agents.

Note

If you deploy OpenClaw using Simple Application Server or Elastic Desktop Service, you can typically configure these settings in the graphical user interface. For details, see the documentation for the respective product.

{
  "channels": {
    "dingtalk": {
      "enabled": true,
      "clientId": "YOUR_DINGTALK_APPKEY",
      "clientSecret": "YOUR_DINGTALK_APPSECRET",
      "robotCode": "YOUR_DINGTALK_APPKEY",
      "dmPolicy": "open",
      "groupPolicy": "open",
      "messageType": "markdown"
    }
  },
  "plugins": {
    "allow": ["dingtalk"],
    "entries": {
      "dingtalk": {
        "enabled": true
      }
    }
  }
}

In the preceding configuration, both dmPolicy and groupPolicy are set to open, which is suitable for testing or personal use. In a production environment, we recommend setting these to allowlist to restrict access to specific users and groups to reduce security risks.

To switch to allowlist mode, change dmPolicy and groupPolicy to "allowlist", and add the allowFrom field with the employee IDs and group IDs that are allowed to access. Example:

"dmPolicy": "allowlist",
"groupPolicy": "allowlist",
"allowFrom": ["your-employee-id", "group-id"]

Step 4: Test

  1. Restart the gateway:

    openclaw gateway restart
  2. Check the DingTalk channel status:

    openclaw status

    In the Channels section, DingTalk should be ON with a status of OK - configured.

  3. Find your bot in a DingTalk group chat and send it a message to test the connection.

Lark

Step 1: Create a Lark application

  1. Go to the Lark Open Platform and click Create Custom Enterprise App. Enter an application name and description, select an application icon, and then click Create.

  2. In the left navigation pane, click Credentials and Basic Information and copy the App ID (in the format cli_xxx) and App Secret.

  3. In the left navigation pane, click permission management. Click Batch Import/Export Permissions, paste the following JSON configuration, click Next, Confirm New Permissions, and then click Apply for Activation.

    JSON Configuration Content

    {
      "scopes": {
        "tenant": [
          "aily:file:read",
          "aily:file:write",
          "application:application.app_message_stats.overview:readonly",
          "application:application:self_manage",
          "application:bot.menu:write",
          "cardkit:card:write",
          "contact:user.employee_id:readonly",
          "corehr:file:download",
          "docs:document.content:read",
          "event:ip_list",
          "im:chat",
          "im:chat.access_event.bot_p2p_chat:read",
          "im:chat.members:bot_access",
          "im:message",
          "im:message.group_at_msg:readonly",
          "im:message.group_msg",
          "im:message.p2p_msg:readonly",
          "im:message:readonly",
          "im:message:send_as_bot",
          "im:resource",
          "sheets:spreadsheet",
          "wiki:wiki:readonly"
        ],
        "user": ["aily:file:read", "aily:file:write", "im:chat.access_event.bot_p2p_chat:read"]
      }
    }
  4. In the left navigation pane, click , select the Add by Capability tab, find the Robot card, and click Configure.

  5. Configure event subscriptions.

    1. In the left navigation pane of the Lark Open Platform, click Events & Callbacks. On the Event Configuration tab, under Subscription Method, select Use long-lived connection to receive events, and then click Save.

    2. On the event configuration page, click Add Event, search for the event im.message.receive_v1 (Receive Message), and then click Confirm Add.

  6. On the Version Management and Release page, create a new version. Enter the Application Version Number and Update Description, click Save, and then submit for review and publish.

Step 2: Configure the Lark bot

  1. Configure the Lark channel:

    openclaw channels add

    Follow the interactive prompts to complete the configuration.

    • Select Lark.

    • Enter the App ID.

    • Enter the App Secret.

    After the configuration is complete, restart the gateway.

  2. Test the connection by mentioning the @bot in the group or sending it a direct message.

  3. To add the bot to a group chat, go to Settings.

  4. Click the bot's avatar and then click Send Message to start a direct message. The bot will reply with a message containing a pairing code.

  5. Copy the last line of the reply and send it in your OpenClaw chat. OpenClaw will then complete the pairing with the Lark bot.

Step 3: Test

  1. Restart the gateway:

    openclaw gateway restart
  2. Check the Lark channel status:

    openclaw status

    In the Channels section, Lark should be ON with a status of OK.

  3. Send a message in Lark to test.

WeChat

Note

Ensure your WeChat version is 8.0.70 or later.

Step 1: Install the WeChat channel plugin

  1. Install the WeChat channel plugin:

    npx -y @tencent-weixin/openclaw-weixin-cli@latest install
  2. After installation, the terminal displays a QR code. Scan it with WeChat to link your account. Once linked, a chat window with ClawBot opens in WeChat.

  3. Confirm the plugin is loaded:

    openclaw plugins list

    The output should include the openclaw-weixin plugin with a status of loaded.

Step 2: Test

  1. Restart the gateway:

    openclaw gateway restart
  2. In WeChat, find ClawBot and send it a message to test the connection.

QQ

Step 1: Install the QQ channel plugin

  1. Install the QQ channel plugin:

    openclaw plugins install @sliverp/qqbot
  2. Confirm the plugin is loaded:

    openclaw plugins list

    The output should include the qqbot plugin with a status of loaded.

Step 2: Create a QQ bot

  1. Go to the QQ Open Platform to register and sign in with your developer account.

  2. Create a bot on the OpenClaw Exclusive Page to get an AppID and AppSecret.

    Note

    The AppSecret is not stored in plain text and is shown only once. Viewing it again forces a reset, so you must save it to a secure location.

  3. After creation, a chat window with the bot automatically opens in QQ.

Step 3: Connect to the QQ channel

  1. Add the channels and plugins.allow configurations to ~/.openclaw/openclaw.json. Replace YOUR_APP_ID and YOUR_APP_SECRET with the credentials that you obtained in Step 2. Add the channels and plugins configurations to the corresponding locations in your existing configuration file. Do not overwrite existing configurations, such as models and agents.

    {
      "channels": {
        "qqbot": {
          "enabled": true,
          "appId": "YOUR_APP_ID",
          "clientSecret": "YOUR_APP_SECRET",
          "dmPolicy": "open",
          "allowFrom": ["*"]
        }
      },
      "plugins": {
        "allow": ["qqbot"],
        "entries": {
          "qqbot": {
            "enabled": true,
            "config": {}
          }
        }
      }
    }

    In the preceding configuration, setting dmPolicy to open allows direct messages, and setting allowFrom to ["*"] allows messages from all users. This is suitable for testing or personal use. In a production environment, we recommend restricting access based on your security requirements.

  2. After the configuration is complete, restart the gateway.

    openclaw gateway restart
  3. In QQ, send a message to the bot to test the connection.

Common commands

Command

Description

Example

/help

Lists available commands.

/help

/status

Shows the current model, session, and gateway status.

/status

/model <model_name>

Switches the model for the current session.

/model qwen3.7-max

/new

Starts a new session.

/new

/compact

Compresses conversation history to free up context window space.

/compact

/think <level>

Sets the inference depth. Available levels are off, low, medium, and high.

/think high

/skills

Lists available skills.

/skills

Use cases

Use case 1: Schedule AI news pushes

Using OpenClaw's scheduled task feature, you can have an AI automatically fetch news from a specified website and push it to you daily via DingTalk, without needing additional skills or plugins.

Procedure

  1. Complete the DingTalk integration.

  2. In your terminal:

    openclaw cron add \
      --name "ai-daily-news" \
      --cron "0 9 * * *" \
      --tz "Asia/Shanghai" \
      --message "Visit https://www.aibase.com/zh/daily to get today's AI Daily. Summarize the top 10 most important AI news stories and output them as a concise list in Chinese. Each item must include a title and a one-sentence summary." \
      --channel dingtalk \
      --announce \
      --timeout-seconds 120

    Parameters:

    Parameter

    Description

    --name

    The name of the scheduled task.

    --cron

    A cron expression. "0 9 * * *" means the task runs at 9:00 AM every day.

    --tz

    The time zone. Set to "Asia/Shanghai" for China Standard Time.

    --message

    The prompt sent to the bot, telling it what content to fetch and how to summarize it.

    --channel

    The delivery channel. Set to dingtalk.

    --announce

    Pushes the result to the DingTalk conversation.

    --timeout-seconds

    The task timeout in seconds. For web scraping, a value of 120 is recommended.

    On success, the command returns a JSON object with the task ID and the next scheduled execution time.

  3. After creating the task, you can manually trigger it once to verify the results.

    1. List the scheduled tasks to get the task ID.

      openclaw cron list
    2. Manually trigger the task.

      openclaw cron run <task-id> --timeout 120000
    3. Check the execution result.

      openclaw cron runs --id <task-id>

      When the output shows "status": "ok" and "delivered": true, the news has been successfully pushed to DingTalk.

Use case 2: Additional scheduled push templates

Push the latest arXiv papers

Example: At 9:00 AM every Monday, push the latest papers related to agent+evaluation.

openclaw cron add \
  --name "paper-digest" \
  --cron "0 9 * * 1" \
  --tz "Asia/Shanghai" \
  --message 'Use the curl command to run the following request to fetch paper data:
curl -s "http://export.arxiv.org/api/query?search_query=all:%22agent+evaluation%22&start=0&max_results=5&sortBy=submittedDate&sortOrder=descending"
Parse the returned XML data and list the top 5 papers. For each paper, include:
1. Title
2. Publication date
3. Abstract summary (in Chinese, 2-3 sentences capturing the core contribution)
4. arXiv link
5. GitHub link, if included in the XML
Sort by publication date from newest to oldest.' \
  --channel dingtalk \
  --announce \
  --timeout-seconds 120

Push trending HuggingFace models

Example: At 9:00 AM every Monday, push trending large language models from HuggingFace.

openclaw cron add \
  --name "hf-trending-models" \
  --cron "0 9 * * 1" \
  --tz "Asia/Shanghai" \
  --message 'Use the curl command to run the following request to fetch trending large language models from HuggingFace:
curl -s "https://hf-mirror.com/api/models?sort=trendingScore&direction=-1&limit=10&pipeline_tag=text-generation"
Parse the returned JSON data and list the top 10 models. For each model, include:
1. Model name
2. Publication date
3. Number of downloads and likes
4. Link to the model page (format: https://huggingface.co/<model_id>)
Highlight models released in the last month, and provide a brief description in Chinese of each model’s features (e.g., parameter count, originating institution).' \
  --channel dingtalk \
  --announce \
  --timeout-seconds 120

Push trending GitHub projects

Example: At 9:00 AM every Monday, push newly created, trending projects from GitHub.

openclaw cron add \
    --name "github-trending" \
    --cron "0 9 * * 1" \
    --tz "Asia/Shanghai" \
    --message 'Get the top 10 trending projects created on GitHub in the past week, sorted by star
  count. For each project, list the name, star
  count, a brief description (translated into Chinese), programming language, and link.
  Highlight projects with over 1000
  stars. First, use the date command to calculate the date 7 days ago, then use the
  created parameter of the GitHub Search API to filter the results.' \
    --channel dingtalk \
    --announce \
    --timeout-seconds 120

Use case 3: Automate Xiaohongshu operations

You can use OpenClaw to automate your Xiaohongshu account for end-to-end tasks such as content creation, automatic posting, and comment replies.

Procedure

  1. Install the Xiaohongshu skill

    In the OpenClaw chat, enter the following instruction to install the skill automatically:

    Help me install this skill, `https://github.com/Xiangyu-CAS/xiaohongshu-ops-skill`
  2. Restart the gateway to activate the skill.

    openclaw gateway restart
  3. Verify the installation:

    openclaw skills list
  4. You must log in to Xiaohongshu on first use, but re-authentication is not required for subsequent uses. In the OpenClaw chat, enter Log in to Xiaohongshu and follow the prompts to log in by scanning the QR code.

Example 1: Analyze home feed

Enter Help me analyze the Xiaohongshu home feed recommendations. OpenClaw will analyze the recommended content and extract reusable topic ideas and title patterns.

Example 2: Automatically publish a post

Enter Help me publish a Xiaohongshu post about tips for using AI tools. OpenClaw will automatically generate a cover image, fill in the title and body, and publish the post.

Example 3: Automatically reply to comments

Enter Help me check the latest Xiaohongshu comments and reply. OpenClaw will automatically check for new comments in your notifications and reply to each one based on your account's persona.

Use case 4: Monitor and analyze stocks

OpenClaw can analyze stock trends and provide technical analysis and investment advice.

Note

AI-generated content is for reference only. It does not constitute investment advice or a basis for decisions.

Procedure

  1. Install ClawHub CLI

    npm install -g clawhub  
  2. Install the skill

    In the OpenClaw chat, enter the following instruction to install the skill automatically:

    Help me install the china-stock-analysis skill
  3. Restart the gateway to activate the skill.

    openclaw gateway restart

    Verify the installation:

    openclaw skills list
  4. In the OpenClaw chat, ask stock-related questions, such as Analyze the stock price of Kweichow Moutai.

Learn more

Skill

Skills are extensible modules that provide new capabilities. The agent automatically matches and loads the appropriate Skill based on the user's request. OpenClaw allows you to view and enable built-in Skills, install community Skills from ClawHub, or create custom Skills.

Viewing existing skills

  1. View your installed Skills and their status:

    # List installed Skills
    openclaw skills list
    
    # Check Skill status (enabled, disabled, missing dependencies, etc.)
    openclaw skills check
    
    # View detailed information for a specific Skill
    openclaw skills info <skill-name>
  2. Built-in Skills are disabled by default. To enable them, you must add them to the skills.allowBundled allowlist in ~/.openclaw/openclaw.json. OpenClaw loads only the built-in Skills listed in this array.

    {
      "skills": {
        "allowBundled": [
          "github",
          "weather",
          "summarize",
          "coding-agent",
          "clawhub",
          "nano-pdf",
          "google-web-search",
          "image-lab"
        ]
      }
    }

    Some built-in Skills require a third-party API key to function. Configure these keys in the skills.entries field of ~/.openclaw/openclaw.json. For details, refer to the Skills Configuration documentation.

Finding more skills

You can find and install more Skills using one of the following methods.

  1. Search and install from ClawHub

    ClawHub offers over 3,000 community Skills. You can browse them on the website or search for them from the command line.

    # Search by keyword
    npx clawhub search [keyword]
    
    # Browse recently updated Skills
    npx clawhub explore

    After you find a suitable Skill, run the following command to install it. Then, restart the gateway to apply the Skill.

    npx clawhub install <skill-name>
  2. Ask OpenClaw directly

    Describe your needs directly in the chat, for example, Help me find a Skill that can check the weather. OpenClaw will automatically search for and install a matching Skill.

Creating a custom skill

  1. Create a directory for your Skill.

    mkdir -p ~/.openclaw/workspace/skills/my-custom-skill
  2. In this directory, create the SKILL.md file. The file consists of two parts: YAML front matter and Markdown instructions. The name and description fields are required. The Agent uses the description to determine whether to load the Skill. Ensure that the description is accurate.

    ---
    name: my-custom-skill
    description: Short description
    ---
    
    # My Custom Skill
    
    When a user requests XXX, do the following:
    
    1. Use the bash tool to run the xxx command
    2. Parse the output
    3. Return the result to the user as a table
  3. Restart the gateway to apply the Skill.

    # Restart the gateway
    openclaw gateway restart
    
    # Check if the Skill is active
    openclaw skills list

For more information on Skill configuration, see the OpenClaw Official Documentation.

Connecting to an MCP service

OpenClaw uses Model Context Protocol (MCP) plugins to extend the agent's tool calling capabilities, adding features such as web search and web scraping. For a specific example, see Add a Web Search MCP.

FAQ

How can I view my configured models?

To start the OpenClaw terminal command line, enter openclaw tui in your terminal. Then, enter /model to view the model list. Press Enter to select a model and Esc to exit the list.

Why do I get the error HTTP 401: Incorrect API key provided., No API key found for provider xxx, or HTTP 401: invalid_iam_token?

Possible causes include:

  1. The API key might be invalid, expired, empty, incorrectly formatted, or for the wrong endpoint. Ensure the API key corresponds to your payment method, is copied completely without extra spaces, and that your account subscription is active.

  2. OpenClaw may be using an incorrect, stale configuration from its configuration cache. To resolve this, delete the providers configuration item from the ~/.openclaw/agents/main/agent/models.json file and restart OpenClaw.

  3. invalid_iam_token indicates that the API key failed IAM authentication. Common scenarios include: the API key has been revoked or disabled; the API key's region does not match the Base URL region (for example, the API key was created in China (Beijing), but the Base URL points to Singapore); or an STS temporary credential has expired. Verify that the API key and Base URL belong to the same region and that the API key status is active.

I have already configured other channels like DingTalk. How can I safely add models for a new plan without losing my existing configuration?

  • Do not use a "Replace All" function, as this will overwrite your custom configuration. Instead, modify only the relevant sections.

  • Use one of the following methods to complete the configuration:

    • If OpenClaw is responding normally: Enter the commands directly in an OpenClaw chat to merge the configuration.

    • If OpenClaw has no models configured or is not responding: Manually edit the ~/.openclaw/openclaw.json file. Modify only the relevant fields and leave your existing configuration unchanged.

After restarting the gateway, existing sessions may not function correctly. Start a new session.

What should I do if I get a device identity required error?

Error message:

http://127.0.0.1:18791/15:05:56 [ws] closed before connect conn=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1008 reason=device identity required

Cause:

This error occurs when a client connects to the gateway without providing a device identity. Common causes include:

  • You are accessing the URL in a browser for the first time, and device pairing is not yet complete.

  • The browser cache was cleared, causing the device key to be lost.

  • After reinstalling or upgrading OpenClaw, the key file in the ~/.openclaw/identity/ directory is missing.

Solution:

Run the following commands in the terminal to approve the device connection and generate a new browser access URL:

openclaw devices approve --latest
openclaw dashboard --no-open

If the issue persists, clear pending device records and try again:

openclaw devices clear --pending --yes
openclaw dashboard --no-open

Run openclaw devices list to confirm the device appears in the Paired list.

Token consumption occurs even when OpenClaw is not actively in use

Cause: OpenClaw has a built-in heartbeat mechanism. While the gateway is running, it automatically calls the configured model at a fixed interval (every 30 minutes by default) to check for pending tasks. Each heartbeat consumes a small number of tokens.

How to verify: Check the session log files (.jsonl) in the ~/.openclaw/agents/main/sessions/ directory. Heartbeat calls are marked with [OpenClaw heartbeat poll].

Solutions:

  • Stop the gateway: Run openclaw gateway stop when not in use. This stops the heartbeat immediately.

  • Increase the heartbeat interval: Set agents.defaults.heartbeat.every in ~/.openclaw/openclaw.json. For example, "2h" sets the interval to every 2 hours.