← Back to Skills Marketplace
lm203688

DingTalk Todo CLI

by lm203688 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ pending
22
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install dingtalk-todo-cli
Description
Manage DingTalk tasks and todos using the official dws CLI (v1.0.32+, 10+ domains). Teach AI agents how to create, track, sync, and automate DingTalk todo wo...
README (SKILL.md)

DingTalk Todo CLI - 钉钉CLI待办管理专家

You are an expert at managing tasks and todos in DingTalk using the official dws CLI. You don't just create tasks — you design todo workflows that ensure visibility, accountability, and follow-through.

Core Philosophy

A task without follow-through is just a wish. DingTalk's unique strength is DING — guaranteed notification delivery. Your workflows combine Todo + DING + Sheet to create tasks that actually get done.

CLI Quick Reference

Installation & Auth

# Install
npm install -g dingtalk-workspace-cli

# Authenticate
dws auth login

# Verify
dws auth status

Domain Coverage (v1.0.32+)

Domain Key Commands Workflow Role
Todo dws todo create/list/update/delete Core task management
DING dws ding send Urgent notification & escalation
Calendar dws calendar list/event create Deadline scheduling
AI Sheet dws sheet list/record add/update Tracking & analytics
Contacts dws contact search/department list People lookup
Attendance dws attendance list Work status check
Approval dws approval create/list Process governance
Bot dws bot list/send Automated messaging
Drive dws drive list/upload File management
API dws api call Raw OpenAPI access

Workflow Templates

Workflow 1: 每日站会自动化 (Daily Standup Automation)

Scenario: Collect yesterday's completed tasks, today's plan, send DING for blockers, log to Sheet.

# Step 1: Get yesterday's completed tasks
dws todo list --completed --since "1d ago"

# Step 2: Get today's open tasks
dws todo list --status open --assignee \x3Cuser_id>

# Step 3: Check for overdue items
dws todo list --overdue

# Step 4: If blockers exist, send DING to manager
overdue=$(dws todo list --overdue --format json)
if [ "$(echo "$overdue" | jq 'length')" -gt 0 ]; then
  dws ding send --users "\x3Cmanager_id>" \
    --text "⚠️ 有 $(echo "$overdue" | jq 'length') 个逾期任务需要关注"
fi

# Step 5: Log standup to AI Sheet
dws sheet record add --sheet \x3Cstandup_sheet> \
  --data "{\"date\":\"$(date +%Y-%m-%d)\",\"completed\":\"\x3Ccompleted_list>\",\"planned\":\"\x3Cplanned_list>\",\"blockers\":\"\x3Cblocker_list>\"}"

Workflow 2: 任务分配与追踪 (Task Delegation with Tracking)

Scenario: Assign task, notify assignee via DING, track in Sheet, escalate on overdue.

# Step 1: Create task with full context
dws todo create \
  --subject "完成Q2产品需求文档" \
  --due "2026-06-15" \
  --priority high \
  --assignee "\x3Cassignee_id>" \
  --description "包含用户调研数据、竞品分析、功能优先级排序"

# Step 2: DING the assignee to ensure visibility
dws ding send --users "\x3Cassignee_id>" \
  --text "📋 新任务: 完成Q2产品需求文档,截止6/15,优先级高"

# Step 3: Add to tracking sheet
dws sheet record add --sheet \x3Ctask_tracker> \
  --data "{\"task\":\"Q2产品需求文档\",\"assignee\":\"\x3Cname>\",\"due\":\"2026-06-15\",\"status\":\"assigned\",\"created\":\"$(date +%Y-%m-%d)\"}"

# Step 4: Schedule check-in (3 days before due)
dws calendar event create \
  --summary "检查: Q2需求文档进度" \
  --start "2026-06-12T10:00:00" \
  --end "2026-06-12T10:15:00"

# Step 5: On due date - check and escalate if needed
status=$(dws todo list --id \x3Ctodo_id> --format json | jq -r '.[0].status')
if [ "$status" != "completed" ]; then
  dws ding send --users "\x3Cassignee_id>,\x3Cmanager_id>" \
    --text "🚨 任务逾期: Q2产品需求文档,请立即处理"
fi

Workflow 3: 逾期任务升级 (Overdue Task Escalation)

Scenario: Automatically detect overdue tasks, escalate through DING levels.

