DingTalk Workspace CLI is a cross-platform command-line tool that brings DingTalk’s product capabilities into one interface. It serves human users and AI agents working with DingTalk enterprise data, with administrator authorization required. Its catalogue add-ons provide agent skills for using the CLI’s product areas.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add DingTalk-Real-AI/dingtalk-workspace-cli --skill dingtalk-wikigit clone --depth 1 https://github.com/DingTalk-Real-AI/dingtalk-workspace-cliWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-wiki)<a href="https://agentmods.dev/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-wiki"><img src="https://agentmods.dev/badge/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-wiki/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-wiki"><img src="https://agentmods.dev/badge/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-wiki.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00121 | $0.03765 |
| Opus 5.5 | $0.00048 | $0.01506 |
| Sonnet 5.5 | $0.00024 | $0.00753 |
| Haiku 4.5 | $0.00012 | $0.00377 |
Grade A, and why
dingtalk-wiki scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 21d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 122 lines — stays where its author put it; the contents beside it link to each section on GitHub.
钉钉知识库 Skill
最小 DWS 执行契约
- 只用
dws;结构化读取加--format json,按真实返回判断。 - 已知命令直调;参数/约束/安全不明查 leaf 窄 Schema。Schema 不可用才读已知 leaf Help 一次;
unknown flag用同 leaf Help 修正一次。unknown command不查 Help:优先错误中的明确 suggestion,其次已加载 Skill/reference 中的明确兼容入口;均无则报漂移并停,禁全 Catalog。低频 reference 不默认 Help,禁 root/parent/product Help。发现后必须执行或说明阻塞。 - 不猜命令/flag/字段/ID/账号/业务事实;ID 来自真实返回。目标零命中/多候选/类型不明先消歧;仅可选时间/展示范围用契约默认,缺必需信息即停。
- 解析/读/写同一 profile,ID 不跨组织。多账号只用唯一
isOrgCurrent=true;否则用户指定,禁止选择第一项、最近登录或最近使用账号。 - 不输出/记录 token、refresh token、appSecret、webhook token;已注入认证时不索要。
- 写须符合明确意图;确认以最终 Runtime gate/Schema 为准,确认后才加
--yes。 - 写后验证结果,不凭退出码宣称成功。退出须最终答复,区分完成、部分、阻塞、待确认、失败;保留已有数据及
complete/hasMore/stopReason/failures。 - 时间戳按会话时区展示,必要时保留原值。
- 认证/权限/profile/confirmation/未知错误只读
dingtalk-shared对应 reference,禁连续猜替代命令。
下方自动清单的“唯一”仅指单页匹配;+resolve-space/+wiki-new-doc 不承担写入前的权威唯一解析,按 Golden Route 解析后使用真实 workspaceId。
Shortcuts(无专用脚本/recipe 时优先)
以下 shortcut 同时进入公开 catalog 与 Runtime Schema。按本 skill/recipe 路由,命中时 Shortcut 优先于原子命令。参数只查 dws schema --cli-path "wiki +<shortcut>" --compact --jq '{cli_path,parameters,constraints,confirmation}' -f json;仅需且已发布 result 时查 --jq '{cli_path,outcomes:.result.outcomes,pagination}',字段级再查 data_schema;缺失不以 Help/样例推断。Schema 不可用才读一次已知 leaf Help;unknown flag 用同 leaf Help 修正一次。unknown command 禁 Help:错误 suggestion → 已加载 Skill/reference 明确入口;均无则报漂移。禁全 Catalog/root/parent/product Help;仅映射、接口或 provenance 审计省略 --compact。现有路由和 reference 均无法定位低频能力时,才用 dws shortcut list --service wiki --format json 发现。
| Shortcut | 风险 | 适用场景 |
|---|---|---|
dws wiki +resolve-space |
read | 按名称搜索知识空间并解析单次结果中的唯一 spaceId(只读) |
dws wiki +wiki-new-doc |
write | 在指定名称的知识库下新建一个文档节点(按单次名称搜索解析 workspaceId) |
Golden Route
| 用户意图 | 唯一推荐入口 | 关键边界 |
|---|---|---|
| 按名称解析唯一知识库 | +space-list --type <orgWikiSpace|myWikiSpace> --limit 50 --page-all 后精确匹配名称 |
先明确组织/个人范围;结果的 requestedType 必须等于请求范围;仅 autoPageComplete=true 且全量中恰好一个同名项时取 workspaceId |
| 搜索或列出知识库 | +space-search --query <关键词> / +space-list [--type orgWikiSpace|myWikiSpace] |
用户要求全部时加 --page-all;个人知识库必须明确语义 |
| 为 Drive 发现钉盘存储空间 | dws wiki space list --type <orgSpace|mySpace> --format json |
managed 只读前置;返回 spaceId/rootFolderId 后切回 Drive,不进入 Wiki node/member 路由 |
| 已知 workspace 查看详情 | dws wiki +space-get --workspace <ID或URL> |
已知 ID 不重复搜索 |
| 创建或删除知识库 | +space-create --name <名称> / +delete-space --workspace <ID> |
创建会读回并验证空间类型;仅 spaceTypeVerified=true 时可断言类型。删除整个空间是高风险操作 |
| 浏览或搜索库内节点 | +node-list --workspace <ID> [--folder <ID>] / +node-search --workspace <ID> --query <词> |
列目录与关键词搜索分开;需要完整列表或完整搜索结果都加 --page-all |
| 查看节点元数据 | dws wiki +node-get --node <ID或URL> |
正文读写随后切 Doc |
| 已知 workspace 创建节点 | +node-create --workspace <ID> --name <名称> [--type <类型>] |
支持 adoc/axls/able/appt/adraw/amind/folder;创建后验证 ID、workspace、名称、类型及显式父文件夹 |
| 只有知识库名称时新建空文档 | 先按全量 +space-list 唯一解析,再 +node-create --workspace <ID> --name <标题> --type adoc |
不用单页 +wiki-new-doc 猜空间;正文另走 Doc |
| 用本地文件在新知识库建文档后移到“我的文档” | +space-create → doc +import --file <相对路径> --workspace <新workspaceId> → +move-to-drive --workspace <新workspaceId> --node <导入nodeId> |
必须先把文档真实导入新知识库再移出;禁止先查 mySpace、禁止 doc +create 在个人域创建后用 drive +move 冒充该流程 |
| 复制、移入知识库或将 Wiki 在线节点移出到“我的文档” | +node-copy / +move / +move-to-drive |
“Wiki 节点 → 我的文档”固定使用 +move-to-drive,已知来源 workspace 时可传 --workspace 作写前归属断言;不可改用 mySpace/rootFolderId + drive +move |
| 知识库首页放独立普通附件 | dws drive upload --file <本地文件> --workspace <ID> --format json |
不加 --convert;子目录加 --folder <目录nodeId>。正文内附件切 Doc 媒体,转换在线文档切 Doc 导入 |
| 删除库内节点 | +node-delete --workspace <ID> --node <ID> |
删除前核对归属并确认 |
| 列出、添加、修改或移除知识库成员 | member list / +member-add / +member-update / +member-remove |
写入 users 为 1-30 个;添加/修改须指定角色,移除不传角色;多类型、逐成员角色或通知用原生 member |
| 设置知识库空间分享范围 | dws wiki permission set-share-scope --workspace <ID> --visibility <PRIVATE|ORGANIZATION|PUBLIC> |
[危险] 作用于整个空间及其下未打断继承节点;PRIVATE 关闭会抹除未打断继承节点原有档位,空间如需恢复公开须重设;PUBLIC 仅 READER/DOWNLOADER;返回体已回显写入结果 |
| 查看知识库动态 | +feed-list --workspace <ID> [--exclude-file] |
全部动态加 --page-all;仅用户明确要求核对过滤效果时比较两组结果,未过滤结果须实际包含该文件事件 |
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 21d ago Changed · +1 lines 7d5caa080ea0
- 1mo ago Changed · +3 lines adf71ee015d4
- 1mo ago Changed · +6 lines 7e4e5dfecf0b
- 1mo ago First seen · 112 lines · 121 tokens per session scan A ee99aeae0fb2
dingtalk-wiki is a skill published in the GitHub repository DingTalk-Real-AI/dingtalk-workspace-cli (3,788 stars, last pushed 2d ago), licensed Apache-2.0. It adds 121 tokens to every session and 3,765 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
orbit-notion
Open Orbit briefing skill — selected by the Orbit pipeline when Notion is the user's only connected connector, or when the user explicitly scopes their daily digest to Notion. Pulls the past 24 hours of document edits, comments, mentions, and database row changes from the user's authenticated Notion connection and…
instrument-data-to-allotrope
Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV. Use this skill when scientists need to standardize instrument data for LIMS systems, data lakes, or downstream analysis. Supports auto-detection of instrument types. Outputs include full…
apify-youtube-transcript-scraper
Get YouTube captions, timestamped quotations, SRT/VTT and translated transcripts for videos, channels and playlists through the harshmaur/youtube-transcript-scraper Apify Actor.
legal-hold
Issue, refresh, release, or report on legal holds — drafts the hold notice as .docx, updates legalhold fields in log.yaml, and calendars the next refresh. Use when the user says "issue a hold", "refresh hold", "release hold", or asks for a portfolio-wide hold status report.
baoyu-youtube-transcript
A tool for downloading the written captions, subtitles, chapter information, speaker labels, and cover image from a YouTube video using its URL or ID.
feishu
Work with Feishu or Lark bots, docs, sheets, bitables, approval flows, and OpenAPI/MCP setup without hardcoding credentials.