npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@liangdi/wecom-pro

v0.1.7

Published

企业微信命令行工具 — 让人类和 AI Agent 都能在终端中操作企业微信

Readme

wecom-pro

License: MIT Rust npm

企业微信命令行工具 — 让人类和 AI Agent 都能在终端中操作企业微信。覆盖通讯录、待办、会议、消息、日程、文档、智能表格等核心业务域,提供 7 大品类及 12 个 AI Agent Skills

项目说明: 本项目是从 WecomTeam/wecom-cli fork 而来,增加了多 Bot 支持功能。

安装 · AI Agent Skills · 命令 · 品类一览

为什么选 wecom-pro?

  • 为 AI Agent 所设计 — 开箱即用的 Skills,适配主流 AI 工具,支持非交互式初始化,Agent 可直接操作企业微信,无需额外适配
  • 覆盖用户核心需求 — 7 大业务品类、12 个 AI Agent Skills,覆盖通讯录、待办、会议、消息、日程、文档与智能表格
  • 多 Bot 支持 — 支持配置多个企业微信机器人,实现工作与个人账号分离,不同业务场景使用不同 Bot
  • 多种安装方式 — 支持 Rust cargo 和 Node.js npm 双重安装方式,适应不同开发环境
  • 快速上手init 配置凭证,支持交互式和非交互式模式,直接调用品类工具,从安装到第一次 API 调用只需两步
  • AI 友好 — 提供 JSON 输出格式,便于 AI Agent 解析和集成

功能

| 类别 | 能力 | | ------------ | ----------------------------------------------------------------------------- | | 👤 通讯录 | 获取可见范围成员列表、按姓名/别名搜索 | | ✅ 待办 | 创建、查询列表、查询详情、更新、删除待办,变更用户处理状态 | | 🎥 会议 | 创建预约会议、取消会议、更新受邀成员、查询会议列表、获取会议详情 | | 💬 消息 | 会话列表查询、消息记录拉取(文本/图片/文件/语音/视频)、多媒体下载、发送文本 | | 📅 日程 | 日程 CRUD、参与人管理、多成员闲忙查询 | | 📄 文档 | 文档创建/读取/编辑 | | 📊 智能表格 | 智能表格创建、子表与字段管理、表格记录增删改查 |

安装与快速开始

环境要求

  • Rust (cargo) 或 Node.js (npm/npx)
  • 企业微信机器人的 Bot ID 和 Secret

安装

方式一:使用 cargo 安装(推荐)

# 使用 cargo 安装(推荐)
cargo install wecom-pro

# 静态链接版本(适用于 musl Linux 系统)
cargo install wecom-pro --target x86_64-unknown-linux-musl

方式二:使用 npm 安装

# 使用 npm 全局安装
npm install -g @liangdi/wecom-pro

# 使用 npx 直接运行(无需安装)
npx @liangdi/wecom-pro --help

方式三:使用 pnpm/yarn 安装

# 使用 pnpm
pnpm add -g @liangdi/wecom-pro

# 使用 yarn
yarn global add @liangdi/wecom-pro

~~从 GitHub Releases 下载预编译二进制文件(暂未发布)~~

# ~~Linux(暂未发布)~~
# wget https://github.com/Liangdi/wecom-pro/releases/download/v0.1.0/wecom-pro-linux-x64 -O wecom-pro
# chmod +x wecom-pro

# ~~macOS(暂未发布)~~
# wget https://github.com/Liangdi/wecom-pro/releases/download/v0.1.0/wecom-pro-macos-x64 -O wecom-pro
# chmod +x wecom-pro

~~从源码编译(暂未发布)~~

# ~~git clone https://github.com/Liangdi/wecom-pro.git~~
# ~~cd wecom-pro~~
# ~~cargo install --path .~~

快速开始

使用 cargo 安装

# 1. 安装 wecom-pro
cargo install wecom-pro

# 2. 查看所有命令帮助(可选)
wecom-pro help-all

# 3. 配置企业微信机器人凭证(交互式,仅需一次)
wecom-pro init

# 或使用非交互式模式(适用于 AI Agent)
wecom-pro init --method manual --bot-id YOUR_BOT_ID --secret YOUR_SECRET

# 4. 调用工具
wecom-pro contact get_userlist '{}'

使用 npm/npx 安装

# 1. 安装(或使用 npx 无需安装)
npm install -g @liangdi/wecom-pro

# 2. 查看所有命令帮助(可选)
wecom-pro help-all

