Loading...
Loading...
Compare original and translation side by side
Skill by ara.so — Devtools Skills collection.
dws由ara.so提供的Skill——Devtools Skills合集。
dwscurl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | shirm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iexnpm install -g dingtalk-workspace-cligit clone https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git
cd dingtalk-workspace-cli
go build -o dws ./cmd
cp dws ~/.local/bin/dws upgrade # interactive upgrade
dws upgrade --check # check without installing
dws upgrade --version v1.0.7 # specific version
dws upgrade --rollback # rollbackcurl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | shirm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iexnpm install -g dingtalk-workspace-cligit clone https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git
cd dingtalk-workspace-cli
go build -o dws ./cmd
cp dws ~/.local/bin/dws upgrade # 交互式升级
dws upgrade --check # 仅检查版本不安装
dws upgrade --version v1.0.7 # 指定版本升级
dws upgrade --rollback # 回滚版本dws auth logindws auth login --devicedws auth login --client-id $DINGTALK_CLIENT_ID --client-secret $DINGTALK_CLIENT_SECRETdws auth statusdws auth logoutdws auth logindws auth login --devicedws auth login --client-id $DINGTALK_CLIENT_ID --client-secret $DINGTALK_CLIENT_SECRETdws auth statusdws auth logout| Service | Commands | Use Cases |
|---|---|---|
| user, dept, org | Search users, list departments, get org info |
| event | Create/list/update/delete calendar events |
| space, base, table, record, field, view | Query/create AI table records, manage schema |
| search, create | Search DingTalk Docs, create documents |
| task, category | Create/list/update todos, manage categories |
| send, list | Send messages, list conversations |
| list, upload, download | Manage DingTalk drive files |
| record, shift | Get attendance records, query shifts |
| list | List reports (inbox/sent/created) |
| list, detail | Get AI meeting minutes |
| group, message | Manage IM groups, send messages |
| 服务 | 命令 | 使用场景 |
|---|---|---|
| user, dept, org | 搜索用户、列出部门、获取组织信息 |
| event | 创建/列出/更新/删除日历事件 |
| space, base, table, record, field, view | 查询/创建AI表格记录、管理数据结构 |
| search, create | 搜索钉钉文档、创建文档 |
| task, category | 创建/列出/更新待办事项、管理分类 |
| send, list | 发送消息、列出会话 |
| list, upload, download | 管理钉盘文件 |
| record, shift | 获取考勤记录、查询排班 |
| list | 列出汇报(收件箱/已发送/我创建的) |
| list, detail | 获取AI会议纪要 |
| group, message | 管理IM群组、发送消息 |
undefinedundefinedundefinedundefinedundefinedundefined
**Get current user:**
```bash
dws contact user get-self -f json --jq '.result[0].orgEmployeeModel | {name: .orgUserName, userId: .userId, depts: [.depts[].deptName]}'dws contact user get --user-id "USER_ID"undefined
**获取当前用户信息:**
```bash
dws contact user get-self -f json --jq '.result[0].orgEmployeeModel | {name: .orgUserName, userId: .userId, depts: [.depts[].deptName]}'dws contact user get --user-id "USER_ID"undefined
**List department members:**
```bash
dws contact dept members --dept-id "DEPT_ID" -f json
**列出部门成员:**
```bash
dws contact dept members --dept-id "DEPT_ID" -f jsonundefinedundefined
**Create event:**
```bash
**创建事件:**
```bash
**Update event:**
```bash
dws calendar event update \
--event-id "EVENT_ID" \
--summary "Updated Title" \
--start-time "2026-05-20T15:00:00+08:00" \
--end-time "2026-05-20T16:00:00+08:00" \
--yesdws calendar event delete --event-id "EVENT_ID" --yes
**更新事件:**
```bash
dws calendar event update \
--event-id "EVENT_ID" \
--summary "更新后的标题" \
--start-time "2026-05-20T15:00:00+08:00" \
--end-time "2026-05-20T16:00:00+08:00" \
--yesdws calendar event delete --event-id "EVENT_ID" --yesdws aitable space list -f json --jq '.result[] | {id: .spaceId, name: .name}'dws aitable base list --space-id "SPACE_ID"dws aitable table list --base-id "BASE_ID"undefineddws aitable space list -f json --jq '.result[] | {id: .spaceId, name: .name}'dws aitable base list --space-id "SPACE_ID"dws aitable table list --base-id "BASE_ID"undefined
**Create records:**
```bash
**创建记录:**
```bash
**Update records:**
```bash
dws aitable record update \
--base-id "BASE_ID" \
--table-id "TABLE_ID" \
--records '[{"recordId":"RECORD_ID","fields":{"Status":"Done"}}]' \
--yesdws aitable record delete \
--base-id "BASE_ID" \
--table-id "TABLE_ID" \
--record-ids "RECORD_ID_1,RECORD_ID_2" \
--yesdws aitable field list --base-id "BASE_ID" --table-id "TABLE_ID"
**更新记录:**
```bash
dws aitable record update \
--base-id "BASE_ID" \
--table-id "TABLE_ID" \
--records '[{"recordId":"RECORD_ID","fields":{"Status":"已完成"}}]' \
--yesdws aitable record delete \
--base-id "BASE_ID" \
--table-id "TABLE_ID" \
--record-ids "RECORD_ID_1,RECORD_ID_2" \
--yesdws aitable field list --base-id "BASE_ID" --table-id "TABLE_ID"undefinedundefined
**Create todo:**
```bash
dws todo task create \
--title "Review PR #123" \
--executors "USER_ID" \
--due-time "2026-05-22T18:00:00+08:00" \
--priority 10 \
--yes
**创建待办事项:**
```bash
dws todo task create \
--title "评审PR #123" \
--executors "USER_ID" \
--due-time "2026-05-22T18:00:00+08:00" \
--priority 10 \
--yes
**Update todo:**
```bash
dws todo task update \
--task-id "TASK_ID" \
--is-done true \
--yes
**更新待办事项:**
```bash
dws todo task update \
--task-id "TASK_ID" \
--is-done true \
--yes
**Delete todo:**
```bash
dws todo task delete --task-id "TASK_ID" --yesdws todo category list -f json
**删除待办事项:**
```bash
dws todo task delete --task-id "TASK_ID" --yesdws todo category list -f jsonundefinedundefinedundefinedundefinedundefinedundefined
**List conversations:**
```bash
dws chat list -f json --jq '.result[] | {id: .openConversationId, title: .title, type: .conversationType}'dws im group list --jq '.result[] | {id: .openConversationId, name: .name, memberCount: .memberCount}'
**列出会话:**
```bash
dws chat list -f json --jq '.result[] | {id: .openConversationId, title: .title, type: .conversationType}'dws im group list --jq '.result[] | {id: .openConversationId, name: .name, memberCount: .memberCount}'undefinedundefined
**Upload file:**
```bash
dws drive upload \
--space-id "SPACE_ID" \
--parent-id "PARENT_ID" \
--file-path "/path/to/file.pdf" \
--yesdws drive download \
--space-id "SPACE_ID" \
--file-id "FILE_ID" \
--output-path "/path/to/save/file.pdf"
**上传文件:**
```bash
dws drive upload \
--space-id "SPACE_ID" \
--parent-id "PARENT_ID" \
--file-path "/path/to/file.pdf" \
--yesdws drive download \
--space-id "SPACE_ID" \
--file-id "FILE_ID" \
--output-path "/path/to/save/file.pdf"undefinedundefined
**Query shift schedules:**
```bash
dws attendance shift query \
--user-ids "USER_ID" \
--start-date "2026-05-20" \
--end-date "2026-05-27"
**查询排班:**
```bash
dws attendance shift query \
--user-ids "USER_ID" \
--start-date "2026-05-20" \
--end-date "2026-05-27"undefinedundefinedundefinedundefinedundefinedundefined
**Get minutes detail:**
```bash
dws minutes detail --minutes-id "MINUTES_ID" -f json
**获取纪要详情:**
```bash
dws minutes detail --minutes-id "MINUTES_ID" -f jsondws schemadws schema --jq '.products[] | {id, tool_count: (.tools | length)}'undefineddws schemadws schema --jq '.products[] | {id, tool_count: (.tools | length)}'undefined
**Example discovery workflow:**
```bash
**发现流程示例:**
```bashundefinedundefined~/.config/dws/config.yaml%APPDATA%\dws\config.yamlauth:
client_id: "your-app-key"
client_secret: "your-app-secret"
output:
default_format: "json"
color: true
debug: falseexport DWS_OUTPUT_FORMAT=json
export DWS_DEBUG=true
export DINGTALK_CLIENT_ID=your-app-key
export DINGTALK_CLIENT_SECRET=your-app-secret~/.config/dws/config.yaml%APPDATA%\dws\config.yamlauth:
client_id: "your-app-key"
client_secret: "your-app-secret"
output:
default_format: "json"
color: true
debug: falseexport DWS_OUTPUT_FORMAT=json
export DWS_DEBUG=true
export DINGTALK_CLIENT_ID=your-app-key
export DINGTALK_CLIENT_SECRET=your-app-secretundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined
**Batch import to AITable from JSON:**
```bash
**从JSON批量导入到AITable:**
```bash
**Find overdue todos:**
```bash
dws todo task list --is-done false -f json | \
jq --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
'.result[] | select(.dueTime != null and .dueTime < $now) | {id: .taskId, title: .subject, due: .dueTime}'
**查找逾期待办事项:**
```bash
dws todo task list --is-done false -f json | \
jq --arg now "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
'.result[] | select(.dueTime != null and .dueTime < $now) | {id: .taskId, title: .subject, due: .dueTime}'undefinedundefined
**Send notification to department:**
```bash
**给部门成员发送通知:**
```bashundefinedundefinedundefinedundefined
**Organization not enabled:**
- Join the DingTalk co-creation group: scan QR in README
- Ask admin to enable CLI access in Developer Platform
**组织未启用:**
- 加入钉钉共创群:扫描README中的二维码
- 联系管理员在开发者平台启用CLI访问权限undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined
For attendance, use date format:
```bash
考勤模块使用日期格式:
```bashundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefineddocs/command-index.mddocs/reference.mdCHANGELOG.mdskills/scripts/docs/command-index.mddocs/reference.mdCHANGELOG.mdskills/scripts/$DINGTALK_CLIENT_ID$DINGTALK_CLIENT_SECRET$DINGTALK_CLIENT_ID$DINGTALK_CLIENT_SECRET#!/bin/bash#!/bin/bashundefinedundefined