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 three access methods: pay-as-you-go, Coding Plan, and Token Plan Team Edition.
Install OpenClaw
OpenClaw requires Node.js 22 or later. To check your version:
node --version
If Node.js is not installed or your version is older than 22, 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 Team Edition
Replace YOUR_API_KEY with the API Key for your Token Plan Team Edition. For a list of available models, see the supported models.
|
API Key |
Dedicated API Key for the Token Plan Team Edition |
|
Base URL |
|
|
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.
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
-
Open the configuration file
nano ~/.openclaw/openclaw.json -
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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.ap-southeast-1.maas.aliyuncs.com/apps/anthropic", "apiKey": "YOUR_API_KEY", "api": "anthropic-messages", "models": [ { "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-flash", "name": "deepseek-v4-flash", "reasoning": false, "input": ["text"], "contextWindow": 163840, "maxTokens": 16384, "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.7-plus" }, "models": { "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-flash": {}, "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" } } } -
Save and exit
Press
Ctrl+X, pressYto confirm saving, and then pressEnterto confirm the file name. -
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Method 2: Web UI
The Web UI method is only available in OpenClaw ≤ 2026.3.28. For later versions, use Method 1: Terminal.
-
Start the Web UI
In your terminal, run the following command to start the Web UI:
openclaw dashboardIn the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.
-
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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.ap-southeast-1.maas.aliyuncs.com/apps/anthropic", "apiKey": "YOUR_API_KEY", "api": "anthropic-messages", "models": [ { "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-flash", "name": "deepseek-v4-flash", "reasoning": false, "input": ["text"], "contextWindow": 163840, "maxTokens": 16384, "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.7-plus" }, "models": { "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-flash": {}, "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" } } } -
Save the configuration
In the Web UI configuration page, click the save button to complete the configuration.
-
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Coding Plan
Replace YOUR_API_KEY with the API Key for your Coding Plan (in the format sk-sp-xxxxx). For a list of available models, see the supported models.
|
API Key |
Dedicated API Key for the Coding Plan, in the format |
|
Base URL |
|
|
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.
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
-
Open the configuration file
nano ~/.openclaw/openclaw.json -
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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-intl.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" } } } -
Save and exit
Press
Ctrl+X, pressYto confirm saving, and then pressEnterto confirm the file name. -
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Method 2: Web UI
The Web UI method is only available in OpenClaw ≤ 2026.3.28. For later versions, use Method 1: Terminal.
-
Start the Web UI
In your terminal, run the following command to start the Web UI:
openclaw dashboardIn the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.
-
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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-intl.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" } } } -
Save the configuration
In the Web UI configuration page, click the save button to complete the configuration.
-
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Pay-as-you-go
Replace YOUR_API_KEY with your Model Studio API Key (in the format sk-xxxxx). For a list of available models, see the Model Market.
|
API Key |
Model Studio API Key, in the format |
|
Base URL |
Ensure your Base URL, API Key, and model all correspond to the same region:
|
|
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.
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
-
Open the configuration file
nano ~/.openclaw/openclaw.json -
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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}.ap-southeast-1.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" } } } -
Save and exit
Press
Ctrl+X, pressYto confirm saving, and then pressEnterto confirm the file name. -
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Method 2: Web UI
The Web UI method is only available in OpenClaw ≤ 2026.3.28. For later versions, use Method 1: Terminal.
-
Start the Web UI
In your terminal, run the following command to start the Web UI:
openclaw dashboardIn the left menu, choose Configuration > Settings > Advanced, and click Open to open the configuration editor.
-
Add the configuration
For a new configuration: Copy the following content into the configuration file. Replace
YOUR_API_KEYwith 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}.ap-southeast-1.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" } } } -
Save the configuration
In the Web UI configuration page, click the save button to complete the configuration.
-
Apply the configuration
To apply the changes, restart the gateway with the following command:
openclaw gateway restart
Connect to message channels
Step 1: Install the WhatsApp plugin
The WhatsApp channel is connected via a plugin. Run the following command to install it:
openclaw plugins install @openclaw/whatsapp
Step 2: Configure the WhatsApp channel
Enter the following prompt in your OpenClaw chat. OpenClaw will ask for your phone number in E.164 format (a + sign followed by the country code and number), then automatically add the number to the configuration and complete the setup.
Please help me configure the WhatsApp channel. First, ask for my phone number, and then automatically fill it into the allowFrom and groupAllowFrom fields in the following configuration to complete the setup.
{
"channels": {
"whatsapp": {
"dmPolicy": "pairing",
"allowFrom": ["<phone_number>"],
"groupPolicy": "allowlist",
"groupAllowFrom": ["<phone_number>"]
}
}
}
We recommend using a separate phone number for the WhatsApp channel to prevent the bot from responding to your daily chats. If you use your personal phone number, you can enter a command in your OpenClaw chat to enable selfChatMode. The bot will then respond only in your "Message yourself" chat, leaving other conversations unaffected.
Step 3: Link with WhatsApp
-
Start the WhatsApp linking process. The terminal displays a QR code.
openclaw channels login --channel whatsapp -
Open WhatsApp on your phone and scan the QR code in the terminal to link your account.
-
Restart the gateway.
openclaw gateway restart
Step 4: Test
-
Check the WhatsApp channel status:
openclaw statusIn the Channels section, WhatsApp should be
ONwith a status ofOK. -
In WhatsApp, send a message to yourself to verify that the bot responds correctly.
Telegram
-
Create a bot using BotFather
Send the
/newbotcommand, follow the prompts to enter a bot name and username (the username must end withbot), and copy and save the returned bot token (format:123456789:ABCdefGHIjklMNOpqrsTUVwxyz). -
In your OpenClaw chat, enter the following prompt and replace
xxxxwith your actual bot token. OpenClaw will automatically apply the configuration.Please help me configure Telegram with the following settings. My bot token is xxxx. { "channels": { "telegram": { "enabled": true, "botToken": "xxxx", "dmPolicy": "pairing" } } } -
After the configuration is complete, restart the gateway.
openclaw gateway restart -
In Telegram, send a message to your bot. When you send your first message, you will receive a pairing code.
-
In your terminal, run the following command, replacing
xxxwith the actual pairing code:openclaw pairing approve telegram xxx
Discord
Step 1: Create a Discord application and bot
-
Create a Discord application
Go to the Discord Developer Portal, click New Application, enter an application name, and then click Create.
-
Create a bot and enable permissions
-
In the left navigation pane, click Bot and set a username for the bot.
-
On the Bot page, scroll down to Privileged Gateway Intents and enable the following intents:
-
Message Content Intent
-
Server Members Intent
-
Presence Intent
When finished, click Save Changes.
-
-
-
Get the bot token
At the top of the Bot page, click Reset Token to generate a token. This token is displayed only once, so copy it and store it in a secure location immediately.
-
Add the bot to a server
-
In the left navigation pane, click OAuth2 and scroll down to OAuth2 URL Generator.
-
Under Scopes, select the
botandapplications.commandscheckboxes. -
In the Bot Permissions section that appears, select the following permissions:
-
View Channels
-
Send Messages
-
Read Message History
-
Embed Links
-
Attach Files
-
-
Copy the URL generated at the bottom of the page, open it in your browser, select the target server, and click Continue to add the bot.
-
Step 2: Configure Discord in OpenClaw
-
On the machine where OpenClaw is running, set the bot token as an environment variable.
export DISCORD_BOT_TOKEN="YOUR_BOT_TOKEN" -
Complete the Discord configuration:
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN openclaw config set channels.discord.enabled true --strict-json -
Restart the gateway to apply the configuration.
openclaw gateway restart
Step 3: Pair and test
-
In Discord, send a direct message to the bot. When you send your first message, you will receive a pairing code.
-
In your terminal, run the following command to complete the pairing, replacing
xxxwith the actual pairing code:openclaw pairing approve discord xxxNoteThe pairing code is valid for one hour. If it expires, you must send another message to get a new one.
-
Check the Discord channel status:
openclaw statusIn the Channels section, Discord should be
ONwith a status ofOK. -
Send a message in Discord 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: Automate X (Twitter)
You can use OpenClaw to automate your X (Twitter) account, including posting, replying, searching, and browsing your timeline.
Use case 2: Analyze and download YouTube videos
You can use OpenClaw to search for YouTube videos, extract video information, and download videos. It supports searching by keyword, sorting by date, and bulk-fetching video metadata.
Use case 3: Schedule daily AI news delivery
You can use OpenClaw's cron feature to automatically fetch the latest AI news and push it to WhatsApp daily.
Use case 4: Stock market analysis
You can use OpenClaw to analyze stock trends and receive technical analysis and investment suggestions.
AI-generated content is for reference only and does not constitute actual investment advice or a basis for decision-making.
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
-
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> -
Built-in Skills are disabled by default. To enable them, you must add them to the
skills.allowBundledallowlist 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.entriesfield 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.
-
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 exploreAfter 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> -
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
-
Create a directory for your Skill.
mkdir -p ~/.openclaw/workspace/skills/my-custom-skill -
In this directory, create the
SKILL.mdfile. The file consists of two parts: YAML front matter and Markdown instructions. Thenameanddescriptionfields are required. The Agent uses thedescriptionto 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 -
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.