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-aitablegit 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-aitable)<a href="https://agentmods.dev/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-aitable"><img src="https://agentmods.dev/badge/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-aitable/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-aitable"><img src="https://agentmods.dev/badge/skills/dingtalk-real-ai/dingtalk-workspace-cli/dingtalk-aitable.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.00335 | $0.09905 |
| Opus 5.5 | $0.00134 | $0.03962 |
| Sonnet 5.5 | $0.00067 | $0.01981 |
| Haiku 4.5 | $0.00034 | $0.00991 |
Grade A, and why
dingtalk-aitable 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 5d 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 — 258 lines — stays where its author put it; the contents beside it link to each section on GitHub.
钉钉 AI 表格 Skill
业务操作优先与契约评审边界
默认目标是完成用户明确提出的 AI 表格业务操作,包括查询、创建、更新、同步和其他已授权写入。契约评审是辅助场景,仅在用户明确要求核对合成 JSON、dry-run、参数合法性、Help/Schema 或恢复方案时启用;这类请求默认只读,不把评审要求扩展成线上业务操作。用户同时提出业务操作和契约核对时,先按真实业务目标执行必要的契约校验,再继续执行已明确授权的业务操作。
先区分操作、用法与契约评审
用户只要求评审返回值或恢复方案时,不执行业务操作,也不按业务任务扩展到上游写入命令。发现目标以用户原始消息为准,Agent 自行摘要或传入 Skill 的参数不是新增请求,不能将“核对该对账命令”改写成“比较对账与原创建命令”。保留用户正在核对的完整原子路径或 + Shortcut 名,不做同义替换。背景里提到的原创建命令不是额外发现目标。
只评审一个命令时,先取得一次该入口的 compact Schema,再依据本次结果回答;不要并行或顺序查询背景命令,也不要追加同义入口、完整 Schema 或 Help。未发布 result 时说明该结构未公开,不靠重复查询或示例推断字段。用户明确要求比较多个命令时,才分别查询各自契约。Help/Schema 是本机离线查询,“不要执行线上业务”不禁止它;用户明确禁止任何命令时则不查询,并说明契约未核对。
评审中用户要求下一步只读命令时,回答先给出有当前契约依据、使用原 ID/核对键的完整命令,并说明尚未执行;紧接着给出关键判断与禁止动作,再简要解释依据。不先展开工具过程、Schema 字段表或长篇引用,不把下一步埋在分析末尾;无法确定只读入口或参数时说明缺口,不能猜测。没有索要命令时,先用简短结论回答用户的全部安全问题:是否允许重放写入、哪些结果应保留或丢弃、只读恢复有什么前提,再按需解释;不能把关键禁止动作留到分节解释或末尾总结。明确区分本机离线契约核对、用户提供的回执和仍未验证的线上状态:本机 Schema 只能证明命令契约,不能证明业务已经执行或远端状态已经核实。
仅评审失效游标恢复时,读取 record-query 开头的“只评审失效游标恢复”段,集中说明丢弃旧结果、UNAVAILABLE 等待前提和禁止重放写入这三项边界;不转入该 Reference 后面的实际查询流程,也不从新旧结果差异推导补写许可。
以下意图路由优先于下方通用 Schema 导航。表单分享的用法询问与返回值评审不能共用发现路径:
| 请求意图 | 本次唯一契约查询 |
|---|---|
| 评审返回值、恢复方案、故障或 dry-run 样本 | 把正在核对的完整入口原样放入 dws schema --cli-path "aitable <原入口>" --compact --format json;保留 +,不改查 Help,也不切换原子/Shortcut |
仅问原子 form share update 的写法 |
只查询 dws schema --cli-path "aitable form share update" --compact --format json |
| 仅问 Shortcut 的写法 | 只查该 Shortcut 的 compact Schema |
最小 DWS 执行契约
- 钉钉业务操作只通过
dwsCLI;本 Skill 明确发布的脚本可编排dws并完成预签名文件上传。结构化读取使用--format json,按真实返回判断结果。 - 已知 leaf 直接执行。只有参数或安全语义不确定时,最多读取一次
dws schema --cli-path "aitable <leaf>" --compact --format json;仅当该 compact leaf Schema 与 Cobra 实际不一致时,才读取同一 leaf 的dws aitable <leaf> --help。禁止通过父级 Help、产品 Help 或完整 Catalog 探索命令。 - 不猜命令、flag、字段、ID、账号或时间。后续 ID 必须来自真实返回;零命中、多候选或类型不明时停止并消歧。
- 解析目标、读取上下文和最终执行必须使用同一 profile;不得跨组织复用 userId、openDingTalkId 或 openConversationId。多账号组织只使用明确的
isOrgCurrent=true默认账号;没有默认账号时要求用户指定,禁止选择第一项、最近登录或最近使用账号。 - 不输出或记录 token、refresh token、appSecret、webhook token 等凭据;宿主已注入认证时不要索要凭据。
- 写操作必须符合用户明确意图。是否需要确认以最终 Runtime gate 和 Schema 为准;本轮用户已明确要求执行、目标与影响无歧义的非破坏性写操作时,该明确指令就是本次确认,首次调用直接携带 Runtime 所需的
--yes,不先制造confirmation_required。文件导入是非幂等操作,仍按 Golden Route 先触发 Runtime 确认门禁,确认后再追加--yes。删除、停用自动化等破坏性或高风险动作仍须先说明对象、动作与影响并取得独立确认。 - 写后按任务结果契约验证;不能仅凭退出码宣称成功。部分结果、未知投递状态和失败项必须如实保留。
- Runtime Schema 是当前能力与安全语义的权威来源;同一 leaf 任务内只读一次并复用。只有 Schema 缺字段、含义不清或与真实执行冲突时才读 leaf Help;版本、profile 变化或出现契约错误时立即作废缓存。
- mutation 返回、HTTP 200 和退出码 0 都只是调用回执,不是最终对象状态。写后必须清除受影响的读取缓存,用返回的真实 ID/唯一键发起独立读回,不复用写前结果。
- 同一 Base 的写入默认串行;只有不同 Base、无数据/ID/顺序依赖且失败可独立回读时,才允许受控并发写。无依赖只读调用默认最多 4 路并发。
- 写调用超时、连接中断或返回结果未知时,禁止原样自动重放;先查真实状态。只读调用可对瞬态错误做有上限重试。
- 结构化结果可能是统一
ok/outcome、旧status或 booleansuccess信封;不固定假设data层级。partial_failure可以在 stdout 中并返回退出码 7,必须先解析信封再判断执行结果。 - 文件上传返回的
uploadUrl、token、authorization、signature 等是凭据;不输出、不写日志,结构化错误也要递归脱敏。 - 时间戳面向用户展示时转换为带时区的可读时间;默认使用当前会话时区,必要时同时保留原值。
- 遇到认证、权限、profile、confirmation 或未知错误时,只加载
dingtalk-shared中对应 reference;不要连续猜测替代命令。
What ships with it
44 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.
- references/06-data-analytics.md 3.1 KB
- references/aitable-record-ops.md 6.5 KB
- references/aitable-section.md 1.6 KB
- references/aitable.md 32 KB
- references/aitable/aitable-advperm.md 10 KB
- references/aitable/aitable-api-key.md 1.9 KB
- references/aitable/aitable-attachment.md 3.3 KB
- references/aitable/aitable-best-practices.md 4.2 KB
- references/aitable/aitable-cell-value.md 9.0 KB
- references/aitable/aitable-comment.md 2.8 KB
- references/aitable/aitable-dashboard-chart.md 3.7 KB
- references/aitable/aitable-data-analysis-sop.md 5.5 KB
- references/aitable/aitable-datasource.md 13 KB
- references/aitable/aitable-error-recovery.md 6.9 KB
- references/aitable/aitable-export-import.md 7.1 KB
- references/aitable/aitable-field-properties.md 8.2 KB
- references/aitable/aitable-field.md 8.3 KB
- references/aitable/aitable-filter-sort.md 11 KB
- references/aitable/aitable-form.md 15 KB
- references/aitable/aitable-formula-guide.md 8.2 KB
- references/aitable/aitable-primary-doc.md 2.5 KB
- references/aitable/aitable-psql.md 15 KB
- references/aitable/aitable-record-create.md 2.2 KB
- references/aitable/aitable-record-delete.md 582 B
- references/aitable/aitable-record-history.md 3.5 KB
- references/aitable/aitable-record-name-key.md 2.4 KB
- references/aitable/aitable-record-query.md 15 KB
- references/aitable/aitable-record-share.md 1.6 KB
- references/aitable/aitable-record-stats.md 3.8 KB
- references/aitable/aitable-record-update.md 3.2 KB
- references/aitable/aitable-record-upsert.md 3.3 KB
- references/aitable/aitable-view-config.md 10 KB
- references/aitable/aitable-view-extras.md 8.4 KB
- references/aitable/aitable-view-types.md 4.5 KB
- references/aitable/aitable-workflow.md 16 KB
- references/field-rules.md 1.6 KB
- references/intent-guide.md 2.1 KB
- references/recipes/conventions.md 3.4 KB
- references/url-patterns.md 11 KB
- scripts/aitable_export_via_task.py 7.6 KB runs code
- scripts/aitable_import_via_task.py 3.2 KB runs code
- scripts/bulk_add_fields.py 9.1 KB runs code
- scripts/import_records.py 9.7 KB runs code
- scripts/upload_attachment.py 6.3 KB runs code
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.
- 5d ago Changed 95c1f1448b44
- 15d ago Changed 76f56bce0ede
- 19d ago Changed c2a501ba8426
- 21d ago Changed · +5 lines · +69 tokens per session 140ae7bff268
- 1mo ago Changed · +58 lines · +31 tokens per session c8ce0d89ca93
- 1mo ago Changed 11a3f5900c32
- 1mo ago Changed 9c0d486a86f1
- 1mo ago Changed · +19 lines 01075a0c0e8e
- 1mo ago Changed · +17 lines · +12 tokens per session eb3c8fdbd082
- 1mo ago First seen · 159 lines · 223 tokens per session scan A 3a1b672ccb4e
dingtalk-aitable 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 335 tokens to every session and 9,905 once invoked, about $0.0013 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
create-pr
Creates a GitHub PR with a Linear-ticket-prefixed title and a decision-led, narrative description for Prisma 8. Use when the user wants to create a pull request, open a PR, or submit changes for review.
schema-exploration
Lists tables, describes columns and data types, identifies foreign key relationships, and maps entity relationships in a database. Use when the user asks about database schema, table structure, column types, what tables exist, ERD, foreign keys, or how entities relate.
atlas-mssql
SQL Server specifics for Atlas (also Azure SQL and MSSQL): login, dev database and URL scope (mode=schema vs mode=database, the database query parameter), compatibility level and collation, system-generated constraint names, clustered index defaults and datetime2 precision in HCL, GO batches and the delimiter…
ha-data-stores
Map of Hope Agent's local data stores and safe read-only query workflow. Use when the user asks where Hope Agent stores data, wants to inspect sessions/messages/memory/logs/background jobs/knowledge indexes/settings, asks the model to query local app data, or debugging requires checking persisted state. Trigger…
nornicdb-cypher-queries
Pick fast, predictable Cypher query shapes in NornicDB — point lookups, batch retrieval, pagination, search, traversal, batched UNWIND/MERGE writes, cleanup, multi-tenant isolation. Use when writing or reviewing Cypher whose latency or throughput matters; maps user intent to the executor's hot-path query templates.
volcengine-rds-postgresql
A tool for operating PostgreSQL databases hosted by Volcano Engine's managed database service. PostgreSQL is a relational database used to store structured application data.