OpenCLI Online

企业微信

企业微信 CLI(wecom-cli)

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,非阅读前置条件。

用途地址
源码与 Issuehttps://github.com/WecomTeam/wecom-cli
企业微信帮助(智能机器人凭证)https://open.work.weixin.qq.com/help2/pc/cat?doc_id=21677
企业微信开放平台https://work.weixin.qq.com/

安装与 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 为准)。

categorymethod功能摘要
contactget_userlist获取当前用户可见范围内的成员列表(userid / name / alias)
todoget_todo_list待办列表(概要,需配合 get_todo_detail)
todoget_todo_detail按 todo_id_list 批量取详情
todocreate_todo创建待办
todoupdate_todo更新待办
tododelete_todo删除待办
todochange_todo_user_status变更当前用户在某待办上的状态
scheduleget_schedule_list_by_range按时间范围查日程列表
scheduleget_schedule_detail按 schedule_id_list 查详情
schedulecreate_schedule创建日程
scheduleupdate_schedule更新日程
schedulecancel_schedule取消日程
scheduleadd_schedule_attendees添加参与人
scheduledel_schedule_attendees移除参与人
schedulecheck_availability多成员闲忙查询
msgget_msg_chat_list会话列表
msgget_message拉取会话消息记录
msgget_msg_media按 media_id 下载媒体到本地
msgsend_message发送文本等消息
meetingcreate_meeting创建预约会议
meetinglist_user_meetings查询会议列表
meetingget_meeting_info会议详情
meetingcancel_meeting取消会议
meetingset_invite_meeting_members更新受邀成员
docget_doc_content读文档内容
doccreate_doc创建文档或智能表格
docedit_doc_content覆盖写文档正文
docsmartsheet_get_sheet智能表格子表列表
docsmartsheet_add_sheet新增子表
docsmartsheet_update_sheet更新子表
docsmartsheet_delete_sheet删除子表
docsmartsheet_get_fields子表字段定义
docsmartsheet_add_fields新增字段
docsmartsheet_update_fields更新字段
docsmartsheet_delete_fields删除字段
docsmartsheet_get_records查询记录
docsmartsheet_add_records新增记录
docsmartsheet_update_records更新记录
docsmartsheet_delete_records删除记录

运行时路径

项目默认位置备注
配置目录~/.config/wecom环境变量 WECOM_CLI_CONFIG_DIR 可覆盖
机器人凭证<config_dir>/bot.encinit 后生成
MCP 配置缓存<config_dir>/mcp_config.enc配置后更新
媒体临时目录<系统临时目录>/wecom/mediaWECOM_CLI_TMP_DIR 可覆盖根目录

环境变量

变量作用
WECOM_CLI_CONFIG_DIR覆盖配置目录
WECOM_CLI_TMP_DIR覆盖媒体临时目录根
WECOM_CLI_LOG_LEVELstderr 日志级别
WECOM_CLI_LOG_FILEJSON 日志,按天写入 ww.log
WECOM_CLI_MCP_CONFIG_ENDPOINT覆盖 MCP 配置接口地址

contact

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

JSON 字段必填说明
todo_id是不可恢复
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"}'

get_msg_media

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-contactcontact通讯录查询
wecomcli-todotodo待办全流程
wecomcli-meetingmeeting会议创建、列表、取消、受邀人
wecomcli-msgmsg会话列表、消息记录、媒体、发消息
wecomcli-scheduleschedule日程 CRUD、参与人、闲忙
wecomcli-docdoc文档与智能表格

许可证

上游 wecom-cli 使用 MIT License(见仓库 LICENSE)。