feat: 新增钉钉官方 CLI 市场入口(含 14 个官方子技能) (#104)

## 中文

补齐官方市场里唯一缺失的主流 IM CLI 条目:**钉钉官方命令行工具 `dws`**(npm 包
`dingtalk-workspace-cli`,Apache-2.0,Copyright 2026 Alibaba Group),与已有的
`wecom-cli`、`larksuite-cli` 形成对称。市场此前只有社区的 `dingtalk-api`,覆盖面远小于官方 CLI。

### 变更

| 文件 | 说明 |
| --- | --- |
| `skills/dingtalk-cli/entry.json` | 合集指针条目 + 14 个官方子技能 `children` |
| `skills/dingtalk-cli/catalog-metadata.v1.json` | 治理 sidecar |
| `manifest.json` | `stats.totalSkills` 62 → 63;`version` 1.2.30 →
1.2.31;`lastUpdated` |
| `README.md` | 外部条目计数与清单同步 |

### 14 个子技能


`dingtalk-aisearch`、`dingtalk-aitable`、`dingtalk-calendar`、`dingtalk-chat`、`dingtalk-contact`、`dingtalk-doc`、`dingtalk-drive`、`dingtalk-event`、`dingtalk-mail`、`dingtalk-minutes`、`dingtalk-misc`、`dingtalk-shared`、`dingtalk-todo`、`dingtalk-wiki`

### 外部依赖披露

CLI 是**独立分发的第三方软件**,本条目只是市场登记,四处均已声明:

- **discovery description**(`entry.json#i18n.<locale>.shortDesc`):需自行用
npm 安装 `dingtalk-workspace-cli`,需完成钉钉 OAuth
授权登录(**不支持账号密码登录**),DesireCore 不打包、不授权、不安装也不代运营钉钉或该 CLI
- **`compatibility.requirements`**(4 条):CLI 需在 PATH 上、Node.js >=
16.7.0、`dws auth login` 建立的授权会话(缺失时必须在外部调用前停止,禁止编造成功结果)、能力覆盖取决于组织授予的
OAuth 范围与钉钉权益
- **本地化市场文案**:sidecar `presentation.i18n` 与 `entry.json#i18n` 逐字一致,zh-CN
/ en-US 双语
- **执行说明**:随 CLI 分发的上游 `SKILL.md`,不在本仓库

`redistribution: verify-package-terms` 会让客户端在安装响应里带出条款提示。

### 来源与治理的取舍(诚实声明)

上游 git 仓库 `https://github.com/open-dingtalk/dingtalk-workspace-cli`(该
URL 是发布方在 npm `package.json#repository` 里自己声明的)**当前对外返回 404,不可公开访问**,因此:

- `source` 用 `kind: git` + 该声明 URL,**不写 `ref`**——没有可观察的 commit,不编造固定版本
- 相应地 `provenance.content` 不可变,`governance.availability` 只能是
`listing-only`(`validate_catalog_metadata.py` 的 installable 强证据门禁要求不可变
ref + 已知 license + `reviewedAt` + `compliance`,本条目一样都拿不出)
- `governance.license` 保持 `{state: "unknown"}`(`entry.json#license:
"Apache-2.0"` 取自发布方声明与包内 LICENSE/NOTICE,但仓库内没有许可证据文件,只产生既有的
`legacy-license-unverified` warning)
- `timestamps.reviewedAt` / `releasePublishedAt` 保持 `unknown`;只有
`catalogUpdatedAt` 与 `upstreamObservedAt` 写入真实观察时刻
- `branding` 声明 `independent-listing` / `nominative` /
`not-used`:独立登记、名称为指代性使用、未使用对方 Logo(图标是通用终端窗形)
- 因为来源未固定,`gen-collection-children.py --check` 会输出 `SKIP`(与既有的
`mattpocock-skills` 同一路径),`children` 由人工按分发件内实际布局 `multi/<id>/` 撰写

### 校验(已实际执行,全部 exit 0)

```
uv run --quiet scripts/i18n/test_validate_i18n.py                            exit=0
uv run --quiet scripts/catalog/test_validate_catalog_metadata.py             exit=0
uv run --quiet scripts/catalog/test_collection_generator.py                  exit=0
uv run --quiet scripts/catalog/validate_catalog_metadata.py --require-complete
    0 error(s), 117 warning(s). agents=1, builtinSkills=34, pointerSkills=29,
    publishableSkills=63, collections=8, collectionChildren=161, sidecars=64  exit=0
uv run --quiet scripts/i18n/validate-i18n.py            0 error(s)            exit=0
uv run --quiet scripts/i18n/translate.py --check                             exit=0
uv run --quiet scripts/gen-collection-children.py --check                     exit=0
```

本条目产生的唯一 warning 是 `legacy-license-unverified`,与其余全部 pointer
条目一致。`entry.json` 另经客户端 `marketSkillEntrySchema` 的 Ajv 校验通过。

发布前公开信息边界检查已按 `CLAUDE.md` 执行并通过(工作树全量扫描含隐藏文件、路径名、分支名、commit 文案与本 PR
文本,零结果;令牌清单保存在仓库之外)。

---

## English

Adds the one mainstream IM CLI the official market was still missing:
the **official DingTalk CLI `dws`** (npm package
`dingtalk-workspace-cli`, Apache-2.0, Copyright 2026 Alibaba Group),
making it symmetric with the existing `wecom-cli` and `larksuite-cli`
entries. Until now the market only carried the community `dingtalk-api`,
whose surface is far smaller.

### Changes

| File | Purpose |
| --- | --- |
| `skills/dingtalk-cli/entry.json` | Collection pointer entry with 14
official sub-skill `children` |
| `skills/dingtalk-cli/catalog-metadata.v1.json` | Governance sidecar |
| `manifest.json` | `stats.totalSkills` 62 → 63; `version` 1.2.30 →
1.2.31; `lastUpdated` |
| `README.md` | External-entry count and list kept in sync |

### External dependency disclosure

The CLI is **separately distributed third-party software**; this entry
is a marketplace listing only. The dependency is disclosed in all four
required places:

- **Discovery description** (`entry.json#i18n.<locale>.shortDesc`): the
operator installs `dingtalk-workspace-cli` from npm and completes
DingTalk OAuth sign-in (**no username-and-password login**); DesireCore
does not bundle, license, install or operate DingTalk or this CLI.
- **`compatibility.requirements`** (4 entries): the `dws` binary on
PATH, Node.js >= 16.7.0, an operator-authorized session from `dws auth
login` (without it the skills must stop before the external call and
must never fabricate a successful result), and the fact that capability
coverage depends on the organization's granted OAuth scopes and DingTalk
entitlements.
- **Localized marketplace text**: sidecar `presentation.i18n` matches
`entry.json#i18n` verbatim, in both zh-CN and en-US.
- **Execution instructions**: the upstream `SKILL.md` files shipped with
the CLI, outside this repository.

`redistribution: verify-package-terms` makes the client surface a terms
notice on install.

### Source and governance trade-off (stated plainly)

The upstream git repository
`https://github.com/open-dingtalk/dingtalk-workspace-cli` — the URL the
publisher itself declares in the npm `package.json#repository` —
**currently returns 404 and is not publicly readable**. Therefore:

- `source` uses `kind: git` with that declared URL and **no `ref`**:
there is no observable commit, and inventing a pinned one is not
acceptable.
- Content provenance is consequently not immutable, so
`governance.availability` can only be `listing-only` (the installable
evidence gate in `validate_catalog_metadata.py` requires an immutable
ref, a known license, `reviewedAt` and `compliance`; none of these exist
here).
- `governance.license` stays `{state: "unknown"}`. `entry.json#license:
"Apache-2.0"` reflects the publisher's declaration and the
LICENSE/NOTICE shipped in the package, but there is no license evidence
file in this repository, so only the existing
`legacy-license-unverified` warning is produced.
- `timestamps.reviewedAt` and `releasePublishedAt` stay `unknown`; only
`catalogUpdatedAt` and `upstreamObservedAt` carry real observed values.
- `branding` declares `independent-listing` / `nominative` / `not-used`:
an independent listing, nominative use of the product name, and no
third-party logo (the icon is a generic terminal-window glyph).
- Because the source is unpinned, `gen-collection-children.py --check`
reports `SKIP` (the same path the existing `mattpocock-skills` entry
takes). The `children` list was written by hand against the
`multi/<id>/` layout actually observed in the distributed skill bundle.

### Validation (actually executed, all exit 0)

All seven checks from `.github/workflows/i18n-validate.yml` were run
locally and passed; the only warning attributable to this entry is
`legacy-license-unverified`, matching every other pointer entry.
`entry.json` additionally validates against the client's
`marketSkillEntrySchema` under Ajv.

The pre-publication public-information-boundary check in `CLAUDE.md` was
performed and passed with a zero-result scan across the working tree
(hidden files included), path names, branch name, commit text and this
PR text. The search tokens are kept outside the repository.

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: yi-ge <jackyoncode@gmail.com>
This commit is contained in:
2026-09-02 06:25:24 -04:00
committed by GitHub
parent 8ca10741aa
commit fb6005cd7b
4 changed files with 668 additions and 5 deletions

View File

@@ -0,0 +1,459 @@
{
"$schema": "../../schemas/catalog-metadata.v1.schema.json",
"schemaVersion": 1,
"identity": {
"kind": "skill",
"id": "dingtalk-cli"
},
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "DingTalk Workspace CLI",
"summary": "Official DingTalk CLI (dws) for humans and AI agents, covering messaging, documents, drive, calendar, to-do, mail and AI minutes across 29 product domains and 1200+ tools. You install the dingtalk-workspace-cli npm package and complete DingTalk OAuth sign-in yourself (no username-and-password login); DesireCore does not bundle, license, install or operate DingTalk or this CLI."
},
"zh-CN": {
"name": "钉钉 CLI",
"summary": "钉钉官方命令行工具 dws面向人与 AI Agent覆盖消息、文档、钉盘、日历、待办、邮件、AI 听记等 29 个产品域、1200+ 工具。需自行用 npm 安装 dingtalk-workspace-cli 并完成钉钉 OAuth 授权登录不支持账号密码登录DesireCore 不打包、不授权、不安装也不代运营钉钉或该 CLI。"
}
},
"category": "communication",
"tags": [
"open-dingtalk"
]
},
"release": {
"state": "unknown"
},
"timestamps": {
"catalogUpdatedAt": {
"state": "known",
"value": "2026-08-31T11:41:31Z",
"precision": "second"
},
"releasePublishedAt": {
"state": "unknown"
},
"reviewedAt": {
"state": "unknown"
},
"upstreamObservedAt": {
"state": "known",
"value": "2026-08-31T11:41:31Z",
"precision": "second"
}
},
"provenance": {
"content": {
"kind": "git",
"url": "https://github.com/open-dingtalk/dingtalk-workspace-cli.git"
}
},
"governance": {
"stewardship": "partner",
"availability": "listing-only",
"license": {
"state": "unknown"
},
"redistribution": "verify-package-terms",
"branding": {
"relationship": "independent-listing",
"nameUsage": "nominative",
"logoStatus": "not-used"
},
"upstreamMaintainer": {
"name": "open-dingtalk",
"url": "https://www.npmjs.com/package/dingtalk-workspace-cli",
"verified": false
}
},
"compatibility": {
"platforms": {
"state": "known",
"values": [
"macos",
"windows",
"linux"
]
},
"requirements": [
{
"kind": "runtime",
"value": "DingTalk Workspace CLI (dws), a separately distributed third-party program. The operator installs it from the public npm package dingtalk-workspace-cli and keeps it on PATH. DesireCore does not bundle, license, install, pay for or operate the CLI or any DingTalk service."
},
{
"kind": "runtime",
"value": "Node.js >= 16.7.0 on the operator's machine to install the npm package, which unpacks a prebuilt platform binary during postinstall."
},
{
"kind": "connection",
"value": "A DingTalk session the operator authorizes with `dws auth login` (OAuth QR code or device flow). Account-and-password sign-in is not supported. Without an authorized session the skills must stop before the external call and must never fabricate a successful result."
},
{
"kind": "permission",
"value": "Capability coverage depends on the OAuth scopes and DingTalk entitlements the operator's organization has granted; commands outside them fail explicitly instead of degrading silently."
}
]
},
"spec": {
"kind": "skill",
"skillType": "procedural",
"riskLevel": "high",
"collection": {
"role": "parent",
"childCount": 14,
"children": [
{
"identity": {
"kind": "skill",
"id": "dingtalk-aisearch",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-aisearch",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-aisearch",
"summary": "AI Search: find people by name, staff ID, department, duty or reporting line, and search across documents, messages, mail and AI minutes. Command prefix: dws aisearch."
},
"zh-CN": {
"name": "dingtalk-aisearch",
"summary": "AI 搜问:按姓名、工号、部门、职责或上下级线索找人,并跨文档、消息、邮件与听记检索。命令前缀 dws aisearch。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-aitable",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-aitable",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-aitable",
"summary": "DingTalk AI Table (multi-dimensional base): create tables, manage fields and records, filter and sort, bulk import and export, dashboards and data-source sync. Command prefix: dws aitable."
},
"zh-CN": {
"name": "dingtalk-aitable",
"summary": "钉钉 AI 表格(多维表):建表、字段与记录增删改查、筛选排序、批量导入导出、仪表盘图表与数据源同步。命令前缀 dws aitable。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-calendar",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-calendar",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-calendar",
"summary": "DingTalk calendar and meeting rooms: list events, create or reschedule meetings, book rooms, check free/busy and shared availability, and manage attendees. Command prefix: dws calendar."
},
"zh-CN": {
"name": "dingtalk-calendar",
"summary": "钉钉日历与会议室:查询日程、创建或改期会议、预订会议室、查闲忙与共同空闲、增删参会人。命令前缀 dws calendar。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-chat",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-chat",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-chat",
"summary": "DingTalk chats and messages: send, edit and recall messages, create and manage groups, threaded replies, chat history search, bots and webhook notices. Command prefix: dws chat."
},
"zh-CN": {
"name": "dingtalk-chat",
"summary": "钉钉群聊与消息:收发、编辑与撤回消息,建群与群成员管理,话题回复,搜索聊天记录,机器人与 Webhook 通知。命令前缀 dws chat。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-contact",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-contact",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-contact",
"summary": "Precise DingTalk directory lookups: user detail, department, title and email by userId, reverse lookup by full phone number, own profile, department members and roles. Command prefix: dws contact."
},
"zh-CN": {
"name": "dingtalk-contact",
"summary": "钉钉通讯录精确查询:按 userId 查用户详情、部门、职位与邮箱,按完整手机号反查用户,查询本人、部门成员与角色。命令前缀 dws contact。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-doc",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-doc",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-doc",
"summary": "DingTalk online documents: find, create, read and edit content and blocks; comments, attachments, versions, templates, collaborator permissions, sharing and docx/markdown/pdf export. Command prefix: dws doc."
},
"zh-CN": {
"name": "dingtalk-doc",
"summary": "钉钉在线文档:查找、创建、读取与编辑正文和块,评论、附件、版本、模板、协作者权限与分享,以及 docx/markdown/pdf 导出。命令前缀 dws doc。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-drive",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-drive",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-drive",
"summary": "DingTalk file storage (DingDrive and document spaces): find, upload, download, copy, move, rename, delete, recycle bin, permissions, comments, and local folder compare and sync. Command prefix: dws drive."
},
"zh-CN": {
"name": "dingtalk-drive",
"summary": "钉钉文件管理(钉盘与文档空间):查找、上传下载、复制移动、重命名删除、回收站、权限与评论,以及本地目录比较与同步。命令前缀 dws drive。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-event",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-event",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-event",
"summary": "Long-lived DingTalk event streaming: personal IM messages, read receipts, recalls, reactions, group membership and state changes, plus OA approval task and instance events. Command prefix: dws event."
},
"zh-CN": {
"name": "dingtalk-event",
"summary": "钉钉事件长连接监听:个人 IM 消息、已读与撤回、表情回应、群成员与群状态变化,以及 OA 审批任务与实例事件。命令前缀 dws event。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-mail",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-mail",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-mail",
"summary": "DingTalk Mail: compose, send, read, search, reply to and forward mail, and handle unread items and attachments; resolve recipients with dingtalk-contact first. Command prefix: dws mail."
},
"zh-CN": {
"name": "dingtalk-mail",
"summary": "钉钉邮箱:撰写发送、查阅、搜索、回复与转发邮件,处理未读邮件与附件;收件人先由 dingtalk-contact 解析确认。命令前缀 dws mail。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-minutes",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-minutes",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-minutes",
"summary": "DingTalk AI Minutes: read or edit summaries, transcripts, keywords, action items and recordings; upload audio, build mind maps, and review speaker insights and sharing permissions. Command prefix: dws minutes."
},
"zh-CN": {
"name": "dingtalk-minutes",
"summary": "钉钉 AI 听记:查询或修改摘要、逐字稿、关键词、行动项与录音,上传音频、生成思维导图、查看发言人洞察与分享权限。命令前缀 dws minutes。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-misc",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-misc",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-misc",
"summary": "Long-tail product bundle: OA approvals, attendance, work reports, urgent DING messages, live streams, recruiting, goal management, sheets, whiteboards, native Markdown and a raw OpenAPI escape hatch. Command prefixes come from the skill's own product index."
},
"zh-CN": {
"name": "dingtalk-misc",
"summary": "长尾产品集合OA 审批、考勤、日志日报、DING 紧急消息、直播、招聘、目标管理、电子表格、白板、原生 Markdown 与 OpenAPI 逃生舱。命令前缀见技能内产品索引表。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-shared",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-shared",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-shared",
"summary": "Lightweight shared entry point for the DingTalk MultiSkill set: global execution contract, URL type pre-checks and product-boundary disambiguation for generic or cross-product requests."
},
"zh-CN": {
"name": "dingtalk-shared",
"summary": "钉钉 MultiSkill 的轻量共享入口提供全局执行契约、URL 类型预检与产品边界消歧,适用于泛称 DWS 操作或跨产品编排。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-todo",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-todo",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-todo",
"summary": "DingTalk To-Do: create, assign, batch-create and repeat tasks, mark them complete, and query open, urgent and overdue items. Command prefix: dws todo."
},
"zh-CN": {
"name": "dingtalk-todo",
"summary": "钉钉待办:创建、指派、批量新建与循环待办,标记完成,查询待办、紧急待办与逾期待办。命令前缀 dws todo。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
},
{
"identity": {
"kind": "skill",
"id": "dingtalk-wiki",
"parentId": "dingtalk-cli"
},
"path": "multi/dingtalk-wiki",
"presentation": {
"defaultLocale": "en-US",
"i18n": {
"en-US": {
"name": "dingtalk-wiki",
"summary": "DingTalk Wiki and space management: create and find knowledge bases, manage space members, and create, list, search, copy, move, delete and track nodes. Command prefix: dws wiki."
},
"zh-CN": {
"name": "dingtalk-wiki",
"summary": "钉钉知识库与空间管理:创建与查找知识库、管理成员,以及库内节点的创建、列举、搜索、复制、移动、删除与动态查询。命令前缀 dws wiki。"
}
},
"tags": []
},
"release": {
"state": "unknown"
}
}
]
}
}
}

