
Alicloud Platform Openclaw Setup
- 196 installs
- 396 repo stars
- Updated July 18, 2026
- cinience/alicloud-skills
Stand up OpenClaw agent tooling on Alibaba Cloud so coding agents get authenticated access, runtime configuration, and service hooks for automated cloud operations workflows.
About
Walks through Alibaba Cloud OpenClaw setup: enabling agent runtimes, binding cloud credentials, configuring tool endpoints, and hardening access so AI agents can reliably call Alibaba services during automated build and operations tasks.
- OpenClaw runtime provisioning
- Alibaba Cloud credential wiring
- Agent tool endpoint configuration
- Secure agent-to-cloud access patterns
- Repeatable setup for agent workflows
Alicloud Platform Openclaw Setup by the numbers
- 196 all-time installs (skills.sh)
- Ranked #2,912 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cinience/alicloud-skills --skill alicloud-platform-openclaw-setupAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 196 |
|---|---|
| repo stars | ★ 396 |
| Last updated | July 18, 2026 |
| Repository | cinience/alicloud-skills ↗ |
What it does
Stand up OpenClaw agent tooling on Alibaba Cloud so coding agents get authenticated access, runtime configuration, and service hooks for automated cloud operations workflows.
Files
OpenClaw Setup
Deploy OpenClaw on Linux, enable DingTalk, Feishu, Discord, or other documented channels, and verify gateway health.
Use This Workflow
Run this sequence in order:
1. Prepare Linux runtime and install OpenClaw. 2. Discover channels from official docs (required for new channel requests). 3. Install and verify channel integrations. 4. Create/merge ~/.openclaw/openclaw.json. 5. Configure and start gateway service. 6. Run health checks and collect logs.
Prerequisites
- SSH access to target Linux host (Debian/Ubuntu preferred).
- DingTalk enterprise app credentials (
AppKey,AppSecret) for the official connector, or Feishu app credentials (App ID,App Secret), or Discord bot token. - DashScope API key.
Step 1: Prepare Runtime
ssh root@<server>
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
node --version
npm --versionStep 2: Install OpenClaw and Channel Integrations
npm install -g openclaw@latest
openclaw --version
# DingTalk official connector
openclaw plugins install @dingtalk-real-ai/dingtalk-connector --pin
# or install from official GitHub repo
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
openclaw plugins list | grep dingtalk
# Feishu channel
openclaw plugins install @openclaw/feishu
openclaw plugins list | grep feishu
# Discord channel (built-in, no extra plugin needed)
# Configure token in Step 3 and start gateway in Step 4If upgrading from old DingTalk plugins, uninstall legacy plugin IDs first and keep only the official connector in plugins.allow.
Step 3: Auto-Discover Additional Channels from Official Docs
When user asks for any extra channel beyond current setup, do this first:
1. Open https://docs.openclaw.ai/channels/index. 2. Identify requested channel pages from the "Supported channels" list. 3. Open each channel page and extract:
- Whether it is built-in or plugin-based.
- Exact install command (do not guess package names).
- Required credentials/tokens and config keys.
4. Apply installation/configuration on host. 5. Record channel-specific notes into ~/.openclaw/openclaw.json.
Use the exact workflow in references/channel-discovery.md.
Step 4: Configure openclaw.json
Create or update ~/.openclaw/openclaw.json with:
models.providers.bailianfor DashScope endpoint and models.agents.defaults.model.primaryinprovider/modelformat, default tobailian/glm-5.models.providers.bailian.modelsordered as:
1) qwen3-plus 2) glm-5 3) minimax-m2.5 4) kimi-k2.5
agents.defaults.model.fallbacksordered as:
1) bailian/qwen3-plus 2) bailian/minimax-m2.5 3) bailian/kimi-k2.5
channels.dingtalk-connector,channels.feishu, orchannels.discordcredentials and policy.plugins.allowincluding installed channel plugins.
Important:
- Agent-level model config at
~/.openclaw/agents/main/agent/models.jsoncan override~/.openclaw/openclaw.json. - Keep provider definitions aligned in both files when defaults appear not to take effect.
- Protocol must match endpoint:
api: openai-completions-> usehttps://dashscope.aliyuncs.com/compatible-mode/v1api: openai-responses-> usehttps://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
Use the full template in references/config.md. Use DingTalk field mapping in references/dingtalk-setup.md. Use Feishu setup and field mapping in references/feishu-setup.md. Use Discord setup and field mapping in references/discord-setup.md. Use channel discovery workflow in references/channel-discovery.md.
Step 5: Install and Start Gateway
openclaw gateway install
openclaw gateway start
openclaw gateway statusIf running with user-level systemd, reload after config changes:
systemctl --user import-environment DASHSCOPE_API_KEY
systemctl --user daemon-reload
systemctl --user restart openclaw-gatewayStep 6: Verify and Troubleshoot
openclaw doctor
openclaw gateway status
openclaw gateway logs -fCommon failures:
- Plugin not loaded: re-run plugin install and check
plugins.allow. - Unknown model: check
agents.defaults.model.primaryformat (provider/model-id). - API key error: verify
models.providers.bailian.apiKeyandDASHSCOPE_API_KEYimported in systemd. - Config changed but runtime model unchanged: check and update
~/.openclaw/agents/main/agent/models.json. - Empty payload / unexpected fallback: verify protocol-endpoint pair (
openai-completionsvsopenai-responses) and clear stale session if needed. - DingTalk no response: use
openclaw logs --followand checkgateway/channels/dingtalk-connectorlines for stream reconnect or credential issues. - Official connector installed but old probes inconsistent: rely on runtime logs and real message send/receive as source of truth.
- Feishu no response: check event subscription mode is WebSocket and gateway is running.
- Discord no response: verify bot intents, token, and first-DM pairing approval.
Security Notes
- Do not hardcode real secrets in repository files.
- Keep production keys in server-local configs or secret managers.
- Redact logs before sharing in tickets or chat.
Validation
mkdir -p output/alicloud-platform-openclaw-setup
echo "validation_placeholder" > output/alicloud-platform-openclaw-setup/validate.txtPass criteria: command exits 0 and output/alicloud-platform-openclaw-setup/validate.txt is generated.
Output And Evidence
- Save artifacts, command outputs, and API response summaries under
output/alicloud-platform-openclaw-setup/. - Include key parameters (region/resource id/time range) in evidence files for reproducibility.
Workflow
1) Confirm user intent, region, identifiers, and whether the operation is read-only or mutating. 2) Run one minimal read-only query first to verify connectivity and permissions. 3) Execute the target operation with explicit parameters and bounded scope. 4) Verify results and save output/evidence files.
interface:
display_name: "Alibaba Cloud Platform OpenClaw Setup"
short_description: "Install OpenClaw channels with auto-discovery from official docs"
default_prompt: "Use $alicloud-platform-openclaw-setup to install, configure, and troubleshoot OpenClaw channels (DingTalk/Feishu/Discord and others discovered from docs.openclaw.ai/channels) on Linux hosts."
Channel Discovery and Auto-Install Workflow
Contents
1. Trigger conditions 2. Discovery workflow 3. Installation decision rules 4. Configuration merge rules 5. Verification checklist
Trigger Conditions
Run this workflow when:
- The user asks to add a new channel not already covered by local references.
- Existing channel setup fails and the docs may have changed.
- You need to verify whether a channel is built-in or plugin-based.
Discovery Workflow
1. Open https://docs.openclaw.ai/channels/index. 2. Read the current supported channels list. 3. For each target channel, open its channel page from that list. 4. Extract exactly from docs:
- Required install method.
- CLI steps.
- Required credentials.
openclaw.jsonkey paths.- Any policy defaults (dm/group/allowlist).
Do not infer package names or field names when docs provide exact values.
Installation Decision Rules
Use the following decision tree per channel page:
1. If docs state channel is built-in:
- Do not install plugin.
- Configure channel keys and credentials only.
2. If docs provide a plugin package:
- Install exactly with documented command.
- Verify with
openclaw plugins list.
3. If docs show interactive onboarding:
- Prefer
openclaw onboard/openclaw channels addfirst. - Use direct JSON edit as fallback for automation.
Configuration Merge Rules
1. Keep existing working channel configs unchanged. 2. Add new channel config under channels.<channel_name>. 3. Update plugins.allow only for plugin-based channels. 4. Keep secrets as placeholders in repo docs and real values only on target hosts. 5. Preserve agents.defaults.model.primary and provider settings unless user requests model changes.
Verification Checklist
After adding a channel:
1. Run openclaw doctor. 2. Run openclaw gateway status. 3. Check logs (openclaw gateway logs -f or openclaw logs --follow). 4. Send one real message from that channel and confirm response. 5. If channel uses pairing, run openclaw pairing list <channel> and approve pending code.
OpenClaw Configuration Reference
Contents
1. Complete configuration template 2. Model provider configuration 3. DingTalk channel configuration 4. Feishu channel configuration 5. Discord channel configuration 6. Gateway configuration 7. File locations
Complete Configuration Template
{
"models": {
"mode": "merge",
"providers": {
"bailian": {
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
"apiKey": "${DASHSCOPE_API_KEY}",
"api": "openai-completions",
"models": [
{
"id": "qwen3-plus",
"name": "qwen3-plus",
"reasoning": false,
"input": ["text", "image"],
"cost": {"input": 0.0025, "output": 0.01, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 1048576,
"maxTokens": 65536
},
{
"id": "glm-5",
"name": "glm-5",
"reasoning": false,
"input": ["text"],
"cost": {"input": 0.0025, "output": 0.01, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 202752,
"maxTokens": 16384
},
{
"id": "minimax-m2.5",
"name": "MiniMax-M2.5",
"reasoning": false,
"input": ["text"],
"cost": {"input": 0.0025, "output": 0.01, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 200000,
"maxTokens": 8192
},
{
"id": "kimi-k2.5",
"name": "kimi-k2.5",
"reasoning": false,
"input": ["text"],
"cost": {"input": 0.0025, "output": 0.01, "cacheRead": 0, "cacheWrite": 0},
"contextWindow": 131072,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "bailian/glm-5",
"fallbacks": [
"bailian/qwen3-plus",
"bailian/minimax-m2.5",
"bailian/kimi-k2.5"
]
},
"models": {
"bailian/qwen3-plus": {"alias": "qwen3-plus"},
"bailian/glm-5": {"alias": "GLM-5"},
"bailian/minimax-m2.5": {"alias": "MiniMax-M2.5"},
"bailian/kimi-k2.5": {"alias": "kimi-k2.5"}
},
"workspace": "/root/",
"compaction": {"mode": "safeguard"},
"maxConcurrent": 4,
"subagents": {"maxConcurrent": 8},
"imageModel": {"primary": "bailian/qwen3-plus"},
"memorySearch": {"enabled": false}
}
},
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"channels": {
"dingtalk-connector": {
"enabled": true,
"clientId": "<APP_KEY>",
"clientSecret": "<APP_SECRET>",
"gatewayToken": "<OPENCLAW_GATEWAY_TOKEN>",
"sessionTimeout": 1800000,
"dmPolicy": "open",
"allowFrom": ["*"]
},
"feishu": {
"enabled": true,
"domain": "feishu",
"dmPolicy": "pairing",
"groupPolicy": "open",
"accounts": {
"main": {
"appId": "<FEISHU_APP_ID>",
"appSecret": "<FEISHU_APP_SECRET>",
"botName": "OpenClaw Assistant"
}
}
},
"discord": {
"enabled": true,
"token": "<DISCORD_BOT_TOKEN>",
"dmPolicy": "pairing",
"groupPolicy": "allowlist",
"groups": {
"<CHANNEL_OR_GUILD_ID>": {
"enabled": true,
"requireMention": true
}
}
}
},
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "auto-generated-token"
}
},
"plugins": {
"enabled": true,
"allow": ["dingtalk-connector"],
"entries": {
"dingtalk-connector": {"enabled": true}
}
}
}Model Provider Configuration
Bailian (DashScope) Provider
| Field | Type | Description |
|---|---|---|
baseUrl | string | API endpoint URL |
apiKey | string | DashScope API key |
api | string | API type: openai-completions |
models | array | Available model definitions |
Protocol and endpoint pairing:
openai-completions->https://dashscope.aliyuncs.com/compatible-mode/v1openai-responses->https://dashscope.aliyuncs.com/api/v2/apps/protocols/compatible-mode/v1
Model Definition
| Field | Type | Description |
|---|---|---|
id | string | Model identifier |
name | string | Display name |
input | array | Supported input types: text, image |
contextWindow | number | Max context tokens |
maxTokens | number | Max output tokens |
DingTalk Channel Configuration
| Field | Required | Description |
|---|---|---|
clientId | ✓ | AppKey from DingTalk |
clientSecret | ✓ | AppSecret from DingTalk |
gatewayToken | Gateway auth token, usually gateway.auth.token | |
sessionTimeout | Session timeout in ms, default 1800000 | |
dmPolicy | Direct message policy: open, pairing, allowlist | |
allowFrom | Allowlist for dmPolicy: open, usually ["*"] |
Feishu Channel Configuration
| Field | Required | Description |
|---|---|---|
domain | feishu (default) or lark | |
accounts.<name>.appId | ✓ | Feishu app ID |
accounts.<name>.appSecret | ✓ | Feishu app secret |
accounts.<name>.botName | Bot display name | |
dmPolicy | Direct message policy: open, pairing, allowlist | |
groupPolicy | Group chat policy: open, allowlist |
Discord Channel Configuration
| Field | Required | Description |
|---|---|---|
token | ✓ | Discord bot token (or set DISCORD_BOT_TOKEN) |
dmPolicy | Direct message policy: open, pairing, allowlist | |
groupPolicy | Group chat policy: open, allowlist | |
groups.<id>.enabled | Enable specific server/channel allowlist entry | |
groups.<id>.requireMention | Require explicit bot mention in group |
Gateway Configuration
| Field | Description |
|---|---|
mode | local for local deployment |
auth.mode | token for token-based auth |
auth.token | Auto-generated on first install |
File Locations
| File | Path | Description |
|---|---|---|
| Main config | ~/.openclaw/openclaw.json | Primary configuration |
| Agent model override | ~/.openclaw/agents/main/agent/models.json | Per-agent model/provider override (higher priority) |
| Auth profiles | ~/.openclaw/agents/main/agent/auth-profiles.json | Provider credentials |
| Service file | ~/.config/systemd/user/openclaw-gateway.service | Systemd service |
| Logs | /tmp/openclaw/openclaw-YYYY-MM-DD.log | Daily log files |
| Plugins | ~/.openclaw/extensions/ | Installed plugins |
Notes
- Keep model
idandagents.defaults.model.primaryaligned. - Use
provider/modelformat, for examplebailian/glm-5. - If model switches do not take effect, check
~/.openclaw/agents/main/agent/models.jsonoverride first. - For user-level systemd service, import env vars before restart:
systemctl --user import-environment DASHSCOPE_API_KEY
- Store real credentials only on target hosts, not in git-tracked files.
DingTalk Bot Setup Guide
Contents
1. Prerequisites 2. Create application 3. Collect credentials 4. Configure robot (Stream mode) 5. Configure permissions 6. Publish app 7. Install official connector plugin 8. Field mapping and troubleshooting
Prerequisites
- DingTalk administrator access
- Enterprise account (not personal)
Step 1: Create Application
1. Go to DingTalk Open Platform 2. Login with admin account 3. Navigate to: App Development → Enterprise Internal Development → Create App 4. Fill in application info:
- App name: Your bot name
- App description: Brief description
- App icon: Upload an icon
Step 2: Get Credentials
After creating the application, find these values:
| Credential | Location |
|---|---|
| ClientId (AppKey) | Basic Info → Credentials and Basic Info |
| ClientSecret (AppSecret) | Basic Info → Credentials and Basic Info |
Step 3: Configure Robot
1. Navigate to: App Features → Bot 2. Enable robot feature 3. Configure:
- Bot type: Stream mode (recommended, no public IP required)
- Message receiving mode: Stream
- Bot name: Your bot name
Step 4: Permission Configuration
Navigate to: Permission Management → Permission Requests
Required permissions:
qyapi_chat_manage- Group chat managementqyapi_robot_sendmsg- Robot send messageContact.User.Read- Read user infoCard.Streaming.Write- AI card streaming writeCard.Instance.Write- AI card instance write
Step 5: Deploy & Publish
1. Navigate to: Version Management and Release 2. Create new version 3. Fill in version details 4. Submit for review (internal apps usually auto-approve) 5. Publish to enterprise
Step 6: Install Official OpenClaw Connector
openclaw plugins install @dingtalk-real-ai/dingtalk-connector --pin
# or install from official GitHub repo
openclaw plugins install https://github.com/DingTalk-Real-AI/dingtalk-openclaw-connector.git
openclaw plugins list | grep dingtalkConfiguration Mapping
| DingTalk Field | OpenClaw Config Field |
|---|---|
| AppKey | channels.dingtalk-connector.clientId |
| AppSecret | channels.dingtalk-connector.clientSecret |
| Gateway token | channels.dingtalk-connector.gatewayToken |
| Session timeout (optional) | channels.dingtalk-connector.sessionTimeout |
Stream Mode vs Webhook
| Feature | Stream Mode | Webhook Mode |
|---|---|---|
| Public IP required | No | Yes |
| Setup complexity | Simple | Complex |
| Firewall friendly | Yes | No |
| Recommended | ✓ |
OpenClaw official DingTalk connector uses Stream Mode by default.
Troubleshooting
Bot not responding
1. Check robot is published 2. Verify Stream mode is enabled 3. Check openclaw gateway logs -f for errors
Permission errors
1. Verify all required permissions are approved 2. Re-publish after adding permissions
Card not rendering
1. Verify Card.Streaming.Write and Card.Instance.Write are approved 2. Re-publish app after permission changes 3. Check openclaw logs --follow for gateway/channels/dingtalk-connector errors
Discord Channel Setup Guide
Contents
1. Prerequisites 2. Create Discord bot 3. Configure OpenClaw 4. Start and verify 5. Pairing and policy checks 6. Common issues
Prerequisites
- Discord application admin access.
- OpenClaw installed on target host.
- Gateway runtime available on target host.
Create Discord Bot
1. Open Discord Developer Portal (https://discord.com/developers/applications). 2. Create a new application and add a bot. 3. Copy the bot token. 4. Enable required intents in bot settings:
- Message Content Intent
- Direct Messages / Guild Messages intents as needed
5. Invite bot to target server/channel with message permissions.
Configure OpenClaw
Set token using one of these methods:
1. In ~/.openclaw/openclaw.json:
{
"channels": {
"discord": {
"enabled": true,
"token": "<DISCORD_BOT_TOKEN>",
"dmPolicy": "pairing",
"groupPolicy": "allowlist"
}
}
}2. Or environment variable:
export DISCORD_BOT_TOKEN=<DISCORD_BOT_TOKEN>For group controls, define allowlist with mention requirement:
{
"channels": {
"discord": {
"groups": {
"<CHANNEL_OR_GUILD_ID>": {
"enabled": true,
"requireMention": true
}
}
}
}
}Start and Verify
openclaw gateway
openclaw gateway status
openclaw logs --followSend a DM to the bot in Discord. If dmPolicy is pairing, approve first:
openclaw pairing list discord
openclaw pairing approve discord <PAIRING_CODE>Pairing and Policy Checks
dmPolicy=pairing: first DM requires approval code.groupPolicy=allowlist: only allowed groups/channels are processed.requireMention=true: bot responds only when explicitly mentioned.
Common Issues
- Bot offline: token invalid or bot not invited to server.
- No replies in server: missing intents or insufficient bot permissions.
- DM not working: pairing pending; approve with
openclaw pairing. - Group messages ignored: check
groupPolicyand allowlist IDs.
Feishu Channel Setup Guide
Contents
1. Prerequisites 2. Install plugin 3. Create Feishu app 4. Configure OpenClaw 5. Start and verify 6. Common issues
Prerequisites
- Feishu or Lark tenant admin access.
- OpenClaw installed on target host.
- Gateway runtime available on target host.
Install Plugin
openclaw plugins install @openclaw/feishu
openclaw plugins list | grep feishuCreate Feishu App
1. Visit Feishu Open Platform (https://open.feishu.cn/app) and create an enterprise app. 2. Copy App ID and App Secret from credentials page. 3. Enable bot capability for the app. 4. Use WebSocket event subscription mode.
For international Lark tenant, use https://open.larksuite.com/app.
Configure OpenClaw
Recommended CLI onboarding:
openclaw onboardIf OpenClaw is already initialized, add channel directly:
openclaw channels addChoose Feishu in interactive prompt and provide App ID + App Secret.
Config file method (~/.openclaw/openclaw.json):
{
"channels": {
"feishu": {
"enabled": true,
"domain": "feishu",
"dmPolicy": "pairing",
"groupPolicy": "open",
"accounts": {
"main": {
"appId": "cli_xxx",
"appSecret": "<APP_SECRET>",
"botName": "OpenClaw Assistant"
}
}
}
}
}Lark international tenant example:
{
"channels": {
"feishu": {
"domain": "lark"
}
}
}Start and Verify
openclaw gateway
openclaw gateway status
openclaw logs --followSend a test message to the bot in Feishu. If dmPolicy is pairing, approve code:
openclaw pairing list feishu
openclaw pairing approve feishu <PAIRING_CODE>Common Issues
- No reply: verify Feishu app publish status and WebSocket mode.
- Pairing blocked: approve pending pairing request or switch policy.
- Lark tenant failure: set
channels.feishu.domaintolark. - Group message ignored: check
groupPolicyandgroups.<chat_id>.requireMention.