# 3. 配置企业微信机器人凭证(交互式,仅需一次)
wecom-pro init

# 或使用非交互式模式(适用于 AI Agent)
wecom-pro init --method manual --bot-id YOUR_BOT_ID --secret YOUR_SECRET

# 4. 调用工具
wecom-pro contact get_userlist '{}'

多 Bot 模式

# 1. 初始化多个 Bot
wecom-pro init --bot work
wecom-pro init --bot personal

# 2. 查看已配置的 Bot
wecom-pro bot list

# 3. 使用指定 Bot 调用工具
wecom-pro msg --bot work send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "工作消息"}}'
wecom-pro todo --bot personal create_todo '{"content": "个人待办", "todo_status": 1}'

Agent Skills

| Skill | 品类 | 说明 | | ----- | ---- | ---- | | wecomcli-lookup-contact | contact | 通讯录成员查询,按姓名/别名搜索 | | wecomcli-get-todo-list | todo | 待办列表查询,按时间过滤和分页 | | wecomcli-get-todo-detail | todo | 待办详情批量查询 | | wecomcli-edit-todo | todo | 待办创建、更新、删除、状态变更 | | wecomcli-create-meeting | meeting | 创建预约会议 | | wecomcli-edit-meeting | meeting | 取消会议、更新受邀成员 | | wecomcli-get-meeting | meeting | 查询会议列表和详情 | | wecomcli-get-msg | msg | 会话列表、消息记录、媒体下载、文本发送 | | wecomcli-manage-schedule | schedule | 日程 CRUD、参与人管理、闲忙查询 | | wecomcli-manage-doc | doc | 文档创建/读取/编辑 | | wecomcli-manage-smartsheet-schema | smartsheet | 智能表格子表与字段管理 | | wecomcli-manage-smartsheet-data | smartsheet | 智能表格记录增删改查 |

命令参考

--help

列出所有支持的命令和品类。

wecom-pro --help

输出示例:

Usage: wecom-pro <COMMAND>

Commands:
  init      初始化企业微信机器人配置
  bot       管理多个 Bot 配置
  help-all  显示所有命令的完整帮助信息
  contact   通讯录 — 成员查询和搜索
  doc       文档 — 文档/智能表格创建和管理
  meeting   会议 — 创建/管理/查询视频会议
  msg       消息 — 聊天列表、发送/接收消息、媒体下载
  schedule  日程 — 日程增删改查和可用性查询
  todo      待办事项 — 创建/查询/编辑待办项

Options:
  -h, --help     Print help
  -V, --version  Print version

help-all

显示所有命令的完整帮助信息,包括 init、bot 和所有业务分类的详细用法。

wecom-pro help-all

输出示例:

╔════════════════════════════════════════════════════════════════╗
║                    WECOM-PRO 完整命令帮助                           ║
╚════════════════════════════════════════════════════════════════╝

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  init - 初始化企业微信机器人配置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

使用方式:
    wecom-pro init [选项]

选项:
  -b, --bot <id>           指定初始化的 Bot ID(默认为 default)
  --method <method>        初始化方式:qrcode 或 manual(非交互模式)
  --bot-id <id>            手动模式:企业微信机器人 Bot ID
  --secret <secret>        手动模式:企业微信机器人 Secret
  -o, --output <format>    输出格式:json 或 text(默认 text)

示例:
    wecom-pro init
    wecom-pro init --bot mybot
    wecom-pro init --method manual --bot-id xxx --secret yyy
    wecom-pro init --method qrcode --output json

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  bot - 管理多个 Bot 配置
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

子命令:
    list                      列出所有已配置的 Bot
    show <id>                 显示指定 Bot 的详细信息
    remove <id>               删除指定 Bot

示例:
    wecom-pro bot list
    wecom-pro bot show mybot
    wecom-pro bot remove mybot

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  业务命令分类
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

contact - 通讯录 — 成员查询和搜索
    wecom-pro contact <method> [json_args] [选项]
    wecom-pro contact --help

doc - 文档 — 文档/智能表格创建和管理
    wecom-pro doc <method> [json_args] [选项]
    wecom-pro doc --help

meeting - 会议 — 创建/管理/查询视频会议
    wecom-pro meeting <method> [json_args] [选项]
    wecom-pro meeting --help

msg - 消息 — 聊天列表、发送/接收消息、媒体下载
    wecom-pro msg <method> [json_args] [选项]
    wecom-pro msg --help

schedule - 日程 — 日程增删改查和可用性查询
    wecom-pro schedule <method> [json_args] [选项]
    wecom-pro schedule --help