View File

@@ -0,0 +1,204 @@
{
"id": "dingtalk-cli",
"name": "DingTalk Workspace CLI",
"category": "communication",
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"16\" rx=\"3\" stroke=\"#2563EB\" stroke-width=\"1.7\"/><path d=\"M3 8.5h18\" stroke=\"#2563EB\" stroke-width=\"1.7\"/><path d=\"m7 12.5 2 2-2 2\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path d=\"M12.5 16.5h4.5\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\"/></svg>",
"tags": [
"open-dingtalk"
],
"i18n": {
"zh-CN": {
"name": "钉钉 CLI",
"shortDesc": "钉钉官方命令行工具 dws面向人与 AI Agent覆盖消息、文档、钉盘、日历、待办、邮件、AI 听记等 29 个产品域、1200+ 工具。需自行用 npm 安装 dingtalk-workspace-cli 并完成钉钉 OAuth 授权登录不支持账号密码登录DesireCore 不打包、不授权、不安装也不代运营钉钉或该 CLI。"
},
"en-US": {
"name": "DingTalk Workspace CLI",
"shortDesc": "Official DingTalk CLI (dws) for humans and AI agents, covering messaging, documents, drive, calendar, to-do, mail and AI minutes across 29 product domains and 1200+ tools. You install the dingtalk-workspace-cli npm package and complete DingTalk OAuth sign-in yourself (no username-and-password login); DesireCore does not bundle, license, install or operate DingTalk or this CLI."
}
},
"maintainer": {
"name": "open-dingtalk",
"verified": false,
"account": "open-dingtalk",
"url": "https://www.npmjs.com/package/dingtalk-workspace-cli"
},
"stewardship": "partner",
"license": "Apache-2.0",
"redistribution": "verify-package-terms",
"riskLevel": "high",
"source": {
"kind": "git",
"repoUrl": "https://github.com/open-dingtalk/dingtalk-workspace-cli.git",
"repoBranch": "main"
},
"children": [
{
"id": "dingtalk-aisearch",
"path": "multi/dingtalk-aisearch",
"i18n": {
"zh-CN": {
"shortDesc": "AI 搜问:按姓名、工号、部门、职责或上下级线索找人,并跨文档、消息、邮件与听记检索。命令前缀 dws aisearch。"
},
"en-US": {
"shortDesc": "AI Search: find people by name, staff ID, department, duty or reporting line, and search across documents, messages, mail and AI minutes. Command prefix: dws aisearch."
}
}
},
{
"id": "dingtalk-aitable",
"path": "multi/dingtalk-aitable",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉 AI 表格(多维表):建表、字段与记录增删改查、筛选排序、批量导入导出、仪表盘图表与数据源同步。命令前缀 dws aitable。"
},
"en-US": {
"shortDesc": "DingTalk AI Table (multi-dimensional base): create tables, manage fields and records, filter and sort, bulk import and export, dashboards and data-source sync. Command prefix: dws aitable."
}
}
},
{
"id": "dingtalk-calendar",
"path": "multi/dingtalk-calendar",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉日历与会议室:查询日程、创建或改期会议、预订会议室、查闲忙与共同空闲、增删参会人。命令前缀 dws calendar。"
},
"en-US": {
"shortDesc": "DingTalk calendar and meeting rooms: list events, create or reschedule meetings, book rooms, check free/busy and shared availability, and manage attendees. Command prefix: dws calendar."
}
}
},
{
"id": "dingtalk-chat",
"path": "multi/dingtalk-chat",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉群聊与消息:收发、编辑与撤回消息,建群与群成员管理,话题回复,搜索聊天记录,机器人与 Webhook 通知。命令前缀 dws chat。"
},
"en-US": {
"shortDesc": "DingTalk chats and messages: send, edit and recall messages, create and manage groups, threaded replies, chat history search, bots and webhook notices. Command prefix: dws chat."
}
}
},
{
"id": "dingtalk-contact",
"path": "multi/dingtalk-contact",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉通讯录精确查询:按 userId 查用户详情、部门、职位与邮箱,按完整手机号反查用户,查询本人、部门成员与角色。命令前缀 dws contact。"
},
"en-US": {
"shortDesc": "Precise DingTalk directory lookups: user detail, department, title and email by userId, reverse lookup by full phone number, own profile, department members and roles. Command prefix: dws contact."
}
}
},
{
"id": "dingtalk-doc",
"path": "multi/dingtalk-doc",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉在线文档:查找、创建、读取与编辑正文和块,评论、附件、版本、模板、协作者权限与分享,以及 docx/markdown/pdf 导出。命令前缀 dws doc。"
},
"en-US": {
"shortDesc": "DingTalk online documents: find, create, read and edit content and blocks; comments, attachments, versions, templates, collaborator permissions, sharing and docx/markdown/pdf export. Command prefix: dws doc."
}
}
},
{
"id": "dingtalk-drive",
"path": "multi/dingtalk-drive",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉文件管理(钉盘与文档空间):查找、上传下载、复制移动、重命名删除、回收站、权限与评论,以及本地目录比较与同步。命令前缀 dws drive。"
},
"en-US": {
"shortDesc": "DingTalk file storage (DingDrive and document spaces): find, upload, download, copy, move, rename, delete, recycle bin, permissions, comments, and local folder compare and sync. Command prefix: dws drive."
}
}
},
{
"id": "dingtalk-event",
"path": "multi/dingtalk-event",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉事件长连接监听:个人 IM 消息、已读与撤回、表情回应、群成员与群状态变化,以及 OA 审批任务与实例事件。命令前缀 dws event。"
},
"en-US": {
"shortDesc": "Long-lived DingTalk event streaming: personal IM messages, read receipts, recalls, reactions, group membership and state changes, plus OA approval task and instance events. Command prefix: dws event."
}
}
},
{
"id": "dingtalk-mail",
"path": "multi/dingtalk-mail",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉邮箱:撰写发送、查阅、搜索、回复与转发邮件,处理未读邮件与附件;收件人先由 dingtalk-contact 解析确认。命令前缀 dws mail。"
},
"en-US": {
"shortDesc": "DingTalk Mail: compose, send, read, search, reply to and forward mail, and handle unread items and attachments; resolve recipients with dingtalk-contact first. Command prefix: dws mail."
}
}
},
{
"id": "dingtalk-minutes",
"path": "multi/dingtalk-minutes",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉 AI 听记:查询或修改摘要、逐字稿、关键词、行动项与录音,上传音频、生成思维导图、查看发言人洞察与分享权限。命令前缀 dws minutes。"
},
"en-US": {
"shortDesc": "DingTalk AI Minutes: read or edit summaries, transcripts, keywords, action items and recordings; upload audio, build mind maps, and review speaker insights and sharing permissions. Command prefix: dws minutes."
}
}
},
{
"id": "dingtalk-misc",
"path": "multi/dingtalk-misc",
"i18n": {
"zh-CN": {
"shortDesc": "长尾产品集合OA 审批、考勤、日志日报、DING 紧急消息、直播、招聘、目标管理、电子表格、白板、原生 Markdown 与 OpenAPI 逃生舱。命令前缀见技能内产品索引表。"
},
"en-US": {
"shortDesc": "Long-tail product bundle: OA approvals, attendance, work reports, urgent DING messages, live streams, recruiting, goal management, sheets, whiteboards, native Markdown and a raw OpenAPI escape hatch. Command prefixes come from the skill's own product index."
}
}
},
{
"id": "dingtalk-shared",
"path": "multi/dingtalk-shared",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉 MultiSkill 的轻量共享入口提供全局执行契约、URL 类型预检与产品边界消歧,适用于泛称 DWS 操作或跨产品编排。"
},
"en-US": {
"shortDesc": "Lightweight shared entry point for the DingTalk MultiSkill set: global execution contract, URL type pre-checks and product-boundary disambiguation for generic or cross-product requests."
}
}
},
{
"id": "dingtalk-todo",
"path": "multi/dingtalk-todo",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉待办:创建、指派、批量新建与循环待办,标记完成,查询待办、紧急待办与逾期待办。命令前缀 dws todo。"
},
"en-US": {
"shortDesc": "DingTalk To-Do: create, assign, batch-create and repeat tasks, mark them complete, and query open, urgent and overdue items. Command prefix: dws todo."
}
}
},
{
"id": "dingtalk-wiki",
"path": "multi/dingtalk-wiki",
"i18n": {
"zh-CN": {
"shortDesc": "钉钉知识库与空间管理:创建与查找知识库、管理成员,以及库内节点的创建、列举、搜索、复制、移动、删除与动态查询。命令前缀 dws wiki。"
},
"en-US": {
"shortDesc": "DingTalk Wiki and space management: create and find knowledge bases, manage space members, and create, list, search, copy, move, delete and track nodes. Command prefix: dws wiki."
}
}
}
]
}