[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77BTZ2G84PYC6YA5MB5VGVE":3,"skill-same:01M77BTZ2G84PYC6YA5MB5VGVE":45},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M77BTZ2G84PYC6YA5MB5VGVE","dingtalk-cli-auto",null,"Lord1Egypt\u002Fawesome-skill-forge","Lord1Egypt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F99746359?v=4","01M7592YDNT0XK9WJ0T2MQVPDN","Mohamed Mounir Ali AL Keshita","01M75GRFNHC8VZNWEB8DKDE433",3,"MIT","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fd\u002Fdingtalk-cli-auto\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"# DingTalk CLI Auto Skill\n\n钉钉 CLI 自动化技能 - 基于钉钉官方 CLI 工具 (dws) 实现企业自动化功能。\n\n## Description\n\n本 Skill 封装了钉钉官方 CLI 工具 `dws` (DingTalk Workspace CLI)，提供以下企业自动化能力：\n\n- 📨 **消息管理**: 发送文本\u002FMarkdown消息给联系人或群聊\n- 📅 **日程管理**: 创建日程、查询空闲时段、查看日程列表\n- ✅ **待办事项**: 创建、完成、删除、查询待办\n- 👥 **通讯录**: 搜索联系人、查询部门成员\n- 🤖 **机器人交互**: 发送群机器人消息\n\n## Prerequisites\n\n### 1. 安装 dws CLI\n\n```bash\n# Linux\u002FmacOS\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FDingTalk-Real-AI\u002Fdingtalk-workspace-cli\u002Fmain\u002Fscripts\u002Finstall.sh | sh\n\n# Windows PowerShell\nirm https:\u002F\u002Fraw.githubusercontent.com\u002FDingTalk-Real-AI\u002Fdingtalk-workspace-cli\u002Fmain\u002Fscripts\u002Finstall.ps1 | iex\n```\n\n### 2. 钉钉开放平台配置\n\n1. 访问 [钉钉开放平台](https:\u002F\u002Fopen.dingtalk.com\u002F) 创建企业内部应用\n2. 获取 `AppKey` 和 `AppSecret`\n3. 配置应用权限：\n   - 通讯录管理\n   - 日程管理\n   - 待办管理\n   - 群机器人消息\n4. 发布应用\n\n### 3. 环境变量配置\n\n```bash\nexport DWS_CLIENT_ID=\"your-app-key\"\nexport DWS_CLIENT_SECRET=\"your-app-secret\"\n```\n\n或使用 OpenClaw 环境配置：\n\n```bash\nopenclaw config set dingtalk.app_key your-app-key\nopenclaw config set dingtalk.app_secret your-app-secret\n```\n\n### 4. 首次认证\n\n```bash\ndws auth login\n```\n\n按提示完成 OAuth 设备流认证。\n\n## Tools\n\n### 发送消息\n\n#### `send_text_message`\n发送文本消息给指定用户或群聊\n\n```bash\n# 给用户发送消息\nnode scripts\u002Fmessage.js send-text --user-id \"user123\" --content \"Hello, this is a test message\"\n\n# 给群聊发送消息\nnode scripts\u002Fmessage.js send-text --chat-id \"chat123\" --content \"Group notification\"\n```\n\n#### `send_markdown_message`\n发送 Markdown 格式消息\n\n```bash\nnode scripts\u002Fmessage.js send-md --user-id \"user123\" --title \"通知\" --content \"**重要提醒**：会议即将开始\"\n```\n\n### 日程管理\n\n#### `create_schedule`\n创建日程\u002F会议\n\n```bash\nnode scripts\u002Fcalendar.js create \\\n  --title \"周例会\" \\\n  --start \"2026-04-03T14:00:00\" \\\n  --end \"2026-04-03T15:00:00\" \\\n  --attendees \"user1,user2,user3\" \\\n  --location \"会议室A\"\n```\n\n#### `list_schedules`\n查询日程列表\n\n```bash\n# 查询今天的日程\nnode scripts\u002Fcalendar.js list --today\n\n# 查询指定日期范围\nnode scripts\u002Fcalendar.js list --start \"2026-04-01\" --end \"2026-04-07\"\n```\n\n#### `check_free_busy`\n查询用户空闲时间\n\n```bash\nnode scripts\u002Fcalendar.js free-busy \\\n  --users \"user1,user2\" \\\n  --start \"2026-04-03T09:00:00\" \\\n  --end \"2026-04-03T18:00:00\"\n```\n\n### 待办事项\n\n#### `create_todo`\n创建待办事项\n\n```bash\nnode scripts\u002Ftodo.js create \\\n  --content \"完成项目文档\" \\\n  --due \"2026-04-05T18:00:00\" \\\n  --assignees \"user1\"\n```\n\n#### `list_todos`\n查询待办列表\n\n```bash\n# 所有待办\nnode scripts\u002Ftodo.js list\n\n# 即将到期的待办\nnode scripts\u002Ftodo.js list --due-within 3\n```\n\n#### `complete_todo`\n完成待办\n\n```bash\nnode scripts\u002Ftodo.js complete --id \"todo123\"\n```\n\n#### `delete_todo`\n删除待办\n\n```bash\nnode scripts\u002Ftodo.js delete --id \"todo123\"\n```\n\n### 通讯录\n\n#### `search_contacts`\n搜索联系人\n\n```bash\n# 按姓名搜索\nnode scripts\u002Fcontact.js search --name \"张三\"\n\n# 按部门搜索\nnode scripts\u002Fcontact.js search --dept \"技术部\"\n```\n\n#### `get_department_members`\n获取部门成员列表\n\n```bash\nnode scripts\u002Fcontact.js dept-members --dept-id \"dept123\"\n```\n\n### 机器人消息\n\n#### `send_robot_message`\n发送群机器人消息\n\n```bash\nnode scripts\u002Frobot.js send \\\n  --webhook \"https:\u002F\u002Foapi.dingtalk.com\u002Frobot\u002Fsend?access_token=xxx\" \\\n  --secret \"SECxxx\" \\\n  --content \"机器人通知消息\"\n```\n\n## Usage Examples\n\n### 场景 1: 每日待办提醒\n\n```bash\n# 获取今日待办\nnode scripts\u002Ftodo.js list --today\n\n# 创建今日待办\nnode scripts\u002Ftodo.js create --content \"提交日报\" --due \"today 18:00\"\n```\n\n### 场景 2: 会议通知\n\n```bash\n# 搜索参会人员\nnode scripts\u002Fcontact.js search --name \"张三\"\n\n# 检查空闲时间\nnode scripts\u002Fcalendar.js free-busy --users \"user1,user2\" --duration 60\n\n# 创建会议\nnode scripts\u002Fcalendar.js create \\\n  --title \"项目评审会\" \\\n  --start \"2026-04-03T14:00:00\" \\\n  --duration 60 \\\n  --attendees \"user1,user2\"\n\n# 发送会议提醒\nnode scripts\u002Fmessage.js send-md \\\n  --chat-id \"chat123\" \\\n  --title \"会议提醒\" \\\n  --content \"**项目评审会** 将于14:00开始，请准时参加\"\n```\n\n### 场景 3: 任务分派\n\n```bash\n# 查找成员\nnode scripts\u002Fcontact.js search --name \"李四\"\n\n# 创建并分派待办\nnode scripts\u002Ftodo.js create \\\n  --content \"完成API文档编写\" \\\n  --assignees \"user2\" \\\n  --due \"2026-04-05\"\n\n# 发送通知\nnode scripts\u002Fmessage.js send-text \\\n  --user-id \"user2\" \\\n  --content \"你有一个新的待办任务：完成API文档编写，截止2026-04-05\"\n```\n\n## API Reference\n\n### 命令行参数规范\n\n所有脚本遵循统一的参数规范：\n\n| 参数 | 说明 | 示例 |\n|------|------|------|\n| `--user-id` | 用户ID | `user123` |\n| `--chat-id` | 群聊ID | `chat456` |\n| `--content` | 消息\u002F内容 | `Hello World` |\n| `--title` | 标题 | `会议通知` |\n| `--start` | 开始时间 | `2026-04-03T14:00:00` |\n| `--end` | 结束时间 | `2026-04-03T15:00:00` |\n| `--duration` | 持续时间(分钟) | `60` |\n| `--attendees` | 参会人(逗号分隔) | `user1,user2` |\n| `--assignees` | 负责人(逗号分隔) | `user1` |\n| `--due` | 截止日期 | `2026-04-05` 或 `today` |\n| `--dept-id` | 部门ID | `dept123` |\n| `--name` | 姓名 | `张三` |\n| `--dept` | 部门名称 | `技术部` |\n| `--webhook` | 机器人Webhook | `https:\u002F\u002F...` |\n| `--secret` | 机器人密钥 | `SEC...` |\n\n### 时间格式\n\n- ISO 8601: `2026-04-03T14:00:00`\n- 相对时间: `today`, `tomorrow`, `+3d` (3天后)\n- 自然语言: `今天18:00`, `明天上午9点`\n\n## Error Handling\n\n### 常见错误\n\n| 错误码 | 说明 | 解决方案 |\n|--------|------|----------|\n| 401 | 未认证或Token过期 | 执行 `dws auth login` |\n| 403 | 权限不足 | 检查应用权限配置 |\n| 404 | 用户\u002F群聊不存在 | 检查ID是否正确 |\n| 400 | 参数错误 | 检查参数格式 |\n| 429 | 请求过于频繁 | 稍后重试 |\n\n### 调试模式\n\n添加 `--debug` 参数查看详细日志：\n\n```bash\nnode scripts\u002Fmessage.js send-text --user-id \"user123\" --content \"test\" --debug\n```\n\n## Configuration\n\n### OpenClaw 集成配置\n\n在 OpenClaw 配置文件中添加：\n\n```json\n{\n  \"skills\": {\n    \"dingtalk-cli-auto\": {\n      \"app_key\": \"your-app-key\",\n      \"app_secret\": \"your-app-secret\",\n      \"default_chat_id\": \"your-default-chat-id\"\n    }\n  }\n}\n```\n\n### 环境变量\n\n| 变量名 | 说明 | 必需 |\n|--------|------|------|\n| `DWS_CLIENT_ID` | 钉钉AppKey | 是 |\n| `DWS_CLIENT_SECRET` | 钉钉AppSecret | 是 |\n| `DINGTALK_DEFAULT_CHAT` | 默认群聊ID | 否 |\n| `DINGTALK_DEBUG` | 调试模式 | 否 |\n\n## Dependencies\n\n- Node.js >= 18.0.0\n- dws CLI >= 0.5.0\n\n## Installation\n\n```bash\n# 克隆到技能目录\ncd ~\u002Fclawd\u002Fskills\ngit clone \u003Crepo-url> dingtalk-cli-auto\n\n# 安装依赖\ncd dingtalk-cli-auto\nnpm install\n\n# 配置认证\nexport DWS_CLIENT_ID=\"your-app-key\"\nexport DWS_CLIENT_SECRET=\"your-app-secret\"\ndws auth login\n\n# 测试\nnpm test\n```\n\n## Testing\n\n运行测试用例：\n\n```bash\n# 全部测试\nnpm test\n\n# 单模块测试\nnpm run test:message\nnpm run test:calendar\nnpm run test:todo\nnpm run test:contact\n```\n\n## Troubleshooting\n\n### 问题：dws 命令未找到\n\n**解决方案**：\n```bash\n# 确认安装路径\nwhich dws\n\n# 添加到 PATH\nexport PATH=\"$HOME\u002F.local\u002Fbin:$PATH\"\n\n# 重新安装\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FDingTalk-Real-AI\u002Fdingtalk-workspace-cli\u002Fmain\u002Fscripts\u002Finstall.sh | sh\n```\n\n### 问题：认证失败\n\n**解决方案**：\n```bash\n# 清除缓存重新认证\ndws auth logout\ndws auth login\n\n# 检查环境变量\necho $DWS_CLIENT_ID\necho $DWS_CLIENT_SECRET\n```\n\n### 问题：权限不足\n\n**解决方案**：\n1. 检查钉钉开放平台应用权限设置\n2. 确认应用已发布\n3. 确认用户在企业通讯录中\n\n## Changelog\n\n### v1.0.0 (2026-04-02)\n- 初始版本发布\n- 支持消息发送、日程管理、待办事项、通讯录查询\n- 支持机器人消息发送\n\n## License\n\nMIT\n\n## Credits\n\n- [DingTalk Workspace CLI](https:\u002F\u002Fgithub.com\u002FDingTalk-Real-AI\u002Fdingtalk-workspace-cli) - 钉钉官方CLI工具\n- [钉钉开放平台](https:\u002F\u002Fopen.dingtalk.com\u002F) - 钉钉开放API\n",{},"master","4aa004da461d820f4ea5499e58eb8d196cf99016","community\u002Fclawhub\u002Fd\u002Fdingtalk-cli-auto",0,"https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge","https:\u002F\u002Fskill-explorer-rho.vercel.app","https:\u002F\u002Fgithub.com\u002FLord1Egypt","Unbreakable. Unstoppable. Unmatched⚡.\r\n Speaker of machine tongues 🤖  | World-builder of decentralized dreams 🌐 | Defender of the digital realm🛡️.","2026-06-10 08:21:01",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add Lord1Egypt\u002Fawesome-skill-forge --skill dingtalk-cli-auto",{"tool":37,"command":38},"bunx","bunx skills add Lord1Egypt\u002Fawesome-skill-forge --skill dingtalk-cli-auto",{"tool":40,"command":41},"pnpm","pnpm dlx skills add Lord1Egypt\u002Fawesome-skill-forge --skill dingtalk-cli-auto","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fcommunity\u002Fclawhub\u002Fd\u002Fdingtalk-cli-auto\u002FSKILL.md",true,[],[46,53,60,67,74,81],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":18},"01M785WKJB99G3STR1NF9NRTJW","youtube-content","YouTube transcripts to summaries, threads, blogs.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fyoutube-content\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":18},"01M785WEFHB0G2S9YA6EPR3H0E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fxurl\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":18},"01M785W98EDN4EFJXJPMQEHCRC","touchdesigner-mcp","Control a running TouchDesigner instance via twozero MCP — create operators, set parameters, wire connections, execute Python, build real-time visuals. 36 native tools.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftouchdesigner-mcp\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":18},"01M785W5S9FP3QBH2V191E025P","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Ftest-driven-development\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":18},"01M785W2AS08NSSH9YATCV6FJB","teams-meeting-pipeline","Operate the Teams meeting summary pipeline via Hermes CLI — summarize meetings, inspect pipeline status, replay jobs, manage Microsoft Graph subscriptions.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fteams-meeting-pipeline\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":18},"01M785VXKW4T34BTP1SCHW1R7F","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002FLord1Egypt\u002Fawesome-skill-forge\u002Fblob\u002Fmaster\u002Fskills\u002Fsystematic-debugging\u002FSKILL.md",[],[]]