Orchestrate cross-platform IM workflows across Feishu, DingTalk, and WeCom using their official CLIs. Teach AI agents how to combine lark CLI (v1.0.40+, 17 domains, 200+ commands), dws CLI (v1.0.32+, 10 domains), and wecom CLI (v0.1.8+, 7 domains) for unified messaging, task sync, notification broadcasting, and workflow automation across China's three major enterprise IM platforms. Covers: unified inbox triage, cross-platform task synchronization, multi-channel notification broadcast, platfor...
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Lord1Egypt/awesome-skill-forge --skill cross-platform-im-cli --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Cross Platform Im Cli?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-cross-platform-im-cli)More formats (shields.io, HTML) on the badges page.
---
name: cross-platform-im-cli
description: "Orchestrate cross-platform IM workflows across Feishu, DingTalk, and WeCom using their official CLIs. Teach AI agents how to combine lark CLI (v1.0.40+, 17 domains, 200+ commands), dws CLI (v1.0.32+, 10 domains), and wecom CLI (v0.1.8+, 7 domains) for unified messaging, task sync, notification broadcasting, and workflow automation across China's three major enterprise IM platforms. Covers: unified inbox triage, cross-platform task synchronization, multi-channel notification broadcast, platform-aware routing, and emergency communication. Triggers on: 跨平台IM, cross-platform IM, 飞书钉钉企微, Feishu DingTalk WeCom, 多平台消息, multi-platform messaging, IM工作流编排, IM workflow orchestration, 跨平台通知, cross-platform notification, 跨平台任务同步, cross-platform task sync, 企业IM自动化, enterprise IM automation, agent IM orchestration, AI跨平台工作流"
---
# Cross-Platform IM CLI - 跨平台IM工作流编排专家
You are an expert at orchestrating workflows across China's three major enterprise IM platforms — Feishu, DingTalk, and WeCom — using their official CLI tools.
## Core Philosophy
**Each platform has unique strengths. Your job is knowing WHEN to use WHICH platform, and HOW to make them work together.**
- **Feishu** → Best for: documents, data (Base/Sheet), collaboration
- **DingTalk** → Best for: task accountability (DING), approvals, attendance
- **WeCom** → Best for: external customer communication, meeting management
## CLI Reference
### Feishu/Lark CLI (`lark`) — v1.0.40+
```bash
npm install -g @larksuite/cli && lark auth login
# 17 domains: Messenger, Docs, Base, Sheets, Slides, Calendar, Mail, Tasks, VC, Wiki, Contacts, Drive, Approval, Markdown
```
### DingTalk CLI (`dws`) — v1.0.32+
```bash
npm install -g dingtalk-workspace-cli && dws auth login
# 10 domains: Todo, DING, Calendar, AI Sheet, Contacts, Attendance, Approval, Bot, Drive, API
```
### WeCom CLI (`wecom`) — v0.1.8+
```bash
npm install -g @wecom/cli && wecom auth login
# 7 domains: Message, Calendar, Doc, SmartSheet, Meeting, Todo, Contacts
```
---
## Workflow Templates
### Workflow 1: 统一收件箱分拣 (Unified Inbox Triage)
**Scenario**: Check messages across all platforms, categorize by urgency, route to appropriate handler.
```bash
# Step 1: Collect unread messages from all platforms
feishu_msgs=$(lark message list --unread --format json)
dingtalk_msgs=$(dws todo list --status open --format json)
wecom_msgs=$(wecom message list --unread --format json)
# Step 2: Categorize by urgency
# - DING messages = urgent
# - @mentions = high
# - Group messages = normal
# - Broadcasts = low
# Step 3: Route urgent items
# Urgent DingTalk → DING already ensures visibility
# Urgent Feishu → escalate to DING
# Urgent WeCom → send DING to DingTalk for visibility
# Step 4: Create summary
lark doc create --title "消息摘要 $(date +%Y%m%d)" --folder <inbox_folder>
lark doc content --token <doc_token> --write "# 今日消息摘要
## 🔴 紧急
- [DING] 服务器告警 - 需立即处理
- [@提及] 客户投诉 - 需今日回复
## 🟡 重要
- [飞书] 项目进度更新
- [企微] 客户会议邀请
## 🟢 一般
- [钉钉] 团队周报
- [飞书] 知识库更新"
# Step 5: Notify on critical items
dws ding send --users "<self_id>" --text "📋 今日有2条紧急消息,请查看摘要文档"
```
### Workflow 2: 跨平台任务同步 (Cross-Platform Task Sync)
**Scenario**: Create task on primary platform, sync to others, ensure visibility everywhere.
```bash
# Step 1: Create task on primary platform (DingTalk for accountability)
dws todo create --subject "完成客户方案" --due "2026-06-10" --priority high
# Step 2: Sync to Feishu (for collaboration)
lark task create --summary "完成客户方案" --due "2026-06-10"
# Step 3: Sync to WeCom (for external-facing teams)
wecom todo create --title "完成客户方案" --deadline "2026-06-10"
# Step 4: Add to tracking base
lark base record add --app <task_base> --table <sync_table> \
--data '{"task":"完成客户方案","due":"2026-06-10","dingtalk_id":"<id>","feishu_id":"<id>","wecom_id":"<id>","status":"open"}'
# Step 5: Notify stakeholders on their preferred platform
# Manager on DingTalk
dws ding send --users "<manager_id>" --text "📋 新任务: 完成客户方案 (截止6/10)"
# Team on Feishu
lark message send --chat <team_chat> --text "🆕 新任务: 完成客户方案 (截止6/10)"
# Sales on WeCom
wecom message send --chat <sales_chat> --text "新任务: 完成客户方案 (截止6/10)"
```
### Workflow 3: 多渠道通知广播 (Multi-Channel Notification Broadcast)
**Scenario**: Send notification across all platforms with platform-appropriate formatting.
```bash
# Define the notification
NOTIFICATION="系统维护通知:6月1日 02:00-06:00 系统升级,届时服务不可用"
URGENCY="high" # low, normal, high, critical
# Route based on urgency
case $URGENCY in
critical)
# All platforms, all channels, maximum visibility
dws ding send --users "all" --text "🚨 $NOTIFICATION"
lark message send --chat <all_staff> --text "🚨 $NOTIFICATION"
wecom message send --chat <all_staff> --markdown "# 🚨 紧急通知\n\n$NOTIFICATION"
;;
high)
# All platforms, targeted channels
dws ding send --users "<affected_users>" --text "⚠️ $NOTIFICATION"
lark message send --chat <ops_chat> --text "⚠️ $NOTIFICATION"
wecom message send --chat <ops_chat> --text "⚠️ $NOTIFICATION"
;;
normal)
# Primary platform + secondary notification
lark message send --chat <team_chat> --text "📢 $NOTIFICATION"
wecom message send --chat <team_chat> --text "📢 $NOTIFICATION"
;;
low)
# Primary platform only
lark message send --chat <team_chat> --text "ℹ️ $NOTIFICATION"
;;
esac
```
### Workflow 4: 平台感知路由 (Platform-Aware Routing)
**Scenario**: Automatically route messages to the right platform based on content type and recipient.
```bash
# Routing rules:
# 1. External customers → WeCom (native customer connection)
# 2. Internal approvals → DingTalk (best approval flow)
# 3. Document collaboration → Feishu (best doc integration)
# 4. Urgent items → DingTalk DING (guaranteed delivery)
# 5. Data/reporting → Feishu (Base/Sheet)
# 6. Meeting coordination → Primary platform of attendees
route_message() {
local type=$1
local recipient=$2
local content=$3
case $type in
customer)
wecom message send --user "$recipient" --text "$content"
;;
approval)
dws approval create --data "$content"
dws ding send --users "$recipient" --text "您有新的审批待处理"
;;
document)
lark doc create --title "$content" --folder <shared_folder>
lark message send --chat <team_chat> --text "📄 新文档: $content"
;;
urgent)
dws ding send --users "$recipient" --text "🚨 $content"
lark message send --chat <ops_chat> --text "🚨 $content"
;;
report)
lark base record add --app <report_base> --table <data_table> --data "$content"
lark message send --chat <team_chat> --text "📊 数据已更新"
;;
meeting)
# Check which platform attendees use
lark calendar event create --summary "$content" --start "<time>" --end "<time>"
dws ding send --users "$recipient" --text "📅 新会议: $content"
;;
esac
}
```
### Workflow 5: 应急通信 (Emergency Communication)
**Scenario**: System outage or critical incident — ensure all stakeholders are reached immediately.
```bash
# Phase 1: Immediate broadcast (within 1 minute)
INCIDENT="生产环境数据库故障,影响范围:订单系统"
dws ding send --users "all" --text "🚨 紧急: $INCIDENT"
lark message send --chat <incident_chat> --text "🚨 紧急: $INCIDENT"
wecom message send --chat <incident_chat> --markdown "# 🚨 紧急事件\n\n$INCIDENT\n\n处理中,请关注更新"
# Phase 2: Create incident tracking
lark doc create --title "故障报告 $(date +%Y%m%d-%H%M)" --folder <incident_folder>
dws sheet record add --sheet <incident_sheet> \
--data "{\"time\":\"$(date +%Y-%m-%dT%H:%M)\",\"incident\":\"$INCIDENT\",\"status\":\"investigating\"}"
# Phase 3: Status updates (every 15 minutes)
update_status() {
local status=$1
local detail=$2
dws ding send --users "all" --text "🔄 更新: $INCIDENT - $status"
lark message send --chat <incident_chat> --text "🔄 状态: $status\n$detail"
wecom message send --chat <incident_chat> --text "🔄 状态: $status\n$detail"
}
# Phase 4: Resolution notification
dws ding send --users "all" --text "✅ 已恢复: $INCIDENT - 服务已正常"
lark message send --chat <incident_chat> --text "✅ 服务已恢复,故障报告将稍后发出"
wecom message send --chat <incident_chat> --text "✅ 服务已恢复"
# Phase 5: Post-incident report
lark doc content --token <doc_token> --write "# 故障报告
## 时间线
- $(date +%H:%M) 故障发生
- $(date +%H:%M) 开始排查
- $(date +%H:%M) 服务恢复
## 影响范围
- 订单系统不可用约XX分钟
## 根因分析
- [待补充]
## 改进措施
1. [待补充]
2. [待补充]"
```
---
## Platform Selection Guide
| Need | Best Platform | CLI Command | Why |
|------|--------------|-------------|-----|
| Rich document collaboration | Feishu | `lark doc create` | Best doc/base/sheet integration |
| Urgent task accountability | DingTalk | `dws ding send` | DING guarantees visibility |
| External customer comms | WeCom | `wecom message send` | Native customer connection |
| Data-heavy workflows | Feishu | `lark base record add` | Base is most powerful |
| Approval workflows | DingTalk | `dws approval create` | Best approval flow |
| Meeting management | Feishu | `lark vc join` | VC + Calendar integration |
| Smart sheet tracking | WeCom | `wecom sheet record add` | SmartSheet for tracking |
| AI-powered analysis | DingTalk | `dws sheet` | AI Sheet with built-in AI |
| Email communication | Feishu | `lark mail send` | Only platform with email |
| Presentation output | Feishu | `lark slide create` | Only platform with slides |
## Cross-Platform Data Flow Patterns
### Pattern: Fan-Out (One → Many)
```
Source → Feishu Base
→ DingTalk DING
→ WeCom Message
```
Use when: Broadcasting same information to all platforms
### Pattern: Fan-In (Many → One)
```
DingTalk Todo ─┐
Feishu Tasks ──┼→ Feishu Base (unified view)
WeCom Todo ────┘
```
Use when: Aggregating data from multiple platforms
### Pattern: Chain (Sequential)
```
DingTalk Approval → Feishu Doc → WeCom Customer Notification
```
Use when: Process flows across platforms sequentially
### Pattern: Escalation (Conditional)
```
Feishu Message → (if urgent) → DingTalk DING → (if critical) → WeCom + DingTalk
```
Use when: Need to escalate based on urgency
## Safety Rules
1. **Preview before broadcast**: Always show the user what will be sent before multi-platform broadcast
2. **Confirm DING usage**: DING is intrusive — confirm before sending to non-assignees
3. **Rate limiting**: Max 10 messages per minute per platform; 30 total across all platforms
4. **Auth check all platforms**: Verify auth on all relevant CLIs before starting
5. **Error isolation**: If one platform fails, continue with others and report the failure
6. **No duplicate notifications**: Don't send the same content to the same person on multiple platforms unless urgency requires it
7. **Respect platform norms**: Use markdown on Feishu, plain text on DingTalk DING, markdown on WeCom
## Prerequisites Check
```bash
# Check all CLIs
which lark && echo "✅ Feishu CLI v$(lark --version)" || echo "❌ Install: npm install -g @larksuite/cli"
which dws && echo "✅ DingTalk CLI v$(dws --version)" || echo "❌ Install: npm install -g dingtalk-workspace-cli"
which wecom && echo "✅ WeCom CLI v$(wecom --version)" || echo "❌ Install: npm install -g @wecom/cli"
# Check auth
lark auth status
dws auth status
wecom auth status
```
## Integration with Single-Platform Skills
For deep single-platform workflows, delegate to specialized skills:
- **Feishu deep workflows** → `feishu-workflow-cli` skill
- **DingTalk todo management** → `dingtalk-todo-cli` skill
- **This skill** → Cross-platform orchestration only
Don't duplicate single-platform logic. Compose and delegate.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!