About lark-contact
lark-contact is an Agent Skill for Lark (Feishu) contact lookup, aimed at AI agents that need to find colleagues or bots by name, email or keyword. It separates the user and bot identity paths and maps each need to a lark-cli command.
Key features
- 01Search employees by name or email for open_id
- 02Search bots or agents by keyword
- 03Fetch profiles by known open_id
- 04Batch query colleagues' personal status and descriptions
- 05Command mapping for user and bot identities
Use cases
- 01Confirm a contact's open_id before sending a message
- 02Decide whether an ambiguous name refers to a person or a bot
- 03Present multiple search matches to the user before side-effecting actions
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ larksuite/ cli --skill lark-contactAfter installing, type/lark-contactin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/lark-contact-get-user.mdlark-contact-search-bot.mdlark-contact-search-user.mdDetails
From the project README选哪个命令
user 身份和 bot 身份是两条完全独立的路径。先确定当前身份,再按下表选命令:
| 想做什么 | user 身份 | bot 身份 |
|---|---|---|
| 按姓名 / 邮箱搜员工拿 open_id | +search-user | 不支持 |
| 按关键词搜索当前用户可见的机器人 / 智能体 | +search-bot | 不支持 |
| 已知 open_id 取他人资料 | +search-user --user-ids <id> | +get-user --user-id <id> |
| 查看自己 | +get-user 或 +search-user --user-ids me | 不支持 |
| 查同事的个人状态 / 签名 | user_profiles batch_query | 不支持 |
已知 open_id 只是想发消息 / 排日程,不必经过 contact —— 直接 lark-im / lark-calendar。
名字没说清是人还是机器人 / 智能体
用户给的名字常常不表明类型。例如「和 reviewDuck 约个会」里的 reviewDuck 可能是同事昵称,也可能是机器人。
- 名字含 bot / agent / AI / 助手 / 机器人 / 智能体 / assistant 等明显特征时,反过来先搜机器人更快
- 不确定的话两边都搜一下
典型场景
找张三给他发消息:先搜,确认 open_id,再发:
lark-cli contact +search-user --query "张三" --has-chatted --as user
lark-cli im +messages-send --user-id ou_xxx --text "Hi!"
批量查同事的个人状态 / 个性签名(先用 schema 看参数)。
lark-cli schema contact.user_profiles.batch_query
lark-cli contact user_profiles batch_query \
--params '{"user_id_type":"open_id"}' \
--data '{"user_ids":["ou_xxx","ou_yyy"],"query_option":{"include_personal_status":true,"include_description":true}}' \
--as user
搜索命中多条且后续操作有副作用(发消息、邀请会议等),把候选列给用户挑;不要擅自选第一条。
搜索机器人 / 智能体
+search-bot 使用 user 身份按关键词搜索当前用户可见的机器人,返回 ou_ 开头的机器人 open_id。参数细节等见 lark-contact-search-bot.md。
lark-cli contact +search-bot --query '会议助手' --as user
lark-cli contact +search-bot --queries '会议助手,日报助手,审批助手' --as user
注意事项
- 41050 / Permission denied 受当前身份的可见范围限制(三条命令都可能遇到)。细节见
lark-shared。 - 跨租户用户(
is_cross_tenant=true)多数业务字段为空字符串,这是飞书可见性规则,下游做空值兜底。 - ID 类型:
+get-user可通过--user-id-type使用open_id、union_id或user_id;+search-user使用用户 open_id;+search-bot不支持按 ID 查询,它按关键词搜索并返回机器人 open_id。
不在本 skill 范围
- 发消息 / 查聊天记录 →
lark-im - 排日程 / 邀请会议 →
lark-calendar - 部门树 / 按部门列员工 / 组织架构 →
lark-openapi-explorer查找原生接口