Openakita/Skills@Dingtalk Cli logo

Openakita/Skills@Dingtalk Cli

CommunityPopular
openakita
openakita/skills@dingtalk-cli

DingTalk Workspace CLI (dws) - officially open-sourced cross-platform CLI tool from DingTalk. Provides 86 commands across 12 products: Contact, Chat, Bot, Calendar, Todo, Approval, Attendance, Ding, Report, AITable, Workbench, DevDoc. Built in Go with zero-trust security architecture. Use when user wants to operate DingTalk resources.

Overview

Publisheropenakita
Repositoryopenakita
Skill nameopenakita/skills@dingtalk-cli
Stars
2K
Forks
277
Bundled files
3
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.

  • 3 bundled files

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

  • Open source

    Published by openakita on GitHub. Read the source before you install it.

Installation

Install the Openakita/Skills@Dingtalk Cli 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/openakita/openakita.git /tmp/openakita
mkdir -p .claude/skills
cp -r /tmp/openakita/skills/dingtalk-cli .claude/skills/openakita-openakita-skills-dingtalk-cli
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Openakita/Skills@Dingtalk Cli 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 Openakita/Skills@Dingtalk Cli 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 Openakita/Skills@Dingtalk Cli 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.

钉钉 Workspace CLI (dws)

钉钉官方开源的跨平台 CLI 工具,Go 语言开发。为人类用户和 AI Agent 场景同时设计,统一钉钉全套产品能力。

官方 GitHub: https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli 1500+ Stars | Apache-2.0 许可

安装

macOS / Linux

bash
curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | sh

Windows (PowerShell)

powershell
irm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex

其他方式

bash
# npm(需 Node.js)
npm install -g dingtalk-workspace-cli

# 预编译二进制:从 GitHub Releases 下载
# https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli/releases

认证

bash
dws auth login            # 浏览器自动打开授权
dws auth login --device   # 无头环境(Docker、SSH、CI)

选择组织并授权即可。凭证使用 PBKDF2 + AES-256-GCM 加密存储。

自定义应用模式(CI/CD、ISV 集成)

bash
dws auth login --client-id <your-app-key> --client-secret <your-app-secret>

产品覆盖(86 条命令,12 个产品)

产品命令子命令说明
通讯录 contact6user dept按姓名/手机号搜索、批量查询、部门、当前用户
聊天 chat10message group search群管理、成员管理、机器人消息、webhook
机器人 bot6bot group message search机器人创建/搜索、群/单聊消息、webhook、消息撤回
日历 calendar13event room participant busy日程 CRUD、会议室预订、忙闲查询、参会人管理
待办 todo6task创建、列表、更新、完成、详情、删除
审批 approval9approval同意/拒绝/撤回、待办任务、发起实例、流程列表
考勤 attendance4record shift summary rules打卡记录、排班、考勤汇总、组规则
钉 ding2message发送/撤回 DING 消息
报表 report7create list detail template stats sent创建报表、收发列表、模板、统计
AI 表格 aitable20base table record field attachment template完整增删改查
工作台 workbench2app批量查询应用详情
开发文档 devdoc1article搜索平台文档和错误码

AI Agent 特性

智能输入纠正

内置管道引擎自动修正 AI 模型常见的参数错误:

Agent 输出dws 自动修正为
--userId--user-id
--limit100--limit 100
--tabel-id--table-id
--USER-ID--user-id

Schema 自省

Agent 无需预置知识,可动态发现能力:

bash
# 发现所有可用产品
dws schema --jq '.products[] | {id, tool_count: (.tools | length)}'

# 查看目标工具的参数 Schema
dws schema aitable.query_records --jq '.tool.parameters'

jq 过滤与字段选择

bash
# 精确过滤输出,减少 token 消耗
dws aitable record query --base-id BASE_ID --table-id TABLE_ID --jq '.invocation.params'

管道与文件输入

bash
# 从文件读取消息体
dws chat message send-by-bot --robot-code BOT_CODE --group GROUP_ID \
  --title "周报" --text @report.md

# 从 stdin 读取
cat report.md | dws chat message send-by-bot --robot-code BOT_CODE --group GROUP_ID \
  --title "周报"

Agent Skills 系统

仓库自带完整 Agent Skill 系统(skills/ 目录):

bash
# 安装 skills 到当前项目
curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install-skills.sh | sh

包含内容

