Loading...
Loading...
Compare original and translation side by side
Skill by ara.so — Daily 2026 Skills collection.
dws由ara.so提供的Skill — 2026每日技能合集。
dwscurl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | shirm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex~/.local/bin~/.agents/skills/dwsexport PATH="$HOME/.local/bin:$PATH"curl -fsSL https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.sh | shirm https://raw.githubusercontent.com/DingTalk-Real-AI/dingtalk-workspace-cli/main/scripts/install.ps1 | iex~/.local/bin~/.agents/skills/dwsexport PATH="$HOME/.local/bin:$PATH"undefinedundefinedgit clone https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git
cd dingtalk-workspace-cli
make build
./dws versiongit clone https://github.com/DingTalk-Real-AI/dingtalk-workspace-cli.git
cd dingtalk-workspace-cli
make build
./dws versionhttp://127.0.0.1http://127.0.0.1undefinedundefined
Tokens are stored encrypted with **PBKDF2 (600,000 iterations) + AES-256-GCM**, keyed to your device MAC address.
---
令牌通过**PBKDF2(600,000次迭代)+ AES-256-GCM**加密存储,密钥与设备MAC地址绑定。
---| Variable | Purpose |
|---|---|
| OAuth Client ID (DingTalk AppKey) |
| OAuth Client Secret (DingTalk AppSecret) |
| Override default config directory |
| Custom server registry endpoint |
| Comma-separated domains for bearer token (default: |
| Set to |
| 变量名称 | 用途 |
|---|---|
| OAuth Client ID(钉钉AppKey) |
| OAuth Client Secret(钉钉AppSecret) |
| 覆盖默认配置目录 |
| 自定义服务注册端点 |
| 承载令牌的可信域名列表(逗号分隔,默认: |
| 设置为 |
dws auth login # Authenticate via OAuth device flow
dws auth logout # Remove stored credentials
dws auth status # Show current auth statusdws auth login # 通过OAuth设备流进行身份验证
dws auth logout # 删除存储的凭证
dws auth status # 显示当前身份验证状态undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined
---
----f--formatundefined-f--formatundefined
Save output to a file:
```bash
dws contact user search --keyword "Alice" -f json -o results.json
将输出保存至文件:
```bash
dws contact user search --keyword "Alice" -f json -o results.jsondws todo task list --dry-run
dws calendar event create --title "Test" --dry-rundws todo task list --dry-run
dws calendar event create --title "测试" --dry-runundefinedundefined
---
---| Code | Category | Meaning |
|---|---|---|
| 0 | Success | Command completed successfully |
| 1 | API | MCP tool call or upstream API failure |
| 2 | Auth | Authentication or authorization failure |
| 3 | Validation | Bad input flags or schema mismatch |
| 4 | Discovery | Service discovery or cache failure |
| 5 | Internal | Unexpected internal error |
-f jsoncategoryreasonhintactions| 代码 | 分类 | 含义 |
|---|---|---|
| 0 | 成功 | 命令执行完成 |
| 1 | API | MCP工具调用或上游API失败 |
| 2 | 身份验证 | 身份验证或授权失败 |
| 3 | 验证 | 输入参数错误或 schema 不匹配 |
| 4 | 发现 | 服务发现或缓存失败 |
| 5 | 内部 | 意外内部错误 |
-f jsoncategoryreasonhintactions#!/bin/bash
set -euo pipefail#!/bin/bash
set -euo pipefailundefinedundefined#!/bin/bash
dws ding send \
--receiver-ids "$TEAM_USER_IDS" \
--content "🕘 Daily standup in 5 minutes — please join!" \
-f json#!/bin/bash
dws ding send \
--receiver-ids "$TEAM_USER_IDS" \
--content "🕘 5分钟后召开每日站会 — 请准时参加!" \
-f json#!/bin/bash
STATUS=${1:-"unknown"}
EMOJI=$([[ "$STATUS" == "success" ]] && echo "✅" || echo "❌")
dws chat webhook send \
--url "$DINGTALK_WEBHOOK_URL" \
--content "$EMOJI Build #$BUILD_NUMBER $STATUS — $BUILD_URL"#!/bin/bash
STATUS=${1:-"unknown"}
EMOJI=$([[ "$STATUS" == "success" ]] && echo "✅" || echo "❌")
dws chat webhook send \
--url "$DINGTALK_WEBHOOK_URL" \
--content "$EMOJI 构建 #$BUILD_NUMBER $STATUS — $BUILD_URL"package main
import (
"os/exec"
"encoding/json"
"fmt"
)
type SearchResult struct {
Data []struct {
UserID string `json:"userId"`
Name string `json:"name"`
} `json:"data"`
}
func searchDingTalkUser(keyword string) (*SearchResult, error) {
cmd := exec.Command("dws", "contact", "user", "search",
"--keyword", keyword,
"-f", "json",
)
out, err := cmd.Output()
if err != nil {
return nil, fmt.Errorf("dws error: %w", err)
}
var result SearchResult
if err := json.Unmarshal(out, &result); err != nil {
return nil, err
}
return &result, nil
}
func main() {
result, err := searchDingTalkUser("Alice")
if err != nil {
panic(err)
}
for _, u := range result.Data {
fmt.Printf("User: %s (%s)\n", u.Name, u.UserID)
}
}package main
import (
"os/exec"
"encoding/json"
"fmt"
)
type SearchResult struct {
Data []struct {
UserID string `json:"userId"`
Name string `json:"name"`
} `json:"data"`
}
func searchDingTalkUser(keyword string) (*SearchResult, error) {
cmd := exec.Command("dws", "contact", "user", "search",
"--keyword", keyword,
"-f", "json",
)
out, err := cmd.Output()
if err != nil {
return nil, fmt.Errorf("dws错误:%w", err)
}
var result SearchResult
if err := json.Unmarshal(out, &result); err != nil {
return nil, err
}
return &result, nil
}
func main() {
result, err := searchDingTalkUser("Alice")
if err != nil {
panic(err)
}
for _, u := range result.Data {
fmt.Printf("用户:%s (%s)\n", u.Name, u.UserID)
}
}dws.agents/skills/dws.agents/skills/undefinedundefined
Skills are placed at `./.agents/skills/dws/` — commit these to your repo so all collaborators and agents get DingTalk capabilities automatically.
技能将被放置在`./.agents/skills/dws/` — 将其提交至代码仓库,以便所有协作者和Agent自动获得钉钉功能。dwsMarket Registry → Discovery → IR (normalized catalog) → CLI (Cobra) → Transport (MCP JSON-RPC)
↓ ↓
mcp.dingtalk.com Disk cache (TTL + stale-fallback for offline use)mcp.dingtalk.comdws市场注册表 → 发现 → IR(标准化目录)→ CLI(Cobra)→ 传输层(MCP JSON-RPC)
↓ ↓
mcp.dingtalk.com 磁盘缓存(TTL + 离线使用时的过期回退)mcp.dingtalk.commake build # Build binary
make test # Run unit tests
make lint # Format + lint
make package # Build all release artifacts locally (goreleaser snapshot)
make release # Build and release via goreleasermake build # 构建二进制文件
make test # 运行单元测试
make lint # 格式化 + 代码检查
make package # 本地构建所有发布产物(goreleaser快照)
make release # 通过goreleaser构建并发布dws: command not foundexport PATH="$HOME/.local/bin:$PATH"DWS_CLIENT_IDDWS_CLIENT_SECREThttp://127.0.0.1dwsrm -rf "${DWS_CONFIG_DIR:-$HOME/.config/dws}/cache"DWS_SERVERS_URLundefineddws: command not foundexport PATH="$HOME/.local/bin:$PATH"DWS_CLIENT_IDDWS_CLIENT_SECREThttp://127.0.0.1dwsrm -rf "${DWS_CONFIG_DIR:-$HOME/.config/dws}/cache"DWS_SERVERS_URLundefined
**Inspect raw requests**
```bash
dws contact user search --keyword "Alice" -f rawexport DWS_ALLOW_HTTP_ENDPOINTS=1
**检查原始请求**
```bash
dws contact user search --keyword "Alice" -f rawexport DWS_ALLOW_HTTP_ENDPOINTS=1