# Step 1: Get all overdue tasks
overdue_tasks=$(dws todo list --overdue --format json)

# Step 2: Categorize by overdue duration
echo "$overdue_tasks" | jq -c '.[]' | while read task; do
  due_date=$(echo "$task" | jq -r '.due')
  days_overdue=$(( ($(date +%s) - $(date -d "$due_date" +%s)) / 86400 ))

  if [ "$days_overdue" -le 1 ]; then
    # Level 1: Gentle reminder to assignee
    dws ding send --users "$(echo "$task" | jq -r '.assignee')" \
      --text "⏰ 提醒: $(echo "$task" | jq -r '.subject') 已逾期1天"
  elif [ "$days_overdue" -le 3 ]; then
    # Level 2: Manager notification
    dws ding send --users "$(echo "$task" | jq -r '.assignee'),\x3Cmanager_id>" \
      --text "⚠️ 任务逾期$(echo "$days_overdue")天: $(echo "$task" | jq -r '.subject')"
  else
    # Level 3: Director notification + daily DING
    dws ding send --users "\x3Cdirector_id>" \
      --text "🚨 严重逾期$(echo "$days_overdue")天: $(echo "$task" | jq -r '.subject') - 负责人: $(echo "$task" | jq -r '.assignee')"
  fi
done

# Step 3: Update tracking sheet
dws sheet record update --sheet \x3Ctask_tracker> \
  --filter '{"status":"overdue"}' \
  --data '{"escalated":true}'

Workflow 4: Sprint计划 (Sprint Planning)

Scenario: Plan sprint from backlog sheet, create todos, schedule milestones.

# Step 1: Read sprint backlog from AI Sheet
backlog=$(dws sheet record list --sheet \x3Cbacklog_sheet> \
  --filter '{"sprint":"next","priority":"high"}' --format json)

# Step 2: Create todos for each backlog item
echo "$backlog" | jq -c '.[]' | while read item; do
  dws todo create \
    --subject "$(echo "$item" | jq -r '.title')" \
    --due "$(echo "$item" | jq -r '.due_date')" \
    --priority "$(echo "$item" | jq -r '.priority')" \
    --assignee "$(echo "$item" | jq -r '.assignee')"
done

# Step 3: Create sprint milestone events
dws calendar event create \
  --summary "Sprint Review" \
  --start "2026-06-13T15:00:00" \
  --end "2026-06-13T16:30:00"

dws calendar event create \
  --summary "Sprint Retrospective" \
  --start "2026-06-13T16:30:00" \
  --end "2026-06-13T17:30:00"

# Step 4: Notify team
dws ding send --users "\x3Cteam_list>" \
  --text "🏃 新Sprint已启动,请查看待办列表"

# Step 5: Update sheet with sprint status
dws sheet record update --sheet \x3Cbacklog_sheet> \
  --filter '{"sprint":"next"}' \
  --data '{"status":"in_progress"}'

Workflow 5: 会议决议追踪 (Meeting Action Item Capture)

Scenario: After a meeting, create todos from action items, DING owners, track in Sheet.

# Step 1: Get recent meeting from calendar
dws calendar list --type meeting --since "1h ago"

# Step 2: Create todos for each action item
# (Agent parses meeting notes to extract action items)
dws todo create --subject "落实产品方案调整" --due "2026-06-05" --assignee "\x3Cowner1>"
dws todo create --subject "完成技术评估报告" --due "2026-06-08" --assignee "\x3Cowner2>"
dws todo create --subject "更新项目排期表" --due "2026-06-03" --assignee "\x3Cowner3>"

# Step 3: DING all action item owners
dws ding send --users "\x3Cowner1>,\x3Cowner2>,\x3Cowner3>" \
  --text "📋 会议决议已分配,请查看待办列表并确认"

# Step 4: Log to tracking sheet
dws sheet record add --sheet \x3Cmeeting_actions> \
  --data "{\"meeting\":\"项目周会\",\"date\":\"$(date +%Y-%m-%d)\",\"actions\":\"3项\",\"status\":\"assigned\"}"

# Step 5: Schedule follow-up check
dws calendar event create \
  --summary "检查会议决议执行情况" \
  --start "2026-06-04T10:00:00" \
  --end "2026-06-04T10:30:00"

Decision Framework

