ワンクリックで
add-dingtalk
Add DingTalk as a channel. Uses Stream Mode (WebSocket, no public URL needed). Auto-registers groups on first message.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Add DingTalk as a channel. Uses Stream Mode (WebSocket, no public URL needed). Auto-registers groups on first message.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Run initial MatClaw setup. Use when user wants to install dependencies, authenticate messaging channels, register their main channel, or start the background services. Triggers on "setup", "install", "configure matclaw", or first-time setup requests.
Configure VASP integration. Connect your HPC cluster or local VASP installation so the agent can run VASP calculations via the 213 built-in computation skills.
Add Gmail integration to MatClaw. Can be configured as a tool (agent reads/sends emails when triggered from WhatsApp) or as a full channel (emails can trigger the agent, schedule tasks, and receive replies). Guides through GCP OAuth setup and implements the integration.
Add Ollama MCP server so the container agent can call local models for cheaper/faster tasks like summarization, translation, or general queries.
Add Slack as a channel. Can replace WhatsApp entirely or run alongside it. Uses Socket Mode (no public URL needed).
Add Telegram as a channel. Can replace WhatsApp entirely or run alongside it. Also configurable as a control-only channel (triggers actions) or passive channel (receives notifications only).
| name | add-dingtalk |
| description | Add DingTalk as a channel. Uses Stream Mode (WebSocket, no public URL needed). Auto-registers groups on first message. |
This skill adds DingTalk support to MatClaw using the skills engine for deterministic code changes, then walks through interactive setup.
Read .matclaw/state.yaml. If dingtalk is in applied_skills, skip to Phase 3 (Setup). The code changes are already in place.
Do they already have a DingTalk app configured? If yes, collect the Client ID and Client Secret now. If no, we'll create one in Phase 3.
Run the skills engine to apply this skill's code package.
If .matclaw/ directory doesn't exist yet:
npx tsx scripts/apply-skill.ts --init
npx tsx scripts/apply-skill.ts .claude/skills/add-dingtalk
This deterministically:
src/channels/dingtalk.ts (DingTalkChannel class with self-registration via registerChannel)src/dingtalk-auth.ts (interactive credential setup)import './dingtalk.js' to the channel barrel file src/channels/index.tsdingtalk-stream npm dependencyauth:dingtalk npm script.matclaw/state.yamlIf the apply reports merge conflicts, read the intent file:
modify/src/channels/index.ts.intent.md — what changed and invariantsnpx tsc --noEmit
npm run build
Build must be clean before proceeding.
If the user doesn't have a DingTalk app, share DINGTALK_SETUP.md or guide them through these steps:
qyapi_robot_sendmsg, qyapi_chat_manageWait for the user to provide both credentials.
Run the auth script:
npm run auth:dingtalk
This interactively:
store/dingtalk-credentials.json (mode 0600)Alternatively, users can create the file manually:
{
"clientId": "your-app-key",
"clientSecret": "your-app-secret"
}
npm run build
For systemd:
systemctl --user restart matclaw
For launchd:
launchctl kickstart -k gui/$(id -u)/com.matclaw
DingTalk groups are auto-registered on first message. When a user sends a message mentioning the bot in a DingTalk group (or sends a 1-on-1 message), the channel automatically:
groups/dingtalk_<id>/)CLAUDE.mdNo manual registration step is needed. The JID format is: dingtalk:<conversationId>.
Tell the user:
- Make sure the bot has been added to your DingTalk group
- Send a message in the group:
@BotName hello- For 1-on-1 chats: send any message directly to the bot
- The bot should respond within a few seconds
tail -f logs/matclaw.log | grep -i dingtalk
cat store/dingtalk-credentials.jsonsystemctl --user status matclawnpm run auth:dingtalk to re-enter credentialsgrep "DingTalk.*send\|DingTalk.*failed" logs/matclaw.logqyapi_robot_sendmsg permissionconversationType is being read correctly in logsrequiresTrigger setting matches expectationsThe DingTalk channel supports: