/wecomcli-contact
通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。
$ npx -y skills add wecomteam/wecom-cli --skill wecomcli-contact --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/wecomcli-contact
Context preview
The summary Claude sees to decide when to auto-load this skill.
通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。
SKILL.md
wecomcli-contact.SKILL.mdname: 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` 包含关键词,返回所有匹配结果
- **无结果**:告知用户未找到对应人员
**搜索示例:**
用户问:"帮我找一下张三是谁?"
1. 调用 `get_userlist` 获取全量成员 2. 在 `userlist` 中筛选 `name` 或 `alias` 包含"张三"的成员 3. 返回匹配结果
---
注意事项
- `get_userlist` 返回的是当前用户**可见范围内**的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含 `userid`、`name`(姓名)和 `alias`(别名)
- ⚠️ **超过 10 人时接口将报错**:若 `userlist` 返回成员数量超过 10 人,视为异常,应立即停止处理并向用户说明:
> 当前通讯录可见成员数量超过了本技能支持的上限(10 人)。 > 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 > 建议缩小可见范围后重试,或通过其他方式查询目标人员。
- `userid` 是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段
- `alias` 字段可能为空字符串,搜索时需做空值判断
- 若搜索结果有多个同名人员,需将所有候选人展示给用户选择,不得自行决定
- 若 `errcode` 不为 `0`,说明接口调用失败,需告知用户错误信息(`errmsg`)
---
典型工作流
工作流 1:查询人员信息
用户问:"帮我查一下 Sam 是谁?"
1.
wecom-cli contact get_userlist '{}'获取全量成员列表
2. 在结果中筛选 `alias` 为 `Sam` 或 `name` 包含 `Sam` 的成员 3. 若找到唯一匹配,直接展示结果:
📇 找到成员:
- 姓名:张三
- 别名:Sam
- 用户ID:zhangsan
4. 若找到多个匹配,展示候选列表请用户确认:
🔍 找到多个匹配成员,请确认您要查询的是哪位:
1. 张三(别名:Sam,ID:zhangsan)
2. 张三丰(别名:Sam2,ID:zhangsan2)
请问您要查询的是哪一位?
---
工作流 2:为其他功能提供 userid 转换
用户问:"帮我发消息给张三"
1.
wecom-cli contact get_userlist '{}'获取全量成员
2. 筛选 `name` 为"张三"的成员,确认 `userid` 3. 将 `userid` 传递给消息发送接口
---
工作流 3:批量查询多个人员
用户问:"帮我查一下张三和李四分别是谁?"
1.
wecom-cli contact get_userlist '{}'获取全量成员列表
2. 分别筛选"张三"和"李四"的匹配结果 3. 汇总后一并展示
> 注意:只需调用一次 `get_userlist`,在本地对结果进行多次筛选,避免重复调用接口。
---
快速参考
接口说明
| 接口 | 用途 | 输入 | 返回 | |------|------|------|------| | `get_userlist` | 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) |
本地筛选策略
| 场景 | 策略 | |------|------| | 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 | | 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 | | 模糊匹配,多个结果 | 展示候选列表,请用户选择 | | 无匹配结果 | 告知用户未找到对应人员 |
Read more
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` 包含关键词,返回所有匹配结果
- **无结果**:告知用户未找到对应人员
**搜索示例:**
用户问:"帮我找一下张三是谁?"
1. 调用 `get_userlist` 获取全量成员 2. 在 `userlist` 中筛选 `name` 或 `alias` 包含"张三"的成员 3. 返回匹配结果
---
注意事项
- `get_userlist` 返回的是当前用户**可见范围内**的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含 `userid`、`name`(姓名)和 `alias`(别名)
- ⚠️ **超过 10 人时接口将报错**:若 `userlist` 返回成员数量超过 10 人,视为异常,应立即停止处理并向用户说明:
> 当前通讯录可见成员数量超过了本技能支持的上限(10 人)。 > 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 > 建议缩小可见范围后重试,或通过其他方式查询目标人员。
- `userid` 是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段
- `alias` 字段可能为空字符串,搜索时需做空值判断
- 若搜索结果有多个同名人员,需将所有候选人展示给用户选择,不得自行决定
- 若 `errcode` 不为 `0`,说明接口调用失败,需告知用户错误信息(`errmsg`)
---
典型工作流
工作流 1:查询人员信息
用户问:"帮我查一下 Sam 是谁?"
1.
wecom-cli contact get_userlist '{}'获取全量成员列表
2. 在结果中筛选 `alias` 为 `Sam` 或 `name` 包含 `Sam` 的成员 3. 若找到唯一匹配,直接展示结果:
📇 找到成员: - 姓名:张三 - 别名:Sam - 用户ID:zhangsan
4. 若找到多个匹配,展示候选列表请用户确认:
🔍 找到多个匹配成员,请确认您要查询的是哪位: 1. 张三(别名:Sam,ID:zhangsan) 2. 张三丰(别名:Sam2,ID:zhangsan2) 请问您要查询的是哪一位?
---
工作流 2:为其他功能提供 userid 转换
用户问:"帮我发消息给张三"
1.
wecom-cli contact get_userlist '{}'获取全量成员
2. 筛选 `name` 为"张三"的成员,确认 `userid` 3. 将 `userid` 传递给消息发送接口
---
工作流 3:批量查询多个人员
用户问:"帮我查一下张三和李四分别是谁?"
1.
wecom-cli contact get_userlist '{}'获取全量成员列表
2. 分别筛选"张三"和"李四"的匹配结果 3. 汇总后一并展示
> 注意:只需调用一次 `get_userlist`,在本地对结果进行多次筛选,避免重复调用接口。
---
快速参考
接口说明
| 接口 | 用途 | 输入 | 返回 | |------|------|------|------| | `get_userlist` | 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) |
本地筛选策略
| 场景 | 策略 | |------|------| | 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 | | 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 | | 模糊匹配,多个结果 | 展示候选列表,请用户选择 | | 无匹配结果 | 告知用户未找到对应人员 |
Repo: wecomteam/wecom-cli
Other skills on wecom-cli.
- /wecomcli-doc
企业微信文档(doc)管理技能。提供普通文档的新建、内容读取(Markdown)、内容覆写能力。适用场景:(1) 从零新建空白文档 (2) 以 Markdown 格式读取文档完整内容 (3) 用 Markdown 覆写文档正文。支持通过 docid 或文档 URL 定位文档。当用户提到「企业微信文档」「企微文档」「创建文档」「写个文档」,或链接形如 `https://doc.weixin.qq.com/doc/xxx` 时触发该技能。注意:在线表格(`/sheet/*`)请用
Open skill - /wecomcli-meeting
企业微信会议技能,支持创建预约会议、查询会议列表、获取会议详情、取消会议、更新会议成员。当用户需要"创建会议"、"预约会议"、"约会议"、"安排会议"、"查看会议"、"查询会议列表"、"会议详情"、"什么时候开会"、"有哪些会议"、"查找会议"、"取消会议"、"删除会议"、"修改会议成员"、"添加会议参与人"、"移除会议成员"时触发。
Open skill - /wecomcli-msg
企业微信消息技能。提供会话列表查询、消息记录拉取(支持文本/图片/文件/语音/视频)、多媒体文件获取和文本消息发送能力。当用户需要"查看消息"、"看聊天记录"、"发消息给某人"、"最近有什么消息"、"给群里发消息"、"看看发了什么图片/文件"时触发。
Open skill - /wecomcli-schedule
企业微信日程管理技能。适用于用户对企业微信日程的各类管理需求。当用户需要:(1) 查询指定时间范围内的日程列表或获取日程详细信息(标题、时间、地点、参与者等),(2) 创建新日程并设置提醒、参与人等,(3) 修改已有日程的标题、时间、地点等信息或取消日程,(4) 添加或移除日程参与人,(5) 查询多个成员的闲忙状态并分析共同空闲时段以安排会议时使用此技能。
Open skill - /wecomcli-sheet
企业微信在线表格(sheet)管理技能。提供在线表格的新建、内容读取、内容修改、追加行数据,以及子工作表的增删管理。适用场景:(1) 新建空白在线表格 (2) 读取表格完整内容(Markdown)(3) 读取基础信息与子表列表 (4) 读取表格子表数据 (5) 修改指定区域内容 (6) 末尾追加一行数据 (7) 添加/删除子工作表。当用户提到「企业微信表格」「企业微信在线表格」「企微 Excel 表格」,或链接形如 `https://doc.weixin.qq.com/sheet/xxx`
Open skill - /wecomcli-smartpage
企业微信智能文档(原名智能主页,smartpage)管理技能。提供智能文档的创建(将本地 Markdown 文件发布为智能文档)与内容导出(异步导出为 Markdown)能力。适用场景:(1) 将一个或多个本地 Markdown 文件创建为智能文档 (2) 异步导出智能文档内容为 Markdown。支持通过 docid 或文档 URL 定位文档。当用户明确提到「智能文档」「智能主页」,或链接形如 `https://doc.weixin.qq.com/smartpage/xxx` 时触发该技能。注意:普通文档(`/doc/*`)请用
Open skill