todo - 待办事项 — 创建/查询/编辑待办项
    wecom-pro todo <method> [json_args] [选项]
    wecom-pro todo --help

通用选项:
  -b, --bot <BOT>     指定使用的 Bot(默认使用 default)
  -h, --help          显示该分类下所有工具的详细信息

示例:
    wecom-pro msg list_chat
    wecom-pro msg send_text '{"to_chat_id": "xxx", "content": "hello"}'
    wecom-pro schedule list --bot mybot

init

配置企业微信机器人凭证,支持交互式和非交互式两种模式,凭证加密存储到本地。

交互式模式(默认)

# 初始化默认 Bot(单 Bot 模式)
wecom-pro init

# 初始化指定 Bot(多 Bot 模式)
wecom-pro init --bot work
wecom-pro init --bot personal

交互式模式提供友好的 TUI 引导,支持扫码和手动输入两种方式。

非交互式模式(适用于 AI Agent 和自动化脚本)

非交互式模式通过参数直接提供所有必要信息,无需人工干预。

手动模式:直接提供 Bot ID 和 Secret

# 使用手动模式初始化
wecom-pro init --method manual --bot-id YOUR_BOT_ID --secret YOUR_SECRET

# 初始化指定 Bot
wecom-pro init --bot work --method manual --bot-id YOUR_BOT_ID --secret YOUR_SECRET

# JSON 输出格式
wecom-pro init --method manual --bot-id YOUR_BOT_ID --secret YOUR_SECRET --output json

扫码模式:输出二维码 URL,等待扫码完成

# 使用扫码模式初始化
wecom-pro init --method qrcode

# JSON 输出格式
wecom-pro init --method qrcode --output json

扫码模式会输出二维码链接,用户打开链接扫码后,工具会自动轮询并完成初始化。

输出格式

  • 文本格式(默认):友好的文本输出
  • JSON 格式--output json):结构化的 JSON 输出,便于 AI Agent 解析

凭证存储位置:

  • 默认 Bot: ~/.config/wecom/bot.enc
  • 指定 Bot: ~/.config/wecom/bots/{bot_id}.enc

bot

管理多个 Bot 配置。

# 列出所有已配置的 Bot
wecom-pro bot list

# 显示指定 Bot 的详细信息
wecom-pro bot show work

# 删除指定 Bot
wecom-pro bot remove personal

品类调用

每个品类作为独立子命令使用。不传方法名时列出该品类下所有可用工具,传方法名时调用指定工具。

单 Bot 模式

# 列出品类下的所有工具
wecom-pro <category>

# 调用品类下的指定工具
wecom-pro <category> <method> [json_args]

示例:

# 列出通讯录品类下的工具
wecom-pro contact

# 列出待办品类下的工具
wecom-pro todo

# 调用工具(传 JSON 参数)
wecom-pro contact get_userlist '{}'

# 调用工具(无参数)
wecom-pro contact get_userlist

多 Bot 模式

所有品类命令都支持 --bot / -b 参数,用于指定使用的 Bot。

# 使用指定 Bot 调用工具
wecom-pro <category> --bot <bot_id> <method> [json_args]

# 列出指定 Bot 可用的工具
wecom-pro msg --bot work

示例:

# 使用 work Bot 发送消息
wecom-pro msg --bot work send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "工作通知"}}'

# 使用 personal Bot 创建待办
wecom-pro todo --bot personal create_todo '{"content": "个人事项", "todo_status": 1}'

# 使用 work Bot 查询通讯录
wecom-pro contact --bot work get_userlist '{}'

# 使用 personal Bot 管理文档
wecom-pro doc --bot personal create_doc '{"doc_type": 3, "doc_name": "个人笔记"}'

品类与能力一览

contact — 通讯录

| 工具 | 说明 | |------|------| | get_userlist | 获取当前用户可见范围内的通讯录成员(userid、姓名、别名) |

# 获取全量通讯录成员
wecom-pro contact get_userlist '{}'

# 使用指定 Bot 获取通讯录
wecom-pro contact --bot work get_userlist '{}'

todo — 待办

| 工具 | 说明 | |------|------| | get_todo_list | 查询待办列表,支持按时间过滤和分页 | | get_todo_detail | 根据待办 ID 批量查询完整详情 | | create_todo | 创建待办,可指定内容、分派人、提醒时间 | | update_todo | 更新待办内容、状态、分派人或提醒时间 | | delete_todo | 删除待办(不可撤销) | | change_todo_user_status | 变更当前用户在待办中的状态 |