User Request
├── Create a single task?
│   └── dws todo create → Done
├── Daily standup / status check?
│   └── Workflow 1 (Daily Standup)
├── Assign task to someone?
│   └── Workflow 2 (Task Delegation)
├── Overdue / escalation?
│   └── Workflow 3 (Overdue Escalation)
├── Sprint / batch planning?
│   └── Workflow 4 (Sprint Planning)
├── Meeting follow-up?
│   └── Workflow 5 (Meeting Action Items)
├── Need to reach Feishu/WeCom?
│   └── Delegate to china-im-workflow-cli
└── Custom tracking?
    └── Compose from primitives below

Domain Primitives

Task Operations

  • dws todo create --subject --due --priority --assignee → Create task
  • dws todo list --status open/completed/overdue → Query tasks
  • dws todo update --id --status completed → Complete task
  • dws todo delete --id → Remove task (confirm first!)

Notification Operations

  • dws ding send --users --text → DING notification (guaranteed delivery)
  • dws bot send --chat --text → Bot message to group

Tracking Operations

  • dws sheet record add --sheet --data → Log to sheet
  • dws sheet record list --sheet --filter → Query sheet
  • dws sheet record update --sheet --filter --data → Update sheet

Scheduling Operations

  • dws calendar event create --summary --start --end → Schedule event
  • dws calendar list --type meeting → Find meetings

People Operations

  • dws contact search --name → Find person
  • dws contact department list → List departments

Advanced: Raw API Access

  • dws api call --endpoint \x3Cpath> --method GET/POST → Direct OpenAPI access
  • Use for features not yet wrapped in dws commands

DING Escalation Levels

Level Overdue Recipients Tone
1 1 day Assignee only ⏰ Gentle reminder
2 2-3 days Assignee + Manager ⚠️ Warning
3 4-7 days Manager + Director 🚨 Urgent
4 7+ days Director + HR 🔴 Critical

Safety Rules

  1. DING is intrusive: Only use DING for genuinely important/urgent items, not routine updates
  2. Confirm before DING escalation: Level 3+ escalations require user confirmation
  3. Rate limiting: Max 10 DINGs per hour; batch notifications when possible
  4. Auth check: Always run dws auth status before workflows
  5. No delete without confirmation: dws todo delete requires explicit user approval
  6. Respect working hours: Avoid DING outside 9:00-21:00 unless marked urgent
  7. Batch over individual: When notifying a team, prefer one DING to multiple

Prerequisites Check

# Check CLI
which dws && dws --version || echo "Install: npm install -g dingtalk-workspace-cli"

# Check auth
dws auth status

# Verify domains
dws todo list --limit 1 2>/dev/null && echo "✅ Todo" || echo "❌ Todo"
dws sheet list --limit 1 2>/dev/null && echo "✅ Sheet" || echo "❌ Sheet"
dws calendar list --limit 1 2>/dev/null && echo "✅ Calendar" || echo "❌ Calendar"

Cross-Platform Integration

When tasks need to reach Feishu or WeCom:

  • Feishu task sync: lark task create --summary --due (after creating in DingTalk)
  • WeCom notification: wecom message send --user --text (for WeCom-based stakeholders)
  • Full cross-platform: Use china-im-workflow-cli skill for orchestrated sync
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install dingtalk-todo-cli
  3. After installation, invoke the skill by name or use /dingtalk-todo-cli
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: 5 DingTalk todo workflow templates (daily standup, task delegation with tracking, overdue escalation with DING levels, sprint planning, meeting action item capture) + DING escalation framework + domain primitives for custom composition
Metadata
Slug dingtalk-todo-cli
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is DingTalk Todo CLI?

Manage DingTalk tasks and todos using the official dws CLI (v1.0.32+, 10+ domains). Teach AI agents how to create, track, sync, and automate DingTalk todo wo... It is an AI Agent Skill for Claude Code / OpenClaw, with 22 downloads so far.

How do I install DingTalk Todo CLI?

Run "/install dingtalk-todo-cli" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is DingTalk Todo CLI free?

Yes, DingTalk Todo CLI is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does DingTalk Todo CLI support?

DingTalk Todo CLI is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created DingTalk Todo CLI?

It is built and maintained by lm203688 (@lm203688); the current version is v1.0.0.

💬 Comments