wecomcli-contact
wecomteam/wecom-cli
Query WeChat Work contacts visible to current user with local name/alias filtering.
What is wecomcli-contact?
This skill retrieves all contacts within the current user's visible scope from WeChat Work (企业微信) and supports local filtering by name or alias. It returns userid, name, and alias for matched contacts. Note: only returns contacts the current user has permission to view, not all company members.
- Fetch all contacts visible to the current user via wecom-cli
- Filter contacts locally by exact or fuzzy matching on name or alias fields
- Return userid, name, and alias for each matched contact
- Handle multiple matches by presenting candidates for user selection
- Validate that visible contacts do not exceed 10-person limit
How to install wecomcli-contact
npx skills add https://github.com/wecomteam/wecom-cli --skill wecomcli-contact- wecom-cli binary must be installed and accessible in PATH
How to use wecomcli-contact
- 1.Run 'wecom-cli contact get_userlist "{}"' to fetch all contacts visible to current user
- 2.Parse the returned userlist array containing userid, name, and alias fields
- 3.Filter results locally by matching the search keyword against name or alias fields
- 4.For exact matches (name or alias equals keyword exactly), return the result directly
- 5.For fuzzy matches (name or alias contains keyword), if one result found show it; if multiple results found, present candidates for user selection
- 6.If no matches found, inform the user that the person was not found
- 7.If userlist exceeds 10 people, stop processing and inform user the skill cannot handle large contact scopes
Use cases
- Look up a specific person by name or alias to get their userid
- Resolve a person's identity when given a nickname or alias
- Obtain userid for passing to other WeChat Work APIs that require user identification
- Batch query multiple people in a single operation
- Provide contact information before sending messages or performing other user-specific actions
- WeChat Work (企业微信) users needing to identify colleagues
- Agents automating tasks that require userid resolution
- Teams with smaller visible contact scopes (under 10 people)
wecomcli-contact FAQ
Display all matching candidates to the user with their name, alias, and userid, and ask them to confirm which person they meant. Do not auto-select.
No. It only returns contacts visible to the current user based on WeChat Work visibility rules. If the visible scope exceeds 10 people, the skill will error and cannot proceed.
Inform the user of the error message returned in the errmsg field. Do not attempt to retry or work around the error.
Yes, alias may be an empty string. When filtering, check for empty values and handle them appropriately.
Pass the userid to other WeChat Work APIs that require user identification, such as message sending or user-specific operations.
Full instructions (SKILL.md)
Source of truth, from wecomteam/wecom-cli.
name: wecomcli-contact description: 通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。 metadata: requires: bins: ["wecom-cli"] cliHelp: "wecom-cli contact --help"
通讯录成员查询技能
wecom-cli是企业微信提供的命令行程序,所有操作通过执行wecom-cli命令完成。
获取当前用户可见范围内的通讯录成员,并在本地按姓名/别名进行筛选匹配。
操作
1. 获取全量通讯录成员
获取当前用户可见范围内的所有企业成员信息:
调用示例:
wecom-cli contact get_userlist '{}'
返回格式:
{
"errcode": 0,
"errmsg": "ok",
"userlist": [
{
"userid": "zhangsan",
"name": "张三",
"alias": "Sam"
},
{
"userid": "lisi",
"name": "李四",
"alias": ""
}
]
}
返回字段说明:
| 字段 | 类型 | 说明 |
|---|---|---|
errcode | integer | 返回码,0 表示成功 |
errmsg | string | 错误信息 |
userlist | array | 用户列表 |
userlist[].userid | string | 用户唯一 ID |
userlist[].name | string | 用户姓名 |
userlist[].alias | string | 用户别名,可能为空 |
2. 按姓名/别名搜索人员
get_userlist 返回全量成员后,在本地对结果进行筛选匹配:
- 精确匹配:
name或alias与关键词完全一致,直接使用 - 模糊匹配:
name或alias包含关键词,返回所有匹配结果 - 无结果:告知用户未找到对应人员
搜索示例:
用户问:"帮我找一下张三是谁?"
- 调用
get_userlist获取全量成员 - 在
userlist中筛选name或alias包含"张三"的成员 - 返回匹配结果
注意事项
-
get_userlist返回的是当前用户可见范围内的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含userid、name(姓名)和alias(别名) -
⚠️ 超过 10 人时接口将报错:若
userlist返回成员数量超过 10 人,视为异常,应立即停止处理并向用户说明:当前通讯录可见成员数量超过了本技能支持的上限(10 人)。 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 建议缩小可见范围后重试,或通过其他方式查询目标人员。
-
userid是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段 -
alias字段可能为空字符串,搜索时需做空值判断 -
若搜索结果有多个同名人员,需将所有候选人展示给用户选择,不得自行决定
-
若
errcode不为0,说明接口调用失败,需告知用户错误信息(errmsg)
典型工作流
工作流 1:查询人员信息
用户问:"帮我查一下 Sam 是谁?"
wecom-cli contact get_userlist '{}'
获取全量成员列表
- 在结果中筛选
alias为Sam或name包含Sam的成员 - 若找到唯一匹配,直接展示结果:
📇 找到成员:
- 姓名:张三
- 别名:Sam
- 用户ID:zhangsan
- 若找到多个匹配,展示候选列表请用户确认:
🔍 找到多个匹配成员,请确认您要查询的是哪位:
1. 张三(别名:Sam,ID:zhangsan)
2. 张三丰(别名:Sam2,ID:zhangsan2)
请问您要查询的是哪一位?
工作流 2:为其他功能提供 userid 转换
用户问:"帮我发消息给张三"
wecom-cli contact get_userlist '{}'
获取全量成员
- 筛选
name为"张三"的成员,确认userid - 将
userid传递给消息发送接口
工作流 3:批量查询多个人员
用户问:"帮我查一下张三和李四分别是谁?"
wecom-cli contact get_userlist '{}'
获取全量成员列表
- 分别筛选"张三"和"李四"的匹配结果
- 汇总后一并展示
注意:只需调用一次
get_userlist,在本地对结果进行多次筛选,避免重复调用接口。
快速参考
接口说明
| 接口 | 用途 | 输入 | 返回 |
|---|---|---|---|
get_userlist | 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) |
本地筛选策略
| 场景 | 策略 |
|---|---|
| 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 |
| 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 |
| 模糊匹配,多个结果 | 展示候选列表,请用户选择 |
| 无匹配结果 | 告知用户未找到对应人员 |
Related skills
More from wecomteam/wecom-cli and the wider catalog.
wecomcli-doc
Create, read, and edit WeChat Work documents, sheets, and smart documents with Markdown support.
wecomcli-msg
Query WeChat Work conversations, retrieve message history with media support, and send text messages.
wecomcli-todo
Manage WeChat Work todo items: query, create, update, delete, and track completion status.
wecomcli-schedule
Manage WeCom enterprise calendar schedules: query, create, modify, and coordinate availability.
wecomcli-meeting
Create, manage, and query WeCom enterprise meetings with full control over participants and settings.
wecomcli-smartsheet
企业微信智能表格管理技能。提供智能表格的结构管理(子表、字段)和数据管理(记录增删改查)。适用场景:(1) 管理智能表格子表和字段/列 (2) 查询、添加、更新、删除智能表格记录。支持通过 docid 或文档 URL 定位文档。