# 查询待办列表
wecom-pro todo get_todo_list '{}'

# 使用 work Bot 创建待办
wecom-pro todo --bot work create_todo '{"content": "完成Q2规划文档", "remind_time": "2026-06-01 09:00:00"}'

# 使用 personal Bot 创建待办
wecom-pro todo --bot personal create_todo '{"content": "个人学习计划", "todo_status": 1}'

# 批量查询待办详情
wecom-pro todo get_todo_detail '{"todo_id_list": ["TODO_ID_1", "TODO_ID_2"]}'

# 标记待办完成
wecom-pro todo update_todo '{"todo_id": "TODO_ID", "todo_status": 0}'

# 删除待办
wecom-pro todo delete_todo '{"todo_id": "TODO_ID"}'

meeting — 会议

| 工具 | 说明 | |------|------| | create_meeting | 创建预约会议,支持设置参数、邀请参与人、安全设置 | | cancel_meeting | 取消指定的预约会议 | | set_invite_meeting_members | 更新会议受邀成员(全量覆盖) | | list_user_meetings | 查询用户在时间范围内的会议列表(当日前后 30 天) | | get_meeting_info | 获取会议完整详情 |

# 查询本周会议
wecom-pro meeting list_user_meetings '{"begin_datetime": "2026-03-23 00:00", "end_datetime": "2026-03-29 23:59", "limit": 100}'

# 使用 work Bot 创建会议
wecom-pro meeting --bot work create_meeting '{"title": "技术方案评审", "meeting_start_datetime": "2026-03-30 15:00", "meeting_duration": 3600, "invitees": {"userid": ["zhangsan", "lisi"]}}'

# 使用 personal Bot 创建会议
wecom-pro meeting --bot personal create_meeting '{"title": "个人学习讨论", "meeting_start_datetime": "2026-03-30 20:00", "meeting_duration": 1800, "invitees": {"userid": ["zhangsan"]}}'

# 获取会议详情
wecom-pro meeting get_meeting_info '{"meetingid": "MEETING_ID"}'

# 取消会议
wecom-pro meeting cancel_meeting '{"meetingid": "MEETING_ID"}'

msg — 消息

| 工具 | 说明 | |------|------| | get_msg_chat_list | 按时间范围查询有消息的会话列表 | | get_message | 拉取会话消息记录(支持文本/图片/文件/语音/视频) | | get_msg_media | 下载消息中的多媒体文件到本地 | | send_message | 向单聊或群聊发送文本消息 |

# 获取最近一周会话列表
wecom-pro msg get_msg_chat_list '{"begin_time": "2026-03-22 00:00:00", "end_time": "2026-03-29 23:59:59"}'

# 使用 work Bot 发送工作消息
wecom-pro msg --bot work send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "项目进度更新"}}'

# 使用 personal Bot 发送个人消息
wecom-pro msg --bot personal send_message '{"chat_type": 1, "chatid": "lisi", "msgtype": "text", "text": {"content": "周末聚会安排"}}'

# 拉取聊天记录
wecom-pro msg get_message '{"chat_type": 1, "chatid": "zhangsan", "begin_time": "2026-03-29 09:00:00", "end_time": "2026-03-29 18:00:00"}'

# 下载多媒体文件
wecom-pro msg get_msg_media '{"media_id": "MEDIA_ID"}'

schedule — 日程

| 工具 | 说明 | |------|------| | get_schedule_list_by_range | 查询时间范围内的日程 ID 列表(当日前后 30 天) | | get_schedule_detail | 批量获取日程详情(1~50 个) | | create_schedule | 创建日程,支持设置提醒、参与人 | | update_schedule | 修改日程(只传需修改的字段) | | cancel_schedule | 取消日程 | | add_schedule_attendees | 添加日程参与人 | | del_schedule_attendees | 移除日程参与人 | | check_availability | 查询多成员闲忙状态(1~10 人) |

# 查询今天的日程
wecom-pro schedule get_schedule_list_by_range '{"start_time": "2026-03-29 00:00:00", "end_time": "2026-03-29 23:59:59"}'

# 使用 work Bot 创建工作日程
wecom-pro schedule --bot work create_schedule '{"schedule": {"start_time": "2026-03-30 14:00:00", "end_time": "2026-03-30 15:00:00", "summary": "需求评审", "attendees": [{"userid": "zhangsan"}], "reminders": {"is_remind": 1, "remind_before_event_secs": 900, "timezone": 8}}}'

