DingTalk Workspace CLI (dws)

DingTalk Workspace CLI

Official DingTalk CLI with agent skills: chats, calendar, todos, mail, docs and approvals of your organization from the terminal

  • 3,784 ★ on the repository
  • Last commit
  • Apache-2.0
CLIOfficial

Broad access

Why this level

  • Commands read and write organization data: messages, mail, calendar, docs and approvals
  • Sign-in gives the agent access to a DingTalk account and tokens, and the --yes flag removes confirmation prompts
  • The install script downloads and runs a binary, and skills are written into agent directories
All reasons and checks

dingtalk-real-ai/dingtalk-workspace-cli

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/dingtalk-workspace-cli

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Commands read and write organization data: messages, mail, calendar, docs and approvals
  • Sign-in gives the agent access to a DingTalk account and tokens, and the --yes flag removes confirmation prompts
  • The install script downloads and runs a binary, and skills are written into agent directories

This is third-party code. Review the repository files before installing.

What it does

The dws command bundles DingTalk products into a single executable with JSON output, so an agent can read and change organization data without manual clicks. It covers contacts, chats and bots, calendar with meeting rooms, todos, OA approvals, attendance, reports, AI Table bases, docs, drive, meeting minutes, mail, sheets and the wiki. A direct call to server-side OpenAPIs is available through the api command. For agents the project installs Agent Skills in two layouts. The default is a per-product set such as dingtalk-calendar and dingtalk-chat that keeps context small, while the mono mode installs one shared dws skill. For safer agent runs there are --dry-run (show the request without executing), --yes (skip confirmations) and --jq (extract the fields you need). The dws dev connect command bridges a DingTalk robot to a local AI CLI such as Claude Code or Codex: you mention the bot in a chat and it answers with the help of the agent.

Who it is for. For teams that work in DingTalk and for developers who want to automate chats, calendar, approvals and documents of an organization through an agent.

Good fit when

  • You want the agent to find free time for attendees and book a meeting room in the DingTalk calendar
  • A summary of tasks, approvals or reports must be assembled from several DingTalk sections with one command
  • The agent has to search and read docs, sheets and wiki pages of the organization, and leave comments in docs
  • A DingTalk bot should connect to a local Claude Code or Codex so it answers in a group chat
  • A script or CI job must call DingTalk server-side OpenAPIs with an app token

Not a fit when

  • Your organization has not enabled CLI access: without admin approval the dws login will not complete
  • You run Alpine or another musl distribution: Linux binaries are built against glibc and the installer stops there
  • You need another messenger: the tool works with DingTalk only
  • You are not ready to hand an agent the right to send messages and approvals: some commands write organization data

Example request

Show my DingTalk agenda for today and find common free time with Li Ming this week

Limitations

The project is in a co-creation phase and reaches corporate data, so it needs authorization from an organization admin. Building from source requires Go 1.26 or newer and a C compiler. The --yes flag lets an agent skip confirmations and --dry-run helps before risky actions.

Users in mainland China get a Gitee mirror and an install through npmmirror. The project description says nothing about using DingTalk from Russia.

How to disable. Delete the dws binary and the dingtalk-* skills from the agent's skills folder. The skill layout switches with dws skill setup --mode mono or --mode multi. The organization revokes the app's access in the DingTalk developer console.

FAQ

How do I connect DingTalk to Claude Code or Cursor?

Install dws, sign in with dws auth login (dws auth login --device works where there is no browser) and add the skills: npx skills add DingTalk-Real-AI/dingtalk-workspace-cli -g. After that the agent calls dws commands itself. Cursor also has a built-in setup: dws skill setup --mode multi --target cursor.

How do the multi and mono skill modes differ?

Multi installs per-product skills such as dingtalk-aitable and dingtalk-calendar and suits single-product tasks with a small context. Mono installs one dws skill, convenient for cross-product workflows. The dws commands are identical in both modes.

What if my organization has not enabled CLI access?

After choosing the organization, click Apply Now: an admin receives a request card and approves it in one click. Admins can also enable access themselves under CLI Access Management on the DingTalk developer platform. Run dws auth login again once approved.

How are tokens stored?

Tokens are encrypted with PBKDF2 and AES-256-GCM and tied to the device, with Keychain or DPAPI as an extra layer. By default a token is sent only to *.dingtalk.com domains, and the list is set through the DWS_TRUSTED_DOMAINS variable.

How do I update dws?

With dws upgrade. The --check flag only looks for a new version, --list shows stable releases, --beta switches to the beta channel, --version installs a chosen release and --rollback restores the previous version from the automatic backup. The update verifies size and SHA256, and the old install stays if anything fails.

Discussion

No questions or reviews yet.

CLI tools

Lark CLI

lark-cli

Official

The official Lark and Feishu CLI with agent skills: messages, docs, sheets, calendar, mail and tasks from the terminal, over 200 commands

CLIBroad access17.8KRepository stars

A library of 229 skills for work and life: sales, marketing, finance, engineering, design and parallel agent runs

SkillBroad access368Repository stars
Editors’ pick

A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more

CLIBroad access31.8KRepository stars

A Slack CLI and skill: the agent reads channels and threads and searches messages and files, and drafts or sends only when you ask

CLIBroad access562Repository stars

Claude-to-IM

claude-to-im

A bridge between Claude Code or Codex and messengers: talk to the agent from Telegram, Discord, Feishu, QQ or WeChat

SkillBroad access2.9KRepository stars

Official Todoist command line with an agent skill: tasks, projects and inbox from the terminal

CLIExtended access323Repository stars

Comparison with similar tools

Entries that share the main search query, and how they differ.

EntryOfficialAuthenticationRepository starsMain difference
DingTalk Workspace CLI (dws) (this entry)yes3,784
gwsno31,797a similar CLI with JSON output and skills, but for Google Workspace APIs
Slack MCP Servernokey is optional1,872an MCP server for the Slack messenger, unrelated to DingTalk
Lark CLIyes17,807the official Lark and Feishu CLI with agent skills

README in short

The project page presents dws as a universal DingTalk command-line tool for people, agents and admins. It covers installation paths (script, npm, Homebrew, prebuilt binaries, building from source), OAuth sign-in in device mode and a custom-app mode for CI, a table of services and security sections. Upgrades through dws upgrade, mirrors for mainland China and an OpenHarmony build are covered separately.

README badge

Report a problem

Foxx AIDingTalk Workspace CLI (dws)
Foxx AI

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.