OpenClaw DingTalk channel plugin, using Stream mode to connect enterprise robots.
openclaw plugins install @largezhou/ddingtalk
There are two ways to add the DingTalk channel:
If you have just installed OpenClaw, you can run the wizard directly and follow the prompts to add DingTalk:
openclaw onboard
The wizard will guide you through:
After completing the configuration, you can use the following commands to check the gateway status:
openclaw gateway status - View gateway running statusopenclaw logs --follow - View real-time logsIf you have already completed the initial installation, you can use the following command to add the DingTalk channel:
openclaw channels add
Then, follow the interactive prompts to select DingTalk, and enter the AppKey (Client ID) and AppSecret (Client Secret).
After completing the configuration, you can use the following commands to manage the gateway:
openclaw gateway status - View gateway running statusopenclaw gateway restart - Restart the gateway to apply new configurationsopenclaw logs --follow - View real-time logsVisit the DingTalk Developer Platform, log in with your DingTalk account, and select an organization to enter.

On the app's Credentials & Basic Information page, copy:
dingxxxx)❗ Important: Please keep the Client Secret safe and do not share it with others.




In the app's permission management, make sure the following permissions are enabled:
Create a robot version, fill in the version number, description, and application availability scope, click save, then click confirm to publish.


Run the following command, select DingTalk according to the prompts, and paste the AppKey (Client ID) and AppSecret (Client Secret):
openclaw channels add
Edit ~/.openclaw/openclaw.json:
{
"channels": {
"ddingtalk": {
"enabled": true,
"clientId": "your_app_key",
"clientSecret": "your_app_secret",
"allowFrom": ["*"]
}
}
}
allowFrom controls which users can interact with the robot and execute commands:
["*"] (allows everyone if not configured)staffId, only whitelisted users can use commands (such as /compact, /new, etc.), messages from non-whitelisted users will be ignoredallowFrom[0] also serves as the default target for active message push (openclaw send){
"allowFrom": ["user_id_1", "user_id_2"]
}
openclaw gateway --verbose
Find the robot you created in DingTalk, and you can start a normal conversation.

The project includes a standalone demo that can test the DingTalk robot independently without the OpenClaw framework:
# Configure environment variables
cp .env.example .env
# Edit .env and fill in CLIENT_ID and CLIENT_SECRET
# Run demo
pnpm run demo
# Install dependencies
pnpm install
# Pack
pnpm pack
MIT