组件路径说明
Master SkillSKILL.md意图路由、决策树、安全规则、错误处理
产品参考references/products/*.md各产品命令参考
意图指南references/intent-guide.md易混淆场景消歧
全局参考references/global-reference.md认证、输出格式、全局 flags
错误码references/error-codes.md错误码 + 调试流程
恢复指南references/recovery-guide.mdRECOVERY_EVENT_ID 处理
预置脚本scripts/*.py13 个批量操作 Python 脚本

预置 Python 脚本

脚本功能
calendar_schedule_meeting.py创建日程 + 添加参会人 + 查找并预订会议室
calendar_free_slot_finder.py多人共同空闲时段查找,推荐最佳会议时间
calendar_today_agenda.py查看今日/明日/本周日程
import_records.py从 CSV/JSON 批量导入 AI 表格记录
bulk_add_fields.py批量添加 AI 表格字段
todo_batch_create.py从 JSON 批量创建待办(含优先级、截止日期)
todo_daily_summary.py汇总今日/本周未完成待办
todo_overdue_check.py扫描逾期待办
contact_dept_members.py按部门名称搜索并列出全部成员
attendance_my_record.py查看我的考勤记录
attendance_team_shift.py查询团队排班与考勤统计
report_inbox_today.py查看今日收到的报表详情

安全设计

零信任架构:凭证不落盘、Token 不离开可信域、权限不超越授权、操作不逃过审计。

机制详情
加密令牌存储PBKDF2 + AES-256-GCM,基于设备物理 MAC 地址加密
输入安全路径遍历保护、CRLF 注入拦截、Unicode 视觉欺骗过滤
域名白名单DWS_TRUSTED_DOMAINS 默认 *.dingtalk.com,bearer token 不发往非白名单域
HTTPS 强制所有请求要求 TLS
Dry-run 预览--dry-run 展示调用参数但不执行,防止误操作
零凭证持久化Client ID / Secret 仅在内存中使用

升级

bash
dws upgrade                    # 交互式升级到最新版
dws upgrade --check            # 检查新版本
dws upgrade --rollback         # 回滚到上一版本

快速开始

bash
dws contact user search --keyword "engineering"     # 搜索联系人
dws calendar event list                              # 列出日历事件
dws todo task create --title "季度报告" --executors "<userId>"  # 创建待办
dws todo task list --dry-run                          # 预览(不执行)

预置脚本

scripts/dws_setup.py

钉钉 CLI 安装和认证脚本。

bash
python3 scripts/dws_setup.py install
python3 scripts/dws_setup.py auth
python3 scripts/dws_setup.py status

scripts/dws_quick.py

钉钉常用操作快捷脚本(dws 薄封装;命令路径以 dws schema 输出为唯一事实源)。

bash
# 通过机器人发消息到群(--text 支持 @file 引用,与 dws CLI 一致)
python3 scripts/dws_quick.py send --robot-code <BOT> --group <GID> --text "你好" --title "通知"

# 搜索联系人
python3 scripts/dws_quick.py contacts --keyword "engineering"

# 列日程
python3 scripts/dws_quick.py calendar

# 创建待办(executors 多个用英文逗号分隔)
python3 scripts/dws_quick.py todo --title "季度报告" --executors "userId1,userId2"

# 透传任意 dws 子命令(attendance/approval 等命名空间快速发现)
python3 scripts/dws_quick.py raw -- attendance --help
python3 scripts/dws_quick.py raw -- approval instance list --help

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 Openakita/Skills@Dingtalk Cli AI skill do?

DingTalk Workspace CLI (dws) - officially open-sourced cross-platform CLI tool from DingTalk. Provides 86 commands across 12 products: Contact, Chat, Bot, Calendar, Todo, Approval, Attendance, Ding, Report, AITable, Workbench, DevDoc. Built in Go with zero-trust security architecture. Use when user wants to operate DingTalk resources.

Why use Openakita/Skills@Dingtalk Cli on TypingMind?

Because you install it once and use it with any model. Openakita/Skills@Dingtalk Cli 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 Openakita/Skills@Dingtalk Cli in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/openakita/openakita/tree/main/skills/dingtalk-cli. 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 Openakita/Skills@Dingtalk Cli?

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 Openakita/Skills@Dingtalk Cli?

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

Is the Openakita/Skills@Dingtalk Cli AI skill free?

Yes. It is published on GitHub by openakita 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 👇