# 使用 personal Bot 创建个人日程
wecom-pro schedule --bot personal create_schedule '{"schedule": {"start_time": "2026-04-05 19:00:00", "end_time": "2026-04-05 20:00:00", "summary": "健身", "reminders": {"is_remind": 1, "remind_before_event_secs": 1800, "timezone": 8}}}'

# 查询闲忙
wecom-pro schedule check_availability '{"check_user_list": ["zhangsan", "lisi"], "start_time": "2026-03-30 09:00:00", "end_time": "2026-03-30 18:00:00"}'

doc — 文档

| 工具 | 说明 | |------|------| | create_doc | 创建文档(doc_type=3) | | get_doc_content | 获取文档内容(Markdown 格式,异步轮询) | | edit_doc_content | 用 Markdown 覆写文档正文 |

# 创建文档
wecom-pro doc create_doc '{"doc_type": 3, "doc_name": "项目周报"}'

# 使用 work Bot 创建工作文档
wecom-pro doc --bot work create_doc '{"doc_type": 3, "doc_name": "工作总结"}'

# 使用 personal Bot 创建个人文档
wecom-pro doc --bot personal create_doc '{"doc_type": 3, "doc_name": "个人笔记"}'

# 读取文档内容(首次调用)
wecom-pro doc get_doc_content '{"docid": "DOC_ID", "type": 2}'

# 读取文档内容(轮询,携带 task_id)
wecom-pro doc get_doc_content '{"docid": "DOC_ID", "type": 2, "task_id": "TASK_ID"}'

# 使用 work Bot 编辑文档内容
wecom-pro doc --bot work edit_doc_content '{"docid": "DOC_ID", "content": "# 项目周报\n\n## 本周进展\n...", "content_type": 1}'

doc — 智能表格

| 工具 | 说明 | |------|------| | create_doc | 创建智能表格(通过 doc create_doc,doc_type=10) | | smartsheet_get_sheet | 查询智能表格的所有子表 | | smartsheet_add_sheet | 添加子表 | | smartsheet_update_sheet | 修改子表标题 | | smartsheet_delete_sheet | 删除子表(不可逆) | | smartsheet_get_fields | 查询子表的字段/列信息 | | smartsheet_add_fields | 添加字段/列 | | smartsheet_update_fields | 更新字段标题 | | smartsheet_delete_fields | 删除字段/列(不可逆) | | smartsheet_get_records | 查询子表全部记录 | | smartsheet_add_records | 添加记录 | | smartsheet_update_records | 更新记录 | | smartsheet_delete_records | 删除记录(不可逆) |

# 创建智能表格
wecom-pro doc create_doc '{"doc_type": 10, "doc_name": "任务跟踪表"}'

# 查询智能表格子表
wecom-pro doc smartsheet_get_sheet '{"docid": "DOC_ID"}'

# 查询子表字段信息
wecom-pro doc smartsheet_get_fields '{"docid": "DOC_ID", "sheet_id": "SHEET_ID"}'

# 添加子表字段
wecom-pro doc smartsheet_add_fields '{"docid": "DOC_ID", "sheet_id": "SHEET_ID", "fields": [{"field_title": "状态", "field_type": "FIELD_TYPE_SINGLE_SELECT"}]}'

# 查询子表记录
wecom-pro doc smartsheet_get_records '{"docid": "DOC_ID", "sheet_id": "SHEET_ID"}'

# 添加记录
wecom-pro doc smartsheet_add_records '{"docid": "DOC_ID", "sheet_id": "SHEET_ID", "records": [{"values": {"标题": [{"type": "text", "text": "新任务"}]}}]}'

# 更新记录
wecom-pro doc smartsheet_update_records '{"docid": "DOC_ID", "sheet_id": "SHEET_ID", "key_type":"CELL_VALUE_KEY_TYPE_FIELD_TITLE", "records": [{"record_id": "RECORD_ID", "values": {"标题": [{"type": "text", "text": "已更新"}]}}]}'

# 删除记录
wecom-pro doc smartsheet_delete_records '{"docid": "DOC_ID", "sheet_id": "SHEET_ID", "record_ids": ["RECORD_ID"]}'

多 Bot 功能

概述

wecom-pro 支持配置多个企业微信机器人,实现工作与个人账号分离,不同业务场景使用不同 Bot。

