Dingtalk Doc logo

Dingtalk Doc

OrganizationPopular
DingTalk-Real-AI
dingtalk-doc

钉钉在线文字文档(adoc)内容:查找、创建、读取编辑、块、评论、媒体/附件、白板卡片容器、导入导出、版本、模板、权限、分享及 Markdown/JSONML。不做白板图形/原生 .md/电子表格(dingtalk-misc)、文档空间与钉盘存储(dingtalk-drive)、知识库组织(dingtalk-wiki)、AI 表格(dingtalk-aitable)。命令前缀:dws doc。

Overview

PublisherDingTalk-Real-AI
Repositorydingtalk-workspace-cli
Skill namedingtalk-doc
Stars
3.1K
Forks
242
Bundled files
19
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 19 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by DingTalk-Real-AI on GitHub. Read the source before you install it.

Installation

Install the Dingtalk Doc AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git /tmp/dingtalk-workspace-cli
mkdir -p .claude/skills
cp -r /tmp/dingtalk-workspace-cli/skills/multi/dingtalk-doc .claude/skills/dingtalk-doc
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Dingtalk Doc in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Dingtalk Doc on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Dingtalk Doc is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

钉钉文档 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,禁连续猜替代命令。

Shortcut 发现(按需)

doc 当前有 49 条公开 shortcut,完整清单保留在 Runtime Catalog 与 Schema,不在高频产品根 Skill 中重复展开。已知意图按下方路由;参数/约束/安全不明时读一次 leaf 窄 Schema。仅需且已发布 result 时查 outcomes/pagination,字段级再查 data_schema;缺失不以 Help/样例推断。Schema 不可用才读一次已知 leaf Help;unknown flag 用同 leaf Help 修正一次。unknown command 禁 Help:错误 suggestion → 已加载 Skill/reference 明确入口;均无则报漂移。禁全 Catalog/root/parent/product Help;低频 reference 不默认 Help。

仅当现有路由和 reference 都无法定位低频能力时,才执行 dws shortcut list --service doc --format json 做最后回退;不要为已知高频意图加载完整 Shortcut Catalog 或产品级 Schema。

Golden Route

ID/URL 直用;标题唯一命中后执行。顺序:稳定 ID → shortcut → 局部读 → 精确写;禁以产品 Schema/全文/atomic 起步。

用户意图唯一推荐入口关键边界
按标题或主题定位文档dws doc +search --query <精确标题>complete=true,count=0,failures=[] 即权威零命中:如实报告;禁缩词、跨产品、无 query/无端 --page-all
最近访问或最近编辑文档加载 dingtalk-drive,执行 dws drive +recent [--operate-type 1] --limit <N>默认最近访问,1 为最近编辑;不要用 doc +search 替代最近列表
已知 alidocs 文档目录 URL,列出当前层dws doc +list --folder <URL> --page-all复用完整 URL;不要改用 drive +list
已知 ID/URL 读取正文或局部内容dws doc +fetch --node <ID或URL>术语用 keyword;章节 outlinesection;整篇才用 full
聚合查看信息、权限、版本、媒体或评论dws doc +inspect --node <ID或URL>基础元信息默认返回;样式、权限、历史、媒体、评论才用对应 --include-*,无 --include-info
新建文档并写入dws doc +create --name <标题> --content <文本|-|@文件> [--folder <ID>|--workspace <ID>]指定位置复用真实 ID,二者互斥;-=stdin,禁 @-;Runtime 分片回读、不拆写
追加、覆盖或精确编辑 blockdws doc +update --node <ID或URL> --command <动作>唯一文本 str_replace;章节/block 局部取 ID;整篇才 overwrite
重要内容更新且需要恢复点dws doc +checkpoint-update自动保存版本,更新并回读;检查 stepscompensation
版本操作dws doc +version-save --node / dws doc +version-list --node / dws doc +version-revert --node --version快照/列表/回滚
导出为 docx/markdown/pdfdws doc +export --export-format <格式>格式必须显式指定;普通文件下载切 dingtalk-drive
本地文件转在线文档dws doc +import --file <相对路径> [--folder <ID>|--workspace <ID>] [--name <文档名>]指定位置复用真实 ID,二者互斥;知识库用 workspaceId;未指定才由 Runtime 取默认根并回读;+create 不代替库内导入;仅保原文件走 Drive
封面/背景+resource-update/+resource-delete+background-update/+background-delete写后 +inspect --include-style;禁查 Catalog
浏览模板dws doc +template-list [--source MY|PUBLIC] [--page-all]“我的/我这边”只查 MY;明确公开才查 PUBLIC;“有哪些/全部”加 --page-all 并检查 complete
搜索模板dws doc +template-search --query <名称或关键词>来源可选 MY/PUBLIC;零命中停止,禁止拿无关模板替代;多候选消歧
从模板创建dws doc +create-from-template --template-id <唯一ID>已有唯一 templateId 才创建;不重复 list/search
创建/查评论dws doc +comment-create --node <ID或URL> --content <文字> [--selection <原文>] / +review --node <ID或URL>node/content 必填;划词也用 +comment-create;续操作复用 commentKey
添加/调整/移除协作者权限dws doc +access-grant/+access-change/+access-revoke--to 必填;--role 默认 READER(READER|DOWNLOADER|EDITOR|MANAGER);无 --user-ids;先读权限,歧义/profile 不一致禁写
只发链接不改权限dws doc +share --to <姓名[,姓名]> --url <URL> [--note <附言>]内置姓名解析;仅歧义时 aisearch,禁预查人;普通私信用 chat
授权后向多人分享链接dws doc +grant-and-share仅需改权限时用(必填 --node,role 默认 READER);检查逐人账本和部分失败
把文件/PPT/PDF 作为正文附件dws doc +media-insert --node <DOC_ID> --file <相对路径>正文附件走 Doc;drive +upload 仅入库存储,不会插入正文

