[{"data":1,"prerenderedAt":834},["ShallowReactive",2],{"post-dws-dingtalk-cli":3},{"id":4,"title":5,"author":6,"body":7,"description":818,"draft":819,"extension":820,"image":821,"meta":822,"navigation":81,"path":823,"pinned":819,"published":824,"seo":825,"stem":826,"tags":827,"__hash__":833},"posts\u002Fposts\u002Fdws-dingtalk-cli\u002Findex.md","DWS — 钉钉官方出品的 AI 友好命令行工具",null,{"type":8,"value":9,"toc":804},"minimark",[10,15,19,27,177,180,183,240,243,258,261,264,271,512,519,523,526,548,551,566,569,589,592,595,602,668,671,674,679,682,734,738,759,763,766,781,784,788,791,794,797,800],[11,12,14],"h2",{"id":13},"dws-是什么","dws 是什么",[16,17,18],"p",{},"dws（DingTalk Workspace CLI）是阿里巴巴 2026 年开源的钉钉命令行工具，Apache-2.0 协议，Go 语言编写。",[16,20,21,22,26],{},"它的定位很明确：",[23,24,25],"strong",{},"把钉钉的所有产品能力暴露给 AI Agent 和命令行用户","。不用打开钉钉 App，不用写 API 调用代码，一条命令搞定。",[28,29,34],"pre",{"className":30,"code":31,"language":32,"meta":33,"style":33},"language-bash shiki shiki-themes github-light github-dark","# 查看今天有什么会\ndws calendar event list --start 2026-06-01 --end 2026-06-01\n\n# 给群里发条消息\ndws chat send --group-id xxx --content \"今天发布推迟到下午3点\"\n\n# 创建一个待办\ndws todo task create --subject \"Review PR #123\" --due-date 2026-06-02\n\n# 读取钉钉文档\ndws doc read --url \"https:\u002F\u002Falidocs.dingtalk.com\u002Fi\u002Fnodes\u002Fxxx\"\n","bash","",[35,36,37,46,76,83,89,112,117,123,149,154,160],"code",{"__ignoreMap":33},[38,39,42],"span",{"class":40,"line":41},"line",1,[38,43,45],{"class":44},"sHbNN","# 查看今天有什么会\n",[38,47,49,53,57,60,63,67,70,73],{"class":40,"line":48},2,[38,50,52],{"class":51},"sw2iP","dws",[38,54,56],{"class":55},"scXbn"," calendar",[38,58,59],{"class":55}," event",[38,61,62],{"class":55}," list",[38,64,66],{"class":65},"suQ91"," --start",[38,68,69],{"class":55}," 2026-06-01",[38,71,72],{"class":65}," --end",[38,74,75],{"class":55}," 2026-06-01\n",[38,77,79],{"class":40,"line":78},3,[38,80,82],{"emptyLinePlaceholder":81},true,"\n",[38,84,86],{"class":40,"line":85},4,[38,87,88],{"class":44},"# 给群里发条消息\n",[38,90,92,94,97,100,103,106,109],{"class":40,"line":91},5,[38,93,52],{"class":51},[38,95,96],{"class":55}," chat",[38,98,99],{"class":55}," send",[38,101,102],{"class":65}," --group-id",[38,104,105],{"class":55}," xxx",[38,107,108],{"class":65}," --content",[38,110,111],{"class":55}," \"今天发布推迟到下午3点\"\n",[38,113,115],{"class":40,"line":114},6,[38,116,82],{"emptyLinePlaceholder":81},[38,118,120],{"class":40,"line":119},7,[38,121,122],{"class":44},"# 创建一个待办\n",[38,124,126,128,131,134,137,140,143,146],{"class":40,"line":125},8,[38,127,52],{"class":51},[38,129,130],{"class":55}," todo",[38,132,133],{"class":55}," task",[38,135,136],{"class":55}," create",[38,138,139],{"class":65}," --subject",[38,141,142],{"class":55}," \"Review PR #123\"",[38,144,145],{"class":65}," --due-date",[38,147,148],{"class":55}," 2026-06-02\n",[38,150,152],{"class":40,"line":151},9,[38,153,82],{"emptyLinePlaceholder":81},[38,155,157],{"class":40,"line":156},10,[38,158,159],{"class":44},"# 读取钉钉文档\n",[38,161,163,165,168,171,174],{"class":40,"line":162},11,[38,164,52],{"class":51},[38,166,167],{"class":55}," doc",[38,169,170],{"class":55}," read",[38,172,173],{"class":65}," --url",[38,175,176],{"class":55}," \"https:\u002F\u002Falidocs.dingtalk.com\u002Fi\u002Fnodes\u002Fxxx\"\n",[11,178,179],{"id":179},"安装",[16,181,182],{},"三种方式，选你喜欢的：",[28,184,186],{"className":30,"code":185,"language":32,"meta":33,"style":33},"# npm（推荐，跨平台自动下载二进制）\nnpm install -g dingtalk-workspace-cli\n\n# Homebrew（macOS\u002FLinux）\nbrew install dws\n\n# 直接下载二进制\n# https:\u002F\u002Fgithub.com\u002Fopen-dingtalk\u002Fdingtalk-workspace-cli\u002Freleases\n",[35,187,188,193,207,211,216,226,230,235],{"__ignoreMap":33},[38,189,190],{"class":40,"line":41},[38,191,192],{"class":44},"# npm（推荐，跨平台自动下载二进制）\n",[38,194,195,198,201,204],{"class":40,"line":48},[38,196,197],{"class":51},"npm",[38,199,200],{"class":55}," install",[38,202,203],{"class":65}," -g",[38,205,206],{"class":55}," dingtalk-workspace-cli\n",[38,208,209],{"class":40,"line":78},[38,210,82],{"emptyLinePlaceholder":81},[38,212,213],{"class":40,"line":85},[38,214,215],{"class":44},"# Homebrew（macOS\u002FLinux）\n",[38,217,218,221,223],{"class":40,"line":91},[38,219,220],{"class":51},"brew",[38,222,200],{"class":55},[38,224,225],{"class":55}," dws\n",[38,227,228],{"class":40,"line":114},[38,229,82],{"emptyLinePlaceholder":81},[38,231,232],{"class":40,"line":119},[38,233,234],{"class":44},"# 直接下载二进制\n",[38,236,237],{"class":40,"line":125},[38,238,239],{"class":44},"# https:\u002F\u002Fgithub.com\u002Fopen-dingtalk\u002Fdingtalk-workspace-cli\u002Freleases\n",[16,241,242],{},"安装后认证：",[28,244,246],{"className":30,"code":245,"language":32,"meta":33,"style":33},"dws auth login\n",[35,247,248],{"__ignoreMap":33},[38,249,250,252,255],{"class":40,"line":41},[38,251,52],{"class":51},[38,253,254],{"class":55}," auth",[38,256,257],{"class":55}," login\n",[16,259,260],{},"会打开浏览器走 OAuth 设备流认证，token 加密存储在系统钥匙串里（PBKDF2 + AES-256-GCM）。",[11,262,263],{"id":263},"覆盖的钉钉产品",[16,265,266,267,270],{},"这是最夸张的部分 — ",[23,268,269],{},"19 个产品，213 个命令","，基本把钉钉全家桶都搬到了命令行：",[272,273,274,290],"table",{},[275,276,277],"thead",{},[278,279,280,284,287],"tr",{},[281,282,283],"th",{},"产品",[281,285,286],{},"命令数",[281,288,289],{},"说明",[291,292,293,308,322,336,350,364,378,392,405,419,432,446,460,473,487,501],"tbody",{},[278,294,295,302,305],{},[296,297,298,299],"td",{},"聊天 ",[35,300,301],{},"chat",[296,303,304],{},"57",[296,306,307],{},"消息收发、群管理、机器人、已读状态、Webhook",[278,309,310,316,319],{},[296,311,312,313],{},"AI 表格 ",[35,314,315],{},"aitable",[296,317,318],{},"42",[296,320,321],{},"Base\u002F数据表\u002F字段\u002F记录\u002F视图\u002F图表\u002F仪表盘，完整 CRUD",[278,323,324,330,333],{},[296,325,326,327],{},"电子表格 ",[35,328,329],{},"sheet",[296,331,332],{},"34",[296,334,335],{},"工作表读写、行列操作、合并、筛选视图、导出",[278,337,338,344,347],{},[296,339,340,341],{},"文档 ",[35,342,343],{},"doc",[296,345,346],{},"21",[296,348,349],{},"搜索、读写、块级编辑、评论、复制移动",[278,351,352,358,361],{},[296,353,354,355],{},"会议纪要 ",[35,356,357],{},"minutes",[296,359,360],{},"19",[296,362,363],{},"列表、摘要、转写、思维导图、发言人、热词",[278,365,366,372,375],{},[296,367,368,369],{},"日历 ",[35,370,371],{},"calendar",[296,373,374],{},"14",[296,376,377],{},"事件 CRUD、会议室、忙闲查询、时间建议",[278,379,380,386,389],{},[296,381,382,383],{},"审批 ",[35,384,385],{},"oa",[296,387,388],{},"9",[296,390,391],{},"待办、发起、同意\u002F拒绝\u002F撤销",[278,393,394,400,402],{},[296,395,396,397],{},"云盘 ",[35,398,399],{},"drive",[296,401,388],{},[296,403,404],{},"列表、下载、上传、创建目录",[278,406,407,413,416],{},[296,408,409,410],{},"知识库 ",[35,411,412],{},"wiki",[296,414,415],{},"7",[296,417,418],{},"空间管理、成员管理",[278,420,421,427,429],{},[296,422,423,424],{},"汇报 ",[35,425,426],{},"report",[296,428,415],{},[296,430,431],{},"日志\u002F日报\u002F周报，按模板创建、统计",[278,433,434,440,443],{},[296,435,436,437],{},"待办 ",[35,438,439],{},"todo",[296,441,442],{},"6",[296,444,445],{},"创建、完成、删除，支持优先级和循环",[278,447,448,454,457],{},[296,449,450,451],{},"邮件 ",[35,452,453],{},"mail",[296,455,456],{},"4",[296,458,459],{},"邮箱查询、邮件搜索、发送",[278,461,462,468,470],{},[296,463,464,465],{},"考勤 ",[35,466,467],{},"attendance",[296,469,456],{},[296,471,472],{},"打卡记录、排班、汇总",[278,474,475,481,484],{},[296,476,477,478],{},"通讯录 ",[35,479,480],{},"contact",[296,482,483],{},"3",[296,485,486],{},"用户搜索、部门查询",[278,488,489,495,498],{},[296,490,491,492],{},"DING 消息 ",[35,493,494],{},"ding",[296,496,497],{},"2",[296,499,500],{},"发送\u002F撤回（应用内、短信、电话）",[278,502,503,506,509],{},[296,504,505],{},"其他",[296,507,508],{},"若干",[296,510,511],{},"AI 搜索、AI 应用、直播、开放平台文档",[16,513,514,515,518],{},"还有一个万能命令 ",[35,516,517],{},"dws api","，可以直接调用任意钉钉 OpenAPI，不受这 213 个命令的限制。",[11,520,522],{"id":521},"agent-skill-系统","Agent Skill 系统",[16,524,525],{},"dws 内置了一套完整的 Agent Skill，可以直接被 AI 编程工具发现和使用：",[527,528,529,536,542],"ul",{},[530,531,532,535],"li",{},[23,533,534],{},"Claude Code"," — 通过 SKILL.md 自动加载",[530,537,538,541],{},[23,539,540],{},"Cursor"," — 支持 MCP 协议接入",[530,543,544,547],{},[23,545,546],{},"Codex \u002F OpenCode \u002F Qoder"," — 通过 skill 安装命令接入",[16,549,550],{},"安装 skill：",[28,552,554],{"className":30,"code":553,"language":32,"meta":33,"style":33},"dws skill setup\n",[35,555,556],{"__ignoreMap":33},[38,557,558,560,563],{"class":40,"line":41},[38,559,52],{"class":51},[38,561,562],{"class":55}," skill",[38,564,565],{"class":55}," setup\n",[16,567,568],{},"SKILL.md 里定义了：",[527,570,571,580,583,586],{},[530,572,573,574,576,577,579],{},"16 个产品的意图判断决策树（用户说\"表格\"→ ",[35,575,315],{},"，说\"打卡\"→ ",[35,578,467],{},"）",[530,581,582],{},"危险操作确认流程（删除、撤回等必须先确认）",[530,584,585],{},"错误处理规范（verbose 重试、recovery 事件 ID）",[530,587,588],{},"URL 分流规则（alidocs.dingtalk.com 的多种路径格式自动识别）",[16,590,591],{},"Agent 读到这份 SKILL.md 就知道什么时候该调什么命令，不需要额外的 prompt 工程。",[11,593,594],{"id":594},"自动升级",[16,596,597,598,601],{},"内置 ",[35,599,600],{},"dws upgrade","，不需要重新下载安装包：",[28,603,605],{"className":30,"code":604,"language":32,"meta":33,"style":33},"dws upgrade              # 交互式升级到最新版\ndws upgrade --check      # 仅检查是否有新版本\ndws upgrade --list       # 列出最近版本\ndws upgrade --version v1.0.5  # 升级到指定版本\ndws upgrade --rollback   # 回滚到上一版本\n",[35,606,607,617,629,641,656],{"__ignoreMap":33},[38,608,609,611,614],{"class":40,"line":41},[38,610,52],{"class":51},[38,612,613],{"class":55}," upgrade",[38,615,616],{"class":44},"              # 交互式升级到最新版\n",[38,618,619,621,623,626],{"class":40,"line":48},[38,620,52],{"class":51},[38,622,613],{"class":55},[38,624,625],{"class":65}," --check",[38,627,628],{"class":44},"      # 仅检查是否有新版本\n",[38,630,631,633,635,638],{"class":40,"line":78},[38,632,52],{"class":51},[38,634,613],{"class":55},[38,636,637],{"class":65}," --list",[38,639,640],{"class":44},"       # 列出最近版本\n",[38,642,643,645,647,650,653],{"class":40,"line":85},[38,644,52],{"class":51},[38,646,613],{"class":55},[38,648,649],{"class":65}," --version",[38,651,652],{"class":55}," v1.0.5",[38,654,655],{"class":44},"  # 升级到指定版本\n",[38,657,658,660,662,665],{"class":40,"line":91},[38,659,52],{"class":51},[38,661,613],{"class":55},[38,663,664],{"class":65}," --rollback",[38,666,667],{"class":44},"   # 回滚到上一版本\n",[16,669,670],{},"升级流程：下载 → SHA256 校验 → 备份当前版本 → 原子替换 → 更新 Skill。失败可一键回滚。",[11,672,673],{"id":673},"亮点",[675,676,678],"h3",{"id":677},"_1-为-ai-agent-专门优化","1. 为 AI Agent 专门优化",[16,680,681],{},"这可能是目前对 AI 最友好的 CLI 工具：",[527,683,684,705,715,724],{},[530,685,686,689,690,693,694,697,698,693,701,704],{},[23,687,688],{},"智能纠错"," — AI 模型经常生成错误的参数格式（",[35,691,692],{},"--userId"," 应该是 ",[35,695,696],{},"--user-id","，",[35,699,700],{},"--limit100",[35,702,703],{},"--limit 100","），dws 的 5 阶段 Pipeline 会自动修正",[530,706,707,710,711,714],{},[23,708,709],{},"Schema 发现"," — ",[35,712,713],{},"dws schema"," 让 Agent 动态查询可用工具和参数，不需要硬编码",[530,716,717,710,720,723],{},[23,718,719],{},"jq 过滤",[35,721,722],{},"--jq '.data[] | {name, id}'"," 直接过滤输出，减少 Agent 消耗的 token",[530,725,726,729,730,733],{},[23,727,728],{},"JSON 输出"," — 所有命令支持 ",[35,731,732],{},"--format json","，方便程序解析",[675,735,737],{"id":736},"_2-安全设计","2. 安全设计",[527,739,740,743,746,749,756],{},[530,741,742],{},"token 用 PBKDF2 + AES-256-GCM 加密，密钥绑定设备 MAC 地址",[530,744,745],{},"域名白名单，只能访问钉钉官方 API",[530,747,748],{},"强制 HTTPS",[530,750,751,752,755],{},"写操作必须显式 ",[35,753,754],{},"--yes"," 确认",[530,757,758],{},"完整审计链",[675,760,762],{"id":761},"_3-发现驱动架构","3. 发现驱动架构",[16,764,765],{},"不是把所有命令硬编码在代码里，而是：",[767,768,769,772,775,778],"ol",{},[530,770,771],{},"从钉钉 MCP 服务器注册中心拉取元数据",[530,773,774],{},"运行时发现服务端能力",[530,776,777],{},"转换成统一的中间表示（IR）",[530,779,780],{},"动态挂载到命令树",[16,782,783],{},"这意味着钉钉新增产品能力时，dws 不需要发版就能支持。",[675,785,787],{"id":786},"_4-多平台分发","4. 多平台分发",[16,789,790],{},"GoReleaser 交叉编译 + Homebrew formula + npm 包 + shell\u002FPowerShell 安装脚本，覆盖 Windows、macOS、Linux。",[11,792,793],{"id":793},"总结",[16,795,796],{},"dws 把钉钉从一个\"必须打开 App 才能用\"的工具变成了一个\"命令行 + AI Agent 随时调用\"的平台。213 个命令覆盖日常办公的方方面面，Agent Skill 系统让 AI 编程工具可以直接理解和使用这些能力。",[16,798,799],{},"如果你是钉钉重度用户，或者在做企业内部的 AI Agent 集成，dws 值得一试。",[801,802,803],"style",{},"html pre.shiki code .sHbNN, html code.shiki .sHbNN{--shiki-light:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sw2iP, html code.shiki .sw2iP{--shiki-light:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .scXbn, html code.shiki .scXbn{--shiki-light:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .suQ91, html code.shiki .suQ91{--shiki-light:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":33,"searchDepth":48,"depth":78,"links":805},[806,807,808,809,810,811,817],{"id":13,"depth":48,"text":14},{"id":179,"depth":48,"text":179},{"id":263,"depth":48,"text":263},{"id":521,"depth":48,"text":522},{"id":594,"depth":48,"text":594},{"id":673,"depth":48,"text":673,"children":812},[813,814,815,816],{"id":677,"depth":78,"text":678},{"id":736,"depth":78,"text":737},{"id":761,"depth":78,"text":762},{"id":786,"depth":78,"text":787},{"id":793,"depth":48,"text":793},"介绍阿里巴巴官方的 DingTalk Workspace CLI（dws），一个覆盖钉钉 19 个产品、213 个命令的 AI 友好命令行工具，支持自动升级和 Agent Skill 系统。",false,"md","\u002Fposts\u002Fdws-dingtalk-cli\u002Fimg\u002Fcover.svg",{},"\u002Fposts\u002Fdws-dingtalk-cli","2026-06-01T00:51:00",{"title":5,"description":818},"posts\u002Fdws-dingtalk-cli\u002Findex",[828,829,830,831,832],"钉钉","CLI","AI Agent","Go","效率工具","gHTBV8acc2BAq3CY7qgD7Bk2eJoJB_EFnGUrKFQE_PY",1780733791991]