
Wecomcli Doc
- 15.7k installs
- 2.6k repo stars
- Updated July 2, 2026
- wecomteam/wecom-cli
wecom-cli is a Rust-based command-line interface for WeChat Work (企业微信) that enables developers and AI agents to manage documents, messages, todos, meetings, schedules, and contacts in terminal environments.
About
A Rust-based command-line tool for WeChat Work (企业微信) that exposes document management, smart sheets, messaging, contacts, todos, meetings, and calendar operations to developers and AI agents. Supports enterprise scenarios (10+ teams) with full API bot capabilities and small team/individual workflows. Requires WeChat Work account and optional bot credentials.
- WeChat Work (企业微信) CLI for docs, smart sheets, messages, contacts, todos, meetings, calendars - all in terminal
- Supports 10+ person teams (enterprise scenarios) and small teams/individuals with API bot mode
- Runs on macOS (x64/arm64), Linux (x64/arm64), Windows (x64); Node.js 18+ required
Wecomcli Doc by the numbers
- 15,701 all-time installs (skills.sh)
- +487 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #24 of 550 CLI & Terminal skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
wecomcli-doc capabilities & compatibility
- Capabilities
- document management · messaging · task management · calendar operations
- Platforms
- macOS · Linux · Windows
- IDEs
- vscode · cursor ide
- Runs
- Runs locally
- Pricing
- Free
npx skills add https://github.com/wecomteam/wecom-cli --skill wecomcli-docAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 15.7k |
|---|---|
| repo stars | ★ 2.6k |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 2, 2026 |
| Repository | wecomteam/wecom-cli ↗ |
What it does
Automate WeChat Work tasks (docs, messages, todos, scheduling) from CLI or agents in Chinese enterprise environments.
Who is it for?
Chinese teams and developers using WeChat Work who need CLI automation, especially enterprise environments requiring bot integrations
Skip if: Teams not on WeCom or developers who only need generic Google Docs or Notion API integrations.
When should I use this skill?
Automating WeChat Work document creation, message retrieval, todo management, or meeting scheduling from CI/CD or agents
What you get
CLI commands create/read/update/delete docs, todos, messages; agents can orchestrate WeChat Work workflows
- WeCom document link
- docid
- smart sheet with default sub-sheet
By the numbers
- Supports documents, smart sheets, messages, contacts, todos, meetings, calendars (7 core business categories)
- Available on macOS, Linux, Windows with x64 and arm64 architectures
- Requires Node.js 18+
Files
企业微信文档管理
wecom-cli是企业微信提供的命令行程序,所有操作通过执行wecom-cli命令完成。
管理企业微信文档和智能文档(原名智能主页)的创建、读取和编辑。文档接口支持通过 docid 或 url 二选一定位文档。
⚠️ 重要触发规则:只有当用户明确提到「智能文档」或「智能主页」时,才使用智能文档相关接口(smartpage_*系列)。其他所有涉及「文档」的场景(如"创建文档"、"写个文档"、"帮我建个文档"等),一律使用企微文档接口(create_doc/get_doc_content/edit_doc_content)。
URL 品类识别与接口路由
企业微信文档有四种品类,URL 格式不同,读取内容所用的接口也不同,切勿混用。其中表格(在线表格)与智能表格是两类不同品类,请通过 URL 严格区分:
| URL 模式 | 品类 | 读取内容接口 |
|---|---|---|
https://doc.weixin.qq.com/doc/* | 文档(doc_type=3) | get_doc_content |
https://doc.weixin.qq.com/sheet/* | 表格 / 在线表格 | get_doc_content |
https://doc.weixin.qq.com/smartsheet/* | 智能表格(doc_type=10) | 参阅 wecomcli-smartsheet skill |
https://doc.weixin.qq.com/smartpage/* | 智能文档(原名智能主页) | smartpage_export_task → smartpage_get_export_result |
判断规则:
- URL 路径以
/doc/*开头 → 文档 → 用get_doc_content - URL 路径以
/smartsheet/*开头 → 智能表格 → 使用 `wecomcli-smartsheet` skill - URL 路径以
/sheet/*开头 → 表格(在线表格) → 用get_doc_content - URL 路径以
/smartpage/*开头 → 智能文档(原名智能主页) → 用smartpage_export_task
⚠️ 表格 ≠ 智能表格:二者是不同品类(/sheet/vs/smartsheet/),但读取内容都使用同一个get_doc_content接口。仅在写入/管理结构时才需要区分(智能表格的结构与记录管理见wecomcli-smartsheetskill;普通表格本 skill 仅支持读取)。
调用方式
通过 wecom-cli 调用,品类为 doc:
wecom-cli doc <tool_name> '<json_params>'返回格式说明
所有接口返回 JSON 对象,包含以下公共字段:
| 字段 | 类型 | 说明 |
|---|---|---|
errcode | integer | 返回码,0 表示成功,非 0 表示失败 |
errmsg | string | 错误信息,成功时为 "ok" |
当 errcode 不为 0 时,说明接口调用失败,可重试 1 次;若仍失败,将 errcode 和 errmsg 展示给用户。
特殊错误码
| errcode | errmsg | 含义 | 处理方式 |
|---|---|---|---|
851002 | incompatible doc type | 文档品类与所调用的接口不匹配 | 根据文档 URL 重新确认品类(参见上方「URL 品类识别与接口路由」表),然后使用该品类对应的正确接口重试 |
---
文档
get_doc_content
获取文档 / 表格(在线表格) / 智能表格的完整内容数据,统一以 Markdown 格式返回。采用异步轮询机制:首次调用无需传 task_id,接口返回 task_id;若 task_done 为 false,需携带该 task_id 再次调用,直到 task_done 为 true 时返回完整内容。
适用 URL:/doc/*、/sheet/*。/smartsheet/*(智能表格)不适用,请改用wecomcli-smartsheetskill;/smartpage/*(智能文档)不适用,请改用smartpage_export_task。
- 首次调用(不传 task_id):
wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2}'- 轮询(携带上次返回的 task_id):
wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2, "task_id": "xxx"}'- 通过 URL 读取文档:
wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/doc/xxx", "type": 2}'- 通过 URL 读取表格(在线表格):
wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/sheet/xxx", "type": 2}'⚠️ *智能表格(`/smartsheet/)不适用此接口**,请使用 wecomcli-smartsheet` skill 进行操作。参见 API 详情。
create_doc
新建文档(doc_type=3)或智能表格(doc_type=10)。创建成功返回 url 和 docid。
- 创建文档:
wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "项目周报"}'- 创建智能表格:
wecom-cli doc create_doc '{"doc_type": 10, "doc_name": "项目任务表"}'注意:
- docid 仅在创建时返回,需妥善保存
- 智能表格(doc_type=10)的详细管理功能(子表、字段、数据记录等)已迁移到
wecomcli-smartsheetskill,请使用该 skill 进行高级操作 - 普通表格(在线表格,URL 含
/sheet/)本 skill 仅支持读取(通过get_doc_content),不支持创建
参见 API 详情。
edit_doc_content
用 Markdown 内容覆写文档正文。content_type 固定为 1(Markdown)。
wecom-cli doc edit_doc_content '{"docid": "DOCID", "content": "# 标题\n\n正文内容", "content_type": 1}'参见 API 详情。
---
智能文档(原名智能主页)
适用品类:智能文档(用户说「智能文档」或「智能主页」时触发) 适用 URL:/smartpage/*
⚠️ 只有当用户明确指定「智能文档」或「智能主页」时,才使用以下接口。其他「文档」场景请使用上方的企微文档接口。
适用场景: 1. 将本地 Markdown 文件创建为智能文档 2. 异步导出智能文档内容为 Markdown
smartpage_create
创建智能文档(原名智能主页),支持传入标题和多个子页面。每个子页面可指定标题、内容类型和本地文件路径。创建成功返回 docid 和 url。
⚠️ 特殊语法:此命令必须使用+smartpage_create(带+前缀),加号不可省略;该+仅适用于此命令,不要泛化到其他doc子命令。
wecom-cli doc +smartpage_create '{"title": "项目概览", "pages": [{"page_title": "需求文档", "content_type": 1, "page_filepath": "/path/to/requirements.md"}]}'注意:
content_type必须与文件实际内容匹配:.md文件或包含 Markdown 语法的内容必须传1(Markdown),仅纯文本才传0。绝大多数场景应传1- docid 仅在创建时返回,需妥善保存
- 每个子页面的 Markdown 文件大小不得超过 10MB,超过会导致创建失败。如果文件过大,需先拆分为多个子页面再创建
参见 API 详情。
smartpage_export_task
发起智能文档内容导出任务(异步)。传入 docid(或 url)和 content_type,返回 task_id。这是异步导出的第一步,需配合 smartpage_get_export_result 轮询获取导出结果。
- 通过 docid:
wecom-cli doc smartpage_export_task '{"docid": "DOCID", "content_type": 1}'- 或通过 URL:
wecom-cli doc smartpage_export_task '{"url": "https://doc.weixin.qq.com/smartpage/xxx", "content_type": 1}'参见 API 详情。
smartpage_get_export_result
查询智能文档导出任务进度。传入 task_id 进行轮询,当 task_done 为 true 时返回 content(导出的完整文档内容)。
wecom-cli doc smartpage_get_export_result '{"task_id": "TASK_ID"}'当 task_done 为 true 时,content 字段即为导出的 Markdown 内容。
参见 API 详情。
典型工作流
关键提示:读取内容前先看 URL 判断品类。/doc/、/sheet/→get_doc_content;/smartsheet/→wecomcli-smartsheetskill;/smartpage/→smartpage_export_task。只有用户明确提到「智能文档」或「智能主页」时才走 smartpage 流程,其他文档场景一律使用企微文档接口。
文档 / 表格读取与文档编辑
1. 读取文档 / 表格 →
wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2}'或通过 URL(/doc/*、/sheet/* 适用):
wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/sheet/xxx", "type": 2}'若 task_done 为 false 则携带 task_id 继续轮询
智能表格(/smartsheet/*)请使用wecomcli-smartsheetskill
2. 创建新文档 →
wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "文档名"}',保存返回的 docid 3. 编辑文档 → 先 get_doc_content 了解当前内容,再 edit_doc_content 覆写
智能文档操作
1. 创建智能文档(仅当用户明确要求「智能文档」或「智能主页」时) →
wecom-cli doc +smartpage_create '{"title": "标题", "pages": [{"page_title": "子页面", "content_type": 1, "page_filepath": "/path/to/file.md"}]}',保存返回的 docid 2. 获取智能文档内容(URL 含 /smartpage/,异步两步):
- 第一步:发起导出任务 →
wecom-cli doc smartpage_export_task '{"docid": "DOCID", "content_type": 1}',获取 task_id
- 第二步:轮询导出结果 →
wecom-cli doc smartpage_get_export_result '{"task_id": "TASK_ID"}',若 task_done 为 false 则继续轮询,直到 task_done 为 true,返回的 content 字段即为 Markdown 内容
create_doc API
新建文档、表格或智能表格。创建成功后返回文档访问链接和 docid。
技能定义
{
"name": "create_doc",
"description": "新建文档、表格或智能表格。支持在指定空间和目录下创建,可设置文档管理员。创建成功后返回文档访问链接和 docid(docid 仅在创建时返回,需妥善保存)。注意:创建智能表格(doc_type=10)时,文档会默认包含一个子表,可通过 smartsheet_get_sheet 查询其 sheet_id,无需额外调用 smartsheet_add_sheet。",
"inputSchema": {
"properties": {
"doc_type": {
"description": "文档类型:3-文档,10-智能表格",
"enum": [3, 10],
"title": "Doc Type",
"type": "integer"
},
"doc_name": {
"description": "文档名字,最多 255 个字符,超过会被截断",
"title": "Doc Name",
"type": "string"
}
},
"required": ["doc_type", "doc_name"],
"title": "create_docArguments",
"type": "object"
}
}请求示例
{
"doc_type": 3,
"doc_name": "项目周报"
}响应示例
{
"errcode": 0,
"errmsg": "ok",
"url": "https://doc.weixin.qq.com/doc/xxx",
"docid": "DOCID"
}注意事项
doc_type=3创建普通文档doc_type=10创建智能表格,默认包含一个子表- docid 仅在创建时返回,后续无法再获取,务必保存
edit_doc_content API
编辑(覆写)文档内容。
技能定义
{
"name": "edit_doc_content",
"description": "编辑文档内容",
"inputSchema": {
"properties": {
"docid": {
"description": "文档 id,与 url 二选一传入",
"title": "Docid",
"type": "string"
},
"url": {
"description": "文档的访问链接,与 docid 二选一传入",
"title": "URL",
"type": "string"
},
"content": {
"description": "覆写的文档内容",
"title": "Content",
"type": "string"
},
"content_type": {
"description": "内容类型格式。1:markdown",
"enum": [1],
"title": "Content Type",
"type": "integer"
}
},
"oneOf": [
{ "required": ["docid", "content", "content_type"] },
{ "required": ["url", "content", "content_type"] }
],
"title": "edit_doc_contentArguments",
"type": "object"
}
}请求示例
{
"docid": "DOCID",
"content": "# 标题\n\n正文内容",
"content_type": 1
}响应示例
{
"errcode": 0,
"errmsg": "ok"
}注意事项
content_type当前仅支持1(Markdown 格式)- 此操作为覆写,会替换文档全部内容
- 建议先调用
get_doc_content了解当前内容再编辑
get_doc_content API
获取企业微信文档、表格的完整内容数据,以 Markdown 格式返回。该接口采用异步轮询机制:首次调用无需传 task_id,接口会返回 task_id;若 task_done 为 false,需携带该 task_id 再次调用,直到 task_done 为 true 时返回完整内容。
技能定义
{
"name": "get_doc_content",
"description": "获取企业微信文档的完整内容数据,以 Markdown 格式返回。该接口采用异步轮询机制:首次调用无需传 task_id,接口会返回 task_id;若 task_done 为 false,需携带该 task_id 再次调用,直到 task_done 为 true 时返回完整内容。",
"inputSchema": {
"properties": {
"docid": {
"description": "文档的 docid,与 url 二选一传入",
"title": "Doc ID",
"type": "string"
},
"url": {
"description": "文档的访问链接,与 docid 二选一传入",
"title": "URL",
"type": "string"
},
"type": {
"description": "内容返回格式。2: Markdown 格式",
"enum": [2],
"title": "Type",
"type": "integer"
},
"task_id": {
"description": "任务 ID,用于异步轮询。初次调用时不填,后续轮询时填写上次返回的 task_id",
"title": "Task ID",
"type": "string"
}
},
"oneOf": [
{ "required": ["docid", "type"] },
{ "required": ["url", "type"] }
],
"title": "get_doc_contentArguments",
"type": "object"
}
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| docid | string | 与 url 二选一 | 文档的 docid |
| url | string | 与 docid 二选一 | 文档的访问链接 |
| type | integer | 是 | 内容返回格式,固定传 2(Markdown 格式) |
| task_id | string | 否 | 任务 ID,初次调用不填,后续轮询时填写上次返回的 task_id |
异步轮询机制
1. 首次调用:传入 docid/url 和 type: 2,不传 task_id 2. 检查响应:若 task_done 为 false,记录返回的 task_id 3. 轮询调用:携带 task_id 再次调用,直到 task_done 为 true 4. 获取内容:当 task_done 为 true 时,content 字段包含完整的 Markdown 内容
请求示例
// 首次调用
{
"docid": "DOCID",
"type": 2
}
// 轮询调用
{
"docid": "DOCID",
"type": 2,
"task_id": "xxx"
}响应示例
{
"errcode": 0,
"errmsg": "ok",
"content": "# 文档标题\n\n文档正文内容...",
"task_id": "xxxxx",
"task_done": true
}smartpage_create API
创建智能文档(原智能主页)。支持传入多个子页面,每个子页面可指定标题、内容类型和本地文件路径。创建成功后返回文档访问链接和 docid。
技能定义
{
"name": "smartpage_create",
"description": "创建智能文档(原智能主页)。支持传入标题和多个子页面配置,每个子页面可指定标题、内容类型(Text/Markdown)和本地文件路径。创建成功后返回 docid 和 url(docid 仅在创建时返回,需妥善保存)。",
"inputSchema": {
"properties": {
"title": {
"description": "智能文档标题",
"title": "Title",
"type": "string"
},
"pages": {
"description": "子页面列表",
"title": "Pages",
"type": "array",
"items": {
"type": "object",
"properties": {
"page_title": {
"description": "子页面标题",
"title": "Page Title",
"type": "string"
},
"content_type": {
"description": "内容类型。1: Markdown(包含Markdown语法的内容),0: Text(纯文本,不含任何Markdown语法)",
"enum": [0, 1],
"default": 1,
"title": "Content Type",
"type": "integer"
},
"page_filepath": {
"description": "子页面内容对应的本地文件路径",
"title": "Page Filepath",
"type": "string"
}
}
}
}
},
"required": ["pages"],
"title": "smartpage_createArguments",
"type": "object"
}
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 否 | 智能文档标题 |
| pages | array | 是 | 子页面列表 |
| pages[].page_title | string | 否 | 子页面标题 |
| pages[].content_type | integer | 否 | 内容类型:1-Markdown,0-Text(纯文本)。默认应传 1,仅纯文本内容才传 0 |
| pages[].page_filepath | string | 否 | 子页面内容对应的本地文件路径,需确保文件存在且可读 |
ContentType 枚举
| 值 | 含义 | 适用场景 |
|---|---|---|
| 1 | Markdown | 文件内容包含 Markdown 语法(标题、列表、链接、代码块等) |
| 0 | Text(纯文本) | 文件内容为纯文本,不含任何 Markdown 语法 |
除了标准的 markdown 格式以外,智能文档还支持扩展语法以提升表示的丰富性,包括: 1. 背景块
<card color="green">
## 在扩展标签里面可以任意嵌套 markdown 语法
- 背景块常用于展示重要信息
- 颜色的使用根据需要表达的语义进行选择,卡片背景由 `color` 指定;支持 `green`, `blue`, `red`, `yellow`, `gray`, `purple`, `orange`, `cyan`, `indigo`,也支持 `dark_green`, `dark_blue`, `dark_red`, `dark_yellow`, `dark_gray`, `dark_purple`, `dark_orange`, `dark_cyan`, `dark_indigo` 等深色系。
</card>背景颜色推荐使用浅色背景,以完成区隔/高亮并且保持低饱和度确保正文内容的良好显示。 2. 分栏 使用分栏可以并列显示内容,常用于展示对比或者并列信息
<grid>
<area width-ratio="0.5">占据50%的空间</area>
<area width-ratio="0.5">占据50%的空间</area>
</grid>width-ratio:子容器宽度占比,范围 0.1~1.0,所有的子容器宽度占比之和为 1
请求示例
{
"title": "项目概览",
"pages": [
{
"page_title": "需求文档",
"content_type": 1,
"page_filepath": "/path/to/requirements.md"
},
{
"page_title": "设计说明",
"content_type": 1,
"page_filepath": "/path/to/design.md"
}
]
}响应示例
{
"errcode": 0,
"errmsg": "ok",
"docid": "DOCID",
"url": "https://doc.weixin.qq.com/smartpage/a1_xxxxxx"
}注意事项
docid仅在创建时返回,后续无法再获取,务必保存page_filepath指向本地文件,需确保文件存在且可读- `content_type` 必须与文件实际内容格式匹配:
.md文件或包含 Markdown 语法的内容必须传1,不要传0 - 每个子页面的 Markdown 文件大小不得超过 10MB,超过会导致创建失败;如果文件过大,需先拆分为多个子页面
smartpage_export_task / smartpage_get_export_result API
导出智能文档(原智能主页)内容。采用异步两步操作:先通过 smartpage_export_task 提交导出任务获取 task_id,再通过 smartpage_get_export_result 轮询任务状态,直到任务完成后返回完整文档内容。
---
第一步:smartpage_export_task — 提交导出任务
发起智能文档内容导出任务(异步)。传入 docid 或 url 和 content_type,返回 task_id。
技能定义
{
"name": "smartpage_export_task",
"description": "发起智能文档(原智能主页)内容导出任务(异步)。传入 docid(或 url)和 content_type,返回 task_id。需配合 smartpage_get_export_result 轮询查询导出进度,直到任务完成后获取文档内容。",
"inputSchema": {
"properties": {
"docid": {
"description": "智能文档的 docid,与 url 二选一传入",
"title": "Doc ID",
"type": "string"
},
"url": {
"description": "智能文档的访问链接,与 docid 二选一传入",
"title": "URL",
"type": "string"
},
"content_type": {
"description": "导出内容格式。目前仅支持 1(Markdown 格式)",
"enum": [1],
"title": "Content Type",
"type": "integer"
}
},
"oneOf": [
{ "required": ["docid", "content_type"] },
{ "required": ["url", "content_type"] }
],
"title": "smartpage_export_taskArguments",
"type": "object"
}
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| docid | string | 与 url 二选一 | 智能文档的 docid |
| url | string | 与 docid 二选一 | 智能文档的访问链接 |
| content_type | integer | 是 | 导出内容格式,目前仅支持 1(Markdown 格式) |
请求示例
// 通过 docid
{
"docid": "DOCID",
"content_type": 1
}
// 通过 url
{
"url": "https://doc.weixin.qq.com/smartpage/a1_xxxxxx",
"content_type": 1
}响应示例
{
"errcode": 0,
"errmsg": "ok",
"task_id": "TASK_ID"
}---
第二步:smartpage_get_export_result — 查询导出结果
查询智能文档导出任务进度。传入 task_id 进行轮询,当 task_done 为 true 时返回完整文档内容。
技能定义
{
"name": "smartpage_get_export_result",
"description": "查询智能文档(原智能主页)导出任务进度。传入 task_id 轮询,当 task_done 为 true 时返回 content 字段,包含导出的完整文档内容。",
"inputSchema": {
"properties": {
"task_id": {
"description": "导出任务 ID,由 smartpage_export_task 返回",
"title": "Task ID",
"type": "string"
}
},
"required": ["task_id"],
"title": "smartpage_get_export_resultArguments",
"type": "object"
}
}参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| task_id | string | 是 | 导出任务 ID,由 smartpage_export_task 返回 |
请求示例
{
"task_id": "TASK_ID"
}响应示例
任务未完成:
{
"errcode": 0,
"errmsg": "ok",
"task_done": false
}任务完成:
{
"errcode": 0,
"errmsg": "ok",
"task_done": true,
"content": "# 项目周报\n\n## 本周进展\n\n1. 完成了用户模块开发\n2. 修复了3个线上Bug"
}---
异步轮询机制
1. 调用 smartpage_export_task:传入 docid(或 url)和 content_type: 1,获取 task_id 2. 首次轮询:传入 task_id 调用 smartpage_get_export_result 3. 检查响应:若 task_done 为 false,继续轮询 4. 获取内容:当 task_done 为 true 时,content 字段包含完整的 Markdown 内容
注意事项
smartpage_export_task是异步操作的第一步,调用后仅返回task_idcontent_type目前仅支持1(Markdown 格式)docid和url二选一传入即可,无需同时传入- 任务完成后
content字段直接包含完整文档内容,无需额外读取文件 - 如果轮询多次仍未完成,建议适当增加轮询间隔
Related skills
How it compares
Choose wecomcli-doc when the target system is Tencent Enterprise WeChat rather than generic cloud document APIs.
FAQ
Does wecom-cli work with personal WeChat or only WeChat Work?
WeChat Work (企业微信) only - this is the enterprise platform. Personal WeChat is a different ecosystem.
Do I need a WeChat Work bot to use all features?
Bot credentials (Bot ID and Secret) are optional; enterprise users with API mode get full docs/todo capabilities. Individual and small team scenarios work without bot setup for messages/contacts.
Is Wecomcli Doc safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.