关键结果语义

  • 保留真实 nodeId/URL/类型/容器;复用 ID,禁标题/钉盘重搜。
  • extension=dlink:内容用 linkSourceInfo.nodeId;嵌套逐跳,失败/缺失/循环即停;入口移动/改名/删除用顶层 ID。
  • 复用 Runtime 回执;仅局部验收、partial_success/commit-unknown 再 +fetch
  • 恢复:partial_success 只补未完成;unknown 先回读、禁重写;retryable 仅限明确未开始;权限/参数/认证失败即停。
  • 回读匹配才报完成。
  • 搜索/列表检查 complete/hasMore/cursor/失败项;“全部”翻完页,前 N 条须声明范围。
  • +import 检查 success/verified=truetaskId/nodeId/documentUrl;复用返回 ID,禁 Drive 重找;中断查原任务,禁重导。
  • 知识库导入再移到我的文档:doc +import --workspace <Wiki ID>wiki +move-to-drive,复用 nodeId;禁先建在个人域。
  • 导出/下载用 cwd 相对路径;+exportlocalPathsizeBytes>0 即终态,禁 ls/stat

参数与安全边界

  • @file:已有或临时文件先暂存到 cwd;传 @相对路径,生成文本优先 --content -;禁绝对路径和 ..
  • doc +update--command 指定动作;block ID 必须来自 +fetch --detail with-ids 或真实列表。
  • Schema 门禁:不确定时仅查一次精确 leaf:--fields use_when,avoid_when,parameters,constraints,confirmation;禁用产品级/--all。准备 Help 时,本轮仅查一次。
  • 消费本页或精确 Schema 的 confirmationuser_required 且原请求/预授权已确认目标、动作、参数时,首调即加 --yes;否则预览/询问;禁止靠失败探测门禁。
  • JSONML 顶层必须是单个非空元素;禁止 [[...]] 元素数组包裹。

按需加载

Golden Route 已给出命令且参数足够时,禁止读取 reference;其余仅遇下表语义时才最多读取一个 reference:

触发条件Reference
低频/无 shortcut 意图消歧intent-guide.md / doc.md 对应章节
分页、partial_successstatus=unknown 或恢复contracts.md
复杂 JSONML、长文或局部精准读写create / read / update
block/划词评论/媒体/封面/背景高级参数block / comment / media
导出/导入失败恢复export / import

常规 +create+fetch+update append/overwrite、+export+import 禁止读取 reference;禁预加载/连读。

错误最短路径

  1. 零命中、多候选、类型不明或分页不完整:停止写入,展示候选或 continuation;禁止默认第一项。
  2. +fetch 若确认目标是目录,浏览请求复用完整 URL 执行 +list --folder,不要改用 drive +list。Help 不参与选路;先读一次精确 leaf Schema。仅真实 unknown flag/契约漂移查一次 leaf Help;unknown command 只查一次 shortcut 清单,禁止试探后缀和 dws doc --help | grep/head
  3. REVISION_CONFLICT:重新读取当前 revision,展示差异;未经用户确认不得改成无 revision 覆盖。
  4. doc_write_commit_unknown:先回读;禁止自动重试创建或追加。
  5. 认证、权限或 profile 错误:只读 dingtalk-shared 对应 reference,禁底层命令绕过。
  6. 导出/媒体失败:保留稳定 ID 后停止;禁网络请求/安装依赖/本地文档库兜底。

产品边界

  • 姓名/工号/部门/职责找人或解析 userId → dingtalk-aisearch;已有完整 userId 补详情才用 dingtalk-contact
  • 普通文件/目录存储与上传下载 → dingtalk-drive;保留原文件进入明确知识库可用 drive +upload --workspace;“放进/附到这篇文档”是正文附件 → doc +media-insert;在线转换 → doc +import
  • 文档节点复制、移动、模板另存 → dingtalk-drive +copy/+move;doc 同名命令仅兼容
  • 知识库空间、节点层级和成员管理 → dingtalk-wiki;本地文件进入明确知识库时由 Doc +import --workspace 创建内容节点,后续移出使用 Wiki +move-to-drive
  • 原生 .md 文件读取和编辑 → dingtalk-misc
  • axls / able → 对应电子表格或多维表 Skill
  • 持续监听文档事件 → dingtalk-misc

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Dingtalk Doc AI skill do?

钉钉在线文字文档(adoc)内容:查找、创建、读取编辑、块、评论、媒体/附件、白板卡片容器、导入导出、版本、模板、权限、分享及 Markdown/JSONML。不做白板图形/原生 .md/电子表格(dingtalk-misc)、文档空间与钉盘存储(dingtalk-drive)、知识库组织(dingtalk-wiki)、AI 表格(dingtalk-aitable)。命令前缀:dws doc。

Why use Dingtalk Doc on TypingMind?

Because you install it once and use it with any model. Dingtalk Doc is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Dingtalk Doc in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/tree/main/skills/multi/dingtalk-doc. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Dingtalk Doc?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Dingtalk Doc?

As many as you like. As long as a model supports skills, you can use Dingtalk Doc with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Dingtalk Doc AI skill free?

Yes. It is published on GitHub by DingTalk-Real-AI under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