/install dingtalk-todo-cli
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 taskdws todo list --status open/completed/overdue→ Query tasksdws todo update --id --status completed→ Complete taskdws 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 sheetdws sheet record list --sheet --filter→ Query sheetdws sheet record update --sheet --filter --data→ Update sheet
Scheduling Operations
dws calendar event create --summary --start --end→ Schedule eventdws calendar list --type meeting→ Find meetings
People Operations
dws contact search --name→ Find persondws 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
- DING is intrusive: Only use DING for genuinely important/urgent items, not routine updates
- Confirm before DING escalation: Level 3+ escalations require user confirmation
- Rate limiting: Max 10 DINGs per hour; batch notifications when possible
- Auth check: Always run
dws auth statusbefore workflows - No delete without confirmation:
dws todo deleterequires explicit user approval - Respect working hours: Avoid DING outside 9:00-21:00 unless marked urgent
- 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-cliskill for orchestrated sync
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install dingtalk-todo-cli - 安装完成后,直接呼叫该 Skill 的名称或使用
/dingtalk-todo-cli触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 22 次。
如何安装 DingTalk Todo CLI?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install dingtalk-todo-cli」即可一键安装,无需额外配置。
DingTalk Todo CLI 是免费的吗?
是的,DingTalk Todo CLI 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
DingTalk Todo CLI 支持哪些平台?
DingTalk Todo CLI 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 DingTalk Todo CLI?
由 lm203688(@lm203688)开发并维护,当前版本 v1.0.0。