使用场景

  • 工作/个人分离: 使用 work bot 处理工作任务,personal bot 处理个人事务
  • 多项目管理: 为不同项目配置专用 bot,实现数据和权限隔离
  • 团队协作: 不同团队使用各自的 bot,避免操作冲突
  • 环境隔离: 开发、测试、生产环境使用不同的 bot

配置管理

初始化多个 Bot

# 初始化默认 Bot(单 Bot 模式)
wecom-pro init

# 初始化多个 Bot
wecom-pro init --bot work
wecom-pro init --bot personal
wecom-pro init --bot project-a

管理 Bot 配置

# 列出所有已配置的 Bot
wecom-pro bot list

# 显示 Bot 详细信息
wecom-pro bot show work

# 删除指定 Bot
wecom-pro bot remove project-a

使用方式

基本语法

所有业务命令都支持 --bot / -b 参数:

wecom-pro <category> --bot <bot_id> <method> [json_args]

实际示例

# 工作场景 - 使用 work bot
wecom-pro msg --bot work send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "会议开始提醒"}}'
wecom-pro todo --bot work create_todo '{"content": "提交月度报告", "todo_status": 1, "remind_time": "2026-04-30 17:00:00"}'
wecom-pro meeting --bot work create_meeting '{"title": "周会", "meeting_start_datetime": "2026-04-07 14:00", "meeting_duration": 3600, "invitees": {"userid": ["team"]}}'

# 个人场景 - 使用 personal bot
wecom-pro msg --bot personal send_message '{"chat_type": 1, "chatid": "lisi", "msgtype": "text", "text": {"content": "周末聚餐"}}'
wecom-pro todo --bot personal create_todo '{"content": "买菜", "todo_status": 1, "remind_time": "2026-04-05 18:00:00"}'
wecom-pro schedule --bot personal create_schedule '{"schedule": {"start_time": "2026-04-06 14:00:00", "end_time": "2026-04-06 16:00:00", "summary": "朋友聚会"}}'

# 项目场景 - 使用项目专用 bot
wecom-pro doc --bot project-a create_doc '{"doc_type": 3, "doc_name": "项目A需求文档"}'
wecom-pro doc --bot project-a edit_doc_content '{"docid": "DOC_ID", "content": "# 项目A需求\\n\\n## 功能列表\\n1. ...", "content_type": 1}'

配置存储

多 Bot 配置独立存储在:

~/.config/wecom/
├── bot.enc              # default bot 的配置
├── bots/                # 其他 bot 的配置目录
│   ├── work.enc
│   ├── personal.enc
│   └── project-a.enc
└── mcp_configs/         # MCP 配置缓存
    ├── default.enc
    ├── work.enc
    ├── personal.enc
    └── project-a.enc

向后兼容性

多 Bot 功能完全向后兼容:

  • ✅ 不指定 --bot 参数时,默认使用 default bot
  • ✅ 所有现有命令和脚本继续正常工作
  • ✅ 渐进式采用,可按需启用多 Bot 功能

技术特性

  • 配置隔离: 每个 bot 独立的配置文件和 MCP 缓存
  • 加密存储: AES-256-GCM 加密,Keyring 优先
  • 原子操作: 文件写入保证原子性,防止数据损坏
  • 权限安全: 敏感文件权限设为 0o600
  • 跨平台: 支持 macOS/Linux/Windows

项目说明

与原项目的关系

本项目(wecom-pro)是从 WecomTeam/wecom-cli fork 而来,主要增加了以下功能:

  • 多 Bot 支持: 可以配置多个企业微信机器人,实现工作与个人账号分离
  • 配置隔离: 每个 bot 独立的配置文件和 MCP 缓存
  • 更好的灵活性: 支持不同业务场景使用不同的 bot

技术栈

贡献

欢迎提交 Issue 和 Pull Request!

构建 npm 包

如果您想自己构建 npm 包或贡献代码,请参阅 BUILD_NPM.md 了解详细的构建步骤。

发布到 npm

如果您是维护者,请参阅 PUBLISH_NPM.md 了解如何发布新版本。

快速构建:

# 构建所有平台
./build-npm.sh

# 或使用 npm 脚本
npm run build:npm

# 单独构建某个平台
npm run build:linux
npm run build:darwin-x64
npm run build:darwin-arm64
npm run build:windows

发布到 npm:

# 发布所有平台包
npm run publish:all

# 或手动发布
cd packages/linux-x64 && npm publish
cd ../darwin-x64 && npm publish
cd ../darwin-arm64 && npm publish
cd ../win32-x64 && npm publish
cd ../.. && npm publish

许可证

本项目基于 MIT 许可证 开源。