wecom-cli 全量命令:六大 category 共 40+ method、安装、init、路径环境变量与 JSON 示例;只看本站即可,GitHub 仅溯源。
关于本文档
本文档根据 wecom-cli 仓库中的 docs/cli-reference.md 与各 skills/*/SKILL.md、skills/*/references/*.md 整理,在此站即可查齐全部品类与子命令(category + method)的调用方式与典型 JSON 入参。下列 GitHub 地址仅作版本溯源与提交 Issue,非阅读前置条件。
安装与 Agent Skills
npm install -g @wecom/cli
npx skills add WeComTeam/wecom-cli -y -g
@wecom/cli:官方 npm 全局包,提供 wecom-cli 可执行文件。
skills add WeComTeam/wecom-cli:安装与 CLI 配套的 Agent Skills(-y 确认,-g 全局)。
环境要求(与上游 README 一致): macOS / Linux / Windows(x64 等)、Node.js >= 18;企业使用范围等限制见上游说明。
配置凭证 init
交互式配置企业微信机器人凭证,加密写入本地,一般只需执行一次。
wecom-cli init
- 可选手动填写 Bot ID / Secret(获取方式见官方说明)或扫码绑定。
- 上游说明:目前仅对 ≤10 人企业开放等限制,以仓库 README 为准。
命令格式与 --help
wecom-cli --help
wecom-cli <category> --help
wecom-cli <category> <method> --help
| 说明 | |
|---|
一级 --help | 列出所有 category |
二级 --help | 列出该品类下全部 method(工具) |
三级 --help | 输出该工具的 JSON Schema / 参数定义(需已配置凭证且可访问网络,工具列表与 schema 由服务端动态下发) |
通用调用格式:
wecom-cli <category> <method> '<json_args>'
json_args 为单行 JSON 字符串;无参数时多为 '{}'。
- 默认单次调用超时 30 秒;
get_msg_media 为 120 秒。
get_msg_media 会把媒体下载到本地临时目录,响应里含 local_path(本地文件路径)。
品类 category 一览
category | 含义 |
|---|
contact | 通讯录 |
doc | 文档与智能表格 |
meeting | 会议 |
msg | 消息 |
schedule | 日程 |
todo | 待办 |
全量 method 速查表
下表为当前从上游 skills / references 中归纳的全部 method 名称(与 wecom-cli <category> --help 动态列表应对齐;若上游新增工具,以 --help 为准)。
| category | method | 功能摘要 |
|---|
| contact | get_userlist | 获取当前用户可见范围内的成员列表(userid / name / alias) |
| todo | get_todo_list | 待办列表(概要,需配合 get_todo_detail) |
| todo | get_todo_detail | 按 todo_id_list 批量取详情 |
| todo | create_todo | 创建待办 |
| todo | update_todo | 更新待办 |
| todo | delete_todo | 删除待办 |
| todo | change_todo_user_status | 变更当前用户在某待办上的状态 |
| schedule | get_schedule_list_by_range | 按时间范围查日程列表 |
| schedule | get_schedule_detail | 按 schedule_id_list 查详情 |
| schedule | create_schedule | 创建日程 |
| schedule | update_schedule | 更新日程 |
| schedule | cancel_schedule | 取消日程 |
| schedule | add_schedule_attendees | 添加参与人 |
| schedule | del_schedule_attendees | 移除参与人 |
| schedule | check_availability | 多成员闲忙查询 |
| msg | get_msg_chat_list | 会话列表 |
| msg | get_message | 拉取会话消息记录 |
| msg | get_msg_media | 按 media_id 下载媒体到本地 |
| msg | send_message | 发送文本等消息 |
| meeting | create_meeting | 创建预约会议 |
| meeting | list_user_meetings | 查询会议列表 |
| meeting | get_meeting_info | 会议详情 |
| meeting | cancel_meeting | 取消会议 |
| meeting | set_invite_meeting_members | 更新受邀成员 |
| doc | get_doc_content | 读文档内容 |
| doc | create_doc | 创建文档或智能表格 |
| doc | edit_doc_content | 覆盖写文档正文 |
| doc | smartsheet_get_sheet | 智能表格子表列表 |
| doc | smartsheet_add_sheet | 新增子表 |
| doc | smartsheet_update_sheet | 更新子表 |
| doc | smartsheet_delete_sheet | 删除子表 |
| doc | smartsheet_get_fields | 子表字段定义 |
| doc | smartsheet_add_fields | 新增字段 |
| doc | smartsheet_update_fields | 更新字段 |
| doc | smartsheet_delete_fields | 删除字段 |
| doc | smartsheet_get_records | 查询记录 |
| doc | smartsheet_add_records | 新增记录 |
| doc | smartsheet_update_records | 更新记录 |
| doc | smartsheet_delete_records | 删除记录 |
运行时路径
| 项目 | 默认位置 | 备注 |
|---|
| 配置目录 | ~/.config/wecom | 环境变量 WECOM_CLI_CONFIG_DIR 可覆盖 |
| 机器人凭证 | <config_dir>/bot.enc | init 后生成 |
| MCP 配置缓存 | <config_dir>/mcp_config.enc | 配置后更新 |
| 媒体临时目录 | <系统临时目录>/wecom/media | WECOM_CLI_TMP_DIR 可覆盖根目录 |
环境变量
| 变量 | 作用 |
|---|
WECOM_CLI_CONFIG_DIR | 覆盖配置目录 |
WECOM_CLI_TMP_DIR | 覆盖媒体临时目录根 |
WECOM_CLI_LOG_LEVEL | stderr 日志级别 |
WECOM_CLI_LOG_FILE | JSON 日志,按天写入 ww.log |
WECOM_CLI_MCP_CONFIG_ENDPOINT | 覆盖 MCP 配置接口地址 |
get_userlist
获取当前用户可见范围内成员;返回 userid、name、alias。不保证全公司全员。
wecom-cli contact get_userlist '{}'
- 无必填 JSON 字段;参数传
'{}' 即可。
- 上游技能说明:可见成员 超过 10 人 时接口可能报错,仅适合小范围场景。
todo
get_todo_list
| JSON 字段 | 必填 | 说明 |
|---|
create_begin_time / create_end_time | 否 | 创建时间过滤,YYYY-MM-DD HH:mm:ss |
remind_begin_time / remind_end_time | 否 | 提醒时间过滤 |
limit | 否 | 默认 10,最大 20 |
cursor | 否 | 分页,取上次返回的 next_cursor |
wecom-cli todo get_todo_list '{}'
wecom-cli todo get_todo_list '{"limit": 20, "cursor": "CURSOR_1"}'
- 列表仅为概要;展示给用户前应再调
get_todo_detail。
- 若
has_more 为 true,需提示用户还有下一页。
get_todo_detail
| JSON 字段 | 必填 | 说明 |
|---|
todo_id_list | 是 | 字符串数组,最多 20 个 todo_id |
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID_1", "TODO_ID_2"]}'
create_todo
| JSON 字段 | 必填 | 说明 |
|---|
content | 是 | 待办正文 |
follower_list | 否 | {"followers":[{"follower_id":"userid","follower_status":1}]},follower_id 须来自 get_userlist |
remind_time | 否 | YYYY-MM-DD HH:mm:ss |
wecom-cli todo create_todo '{"content": "完成需求文档", "remind_time": "2025-06-01 09:00:00"}'
update_todo
| JSON 字段 | 必填 | 说明 |
|---|
todo_id | 是 | |
content / follower_list / todo_status / remind_time | 否 | todo_status:0 已完成,1 进行中;删除请用 delete_todo |
wecom-cli todo update_todo '{"todo_id": "TODO_ID", "remind_time": "2025-07-01 09:00:00"}'
delete_todo
wecom-cli todo delete_todo '{"todo_id": "TODO_ID"}'
change_todo_user_status
| JSON 字段 | 必填 | 说明 |
|---|
todo_id | 是 | |
user_status | 是 | 0 拒绝,1 接受,2 已完成 |
wecom-cli todo change_todo_user_status '{"todo_id": "TODO_ID", "user_status": 2}'
schedule
get_schedule_list_by_range
wecom-cli schedule get_schedule_list_by_range '{"start_time": "2026-03-01 09:00:00", "end_time": "2026-03-31 18:00:00"}'
get_schedule_detail
wecom-cli schedule get_schedule_detail '{"schedule_id_list": ["SCHEDULE_ID_1", "SCHEDULE_ID_2"]}'
create_schedule
wecom-cli schedule create_schedule '{"schedule": {"start_time": "2026-03-20 10:00:00", "end_time": "2026-03-20 11:00:00", "summary": "日程标题", "attendees": [{"userid": "USER_ID"}], "reminders": {"is_remind": 1, "remind_before_event_secs": 3600, "timezone": 8}, "location": "会议室 A"}}'
update_schedule
wecom-cli schedule update_schedule '{"schedule": {"schedule_id": "SCHEDULE_ID", "summary": "更新后的标题", "start_time": "YYYY-MM-DD HH:mm:ss", "end_time": "YYYY-MM-DD HH:mm:ss"}}'
cancel_schedule
wecom-cli schedule cancel_schedule '{"schedule_id": "SCHEDULE_ID"}'
add_schedule_attendees / del_schedule_attendees
wecom-cli schedule add_schedule_attendees '{"schedule_id": "SCHEDULE_ID", "attendees": [{"userid": "USER_ID"}]}'
wecom-cli schedule del_schedule_attendees '{"schedule_id": "SCHEDULE_ID", "attendees": [{"userid": "USER_ID"}]}'
check_availability
wecom-cli schedule check_availability '{"check_user_list": ["USER_ID_1", "USER_ID_2"], "start_time": "2026-03-20 10:00:00", "end_time": "2026-03-20 12:00:00"}'
msg
get_msg_chat_list
wecom-cli msg get_msg_chat_list '{"begin_time": "2026-03-11 00:00:00", "end_time": "2026-03-17 23:59:59"}'
wecom-cli msg get_msg_chat_list '{"begin_time": "2026-03-11 00:00:00", "end_time": "2026-03-17 23:59:59", "cursor": "NEXT_CURSOR"}'
get_message
| JSON 字段 | 必填 | 说明 |
|---|
chat_type | 是 | 1 单聊,2 群聊 |
chatid | 是 | 单聊为对方 userid,群聊为群 ID |
begin_time / end_time | 是 | YYYY-MM-DD HH:mm:ss,窗口须在可拉取范围内(见上游文档) |
cursor | 否 | 分页 |
wecom-cli msg get_message '{"chat_type": 1, "chatid": "zhangsan", "begin_time": "2026-03-17 09:00:00", "end_time": "2026-03-17 18:00:00"}'
wecom-cli msg get_message '{"chat_type": 2, "chatid": "wrxxxxxxxx", "begin_time": "2026-03-17 09:00:00", "end_time": "2026-03-17 18:00:00"}'
wecom-cli msg get_msg_media '{"media_id": "MEDIAID_xxxxxx"}'
send_message
wecom-cli msg send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "hello world"}}'
wecom-cli msg send_message '{"chat_type": 2, "chatid": "wrxxxxxxxx", "msgtype": "text", "text": {"content": "大家好"}}'
meeting
create_meeting
wecom-cli meeting create_meeting '{"title": "周例会", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600}'
wecom-cli meeting create_meeting '{"title": "评审", "meeting_start_datetime": "2026-03-18 15:00", "meeting_duration": 3600, "location": "3楼会议室", "invitees": {"userid": ["zhangsan", "lisi"]}}'
list_user_meetings
wecom-cli meeting list_user_meetings '{"begin_datetime": "2026-03-01 00:00", "end_datetime": "2026-03-31 23:59", "limit": 100}'
get_meeting_info
wecom-cli meeting get_meeting_info '{"meetingid": "<会议id>"}'
cancel_meeting
wecom-cli meeting cancel_meeting '{"meetingid": "<会议id>"}'
set_invite_meeting_members
wecom-cli meeting set_invite_meeting_members '{"meetingid": "<会议id>", "invitees": [{"userid": "lisi"}, {"userid": "wangwu"}]}'
doc
doc_type 说明(create_doc)
doc_type | 含义(与上游示例一致) |
|---|
3 | 文档 |
10 | 智能表格 |
get_doc_content
wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2}'
wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2, "task_id": "xxx"}'
wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/doc/xxx", "type": 2}'
create_doc
wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "项目周报"}'
wecom-cli doc create_doc '{"doc_type": 10, "doc_name": "任务跟踪表"}'
edit_doc_content
wecom-cli doc edit_doc_content '{"docid": "DOCID", "content": "# 标题\n\n正文", "content_type": 1}'
智能表格:子表
wecom-cli doc smartsheet_get_sheet '{"docid": "DOCID"}'
wecom-cli doc smartsheet_add_sheet '{"docid": "DOCID", "properties": {"title": "新子表"}}'
wecom-cli doc smartsheet_update_sheet '{"docid": "DOCID", "properties": {"sheet_id": "SHEET_ID", "title": "新子表"}}'
wecom-cli doc smartsheet_delete_sheet '{"docid": "DOCID", "sheet_id": "SHEETID"}'
智能表格:字段
wecom-cli doc smartsheet_get_fields '{"docid": "DOCID", "sheet_id": "SHEETID"}'
wecom-cli doc smartsheet_add_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "fields": [{"field_title": "任务名称", "field_type": "FIELD_TYPE_TEXT"}]}'
wecom-cli doc smartsheet_update_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "fields": [{"field_id": "FIELDID", "field_title": "新标题", "field_type": "FIELD_TYPE_TEXT"}]}'
wecom-cli doc smartsheet_delete_fields '{"docid": "DOCID", "sheet_id": "SHEETID", "field_ids": ["FIELDID"]}'
智能表格:记录
wecom-cli doc smartsheet_get_records '{"docid": "DOCID", "sheet_id": "SHEETID"}'
wecom-cli doc smartsheet_get_records '{"url": "https://doc.weixin.qq.com/smartsheet/xxx", "sheet_id": "SHEETID"}'
wecom-cli doc smartsheet_add_records '{"docid": "DOCID", "sheet_id": "SHEETID", "records": [{"values": {"任务名称": [{"type": "text", "text": "完成需求文档"}], "优先级": [{"text": "高"}]}}]}'
wecom-cli doc smartsheet_update_records '{"docid": "DOCID", "sheet_id": "SHEETID", "key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE", "records": [{"record_id": "RECORDID", "values": {"任务名称": [{"type": "text", "text": "更新后的内容"}]}}]}'
wecom-cli doc smartsheet_delete_records '{"docid": "DOCID", "sheet_id": "SHEETID", "record_ids": ["RECORDID1", "RECORDID2"]}'
智能表格中 USER(成员)类型列需填 user_id,应先用 contact get_userlist 将姓名解析为 userid。
内置 Agent Skills(名称对照)
| Skill 目录名 | 对应 category | 能力范围(与上游 skills.md 一致) |
|---|
wecomcli-contact | contact | 通讯录查询 |
wecomcli-todo | todo | 待办全流程 |
wecomcli-meeting | meeting | 会议创建、列表、取消、受邀人 |
wecomcli-msg | msg | 会话列表、消息记录、媒体、发消息 |
wecomcli-schedule | schedule | 日程 CRUD、参与人、闲忙 |
wecomcli-doc | doc | 文档与智能表格 |
许可证
上游 wecom-cli 使用 MIT License(见仓库 LICENSE)。