Skip to content

cnjack/OpenClaw-dingtalk

Repository files navigation

DingTalk Channel for OpenClaw

An OpenClaw channel plugin for DingTalk (钉钉) using Stream Mode for seamless integration.

version 1.0.10 support the openclaw now.

Features

  • Stream Mode: Uses WebSocket for real-time message receiving (no public IP required)
  • Zero Configuration: No webhook setup, ngrok, or firewall configuration needed
  • Single/Group Chat: Supports both direct messages and group mentions
  • Easy Setup: Just configure your DingTalk app credentials
  • Media Support: Send images via markdown format
  • Auto Chunking: Automatically splits long messages (2000 char limit)

Installation

Option 1: From npm (recommended)

openclaw plugins install moltbot-dingtalk-stream

Option 2: Manual installation

git clone https://github.com/your-repo/moltbot-dingtalk-stream.git
cd moltbot-dingtalk-stream
npm install
# optional: typecheck only (no JS build)
npm run typecheck
cp -r . ~/.openclaw/extensions/moltbot-dingtalk-stream
openclaw gateway restart

Configuration

Configure in your ~/.openclaw/openclaw.json:

{
  "channels": {
    "moltbot-dingtalk-stream": {
      "enabled": true,
      "clientId": "YOUR_APP_KEY",
      "clientSecret": "YOUR_APP_SECRET"
    }
  }
}

Or use environment variables:

export DINGTALK_CLIENT_ID="YOUR_APP_KEY"
export DINGTALK_CLIENT_SECRET="YOUR_APP_SECRET"

Multi-Account Setup

{
  "channels": {
    "moltbot-dingtalk-stream": {
      "enabled": true,
      "accounts": {
        "default": {
          "enabled": true,
          "clientId": "APP_KEY_1",
          "clientSecret": "APP_SECRET_1"
        },
        "work": {
          "enabled": true,
          "clientId": "APP_KEY_2",
          "clientSecret": "APP_SECRET_2"
        }
      }
    }
  }
}

DingTalk App Setup

  1. Go to DingTalk Developer Console
  2. Create an Enterprise Internal Application
  3. Add Robot capability
  4. Enable Stream Mode (消息接收模式 → Stream模式)
  5. Copy the AppKey (as clientId) and AppSecret (as clientSecret)
  6. Publish and deploy the application

Proactive Messaging (CLI)

Send messages to DingTalk conversations using the OpenClaw CLI:

# Send to a specific conversation
openclaw send --channel moltbot-dingtalk-stream --to <conversationId> "Hello from CLI"

# The conversationId can be found in logs when a message is received

Troubleshooting

Issue Solution
No messages received Check if Stream Mode is enabled in DingTalk app settings
Connection failed Verify clientId and clientSecret are correct
Reply not sent Ensure the bot has been messaged first (webhook is per-session)
Permission denied Check app permissions in DingTalk Developer Console

Debug Logs

openclaw logs --follow

Look for [default] DingTalk Stream client connected to confirm connection.

Architecture

┌─────────────────┐     WebSocket      ┌──────────────────┐
│  DingTalk API   │ ◄─────────────────► │  OpenClaw Plugin │
│  (Stream Mode)  │                     │  (This Plugin)   │
└─────────────────┘                     └──────────────────┘
                                               │
                                               ▼
                                        ┌──────────────────┐
                                        │  OpenClaw Agent  │
                                        │  (AI Processing) │
                                        └──────────────────┘

License

MIT

Changelog

See CHANGELOG.md for release history.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published