Guide · Agent skill
How to use the Lark Contact Lookup agent skill (lark-contact)
Updated · written with AI from the project's own documentation and checked against our catalogue data
The lark-contact skill teaches an AI agent how to look up people and bots in Lark (the international name for Feishu) using the lark-cli command-line tool. Given a colleague's name or email, the agent finds that person's open_id, which is the internal ID other Lark tools need before they can message someone or schedule a meeting. This guide explains what the skill does, how to install it, how to ask for it in plain language, and what to watch for before you rely on it.
Quick start
- 1Download and unzip. Download the lark-contact ZIP from this page and unzip it so you have a lark-contact folder containing SKILL.md and references.
- 2Place the folder. Move the folder to ~/.claude/skills/ for personal use or to .claude/skills/ inside a project. In the Claude apps, you can instead upload it under Settings → Capabilities → Skills.
- 3Install and sign in to lark-cli. Make sure the lark-cli tool is installed and authenticated with your Lark or Feishu account, then run lark-cli contact --help to confirm it works.
- 4Ask in plain language. Describe the person or bot you need, such as a colleague's name you want to message. The agent loads the skill when the request matches.
- 5Confirm the candidate. If the search returns several matches, pick the right person or bot from the list the agent shows you before any action that sends or schedules.
- 6Hand off to messaging or calendar. Use the open_id with the lark-im or lark-calendar skills, which are needed for sending messages or scheduling meetings.
What is an agent skill, and what does lark-contact make the agent do?
An agent skill is a folder of instructions, reference files and sometimes scripts that an AI agent loads when a task matches its description. The lark-contact skill covers one job: resolving people and bots in Lark's contact directory.
With it, the agent can search colleagues by name, email or chat history to get their open_id; fetch profile fields such as department, email, contact information, personal status and signature when it already has an open_id; and search for bots or AI agents visible to the current user by keyword.
- Find a colleague's open_id from a name or email (user identity).
- Look up profile details for a known open_id (user identity).
- Batch-query colleagues' personal status and signature.
- Search bots and AI agents by keyword, optionally limited to certain group chats.
Install the lark-contact skill from a ZIP file
Download the ZIP for the lark-contact skill from this page and unzip it. The folder contains SKILL.md and a references folder with three files: lark-contact-get-user.md, lark-contact-search-bot.md and lark-contact-search-user.md.
Put the unzipped skill folder in one of these locations. For a personal install, use ~/.claude/skills/. For a single project, use the .claude/skills/ folder inside that project. Alternatively, in the Claude apps you can upload the skill under Settings → Capabilities → Skills.
- Personal: ~/.claude/skills/lark-contact/
- Project: .claude/skills/lark-contact/ inside your project folder
- Claude apps: Settings → Capabilities → Skills, then upload the skill
Set up lark-cli and sign in before you start
The skill does not work on its own. It calls the lark-cli command-line tool (the binary name is lark-cli), so that tool must be installed and authenticated on your machine. The skill metadata also points to lark-cli contact --help as the help command.
You need a Lark or Feishu account. The lookup commands run with user identity. Bot identity is not supported for name or email search, and bot identity cannot use the bot search command either.
- lark-cli is installed and available as lark-cli.
- You are authenticated with a Lark/Feishu account.
- Run lark-cli contact --help to see the contact commands.
- The skill uses the --as user flag for searches.
lark-cli contact --helpTrigger the skill with natural requests
You do not need to name the command. Ask in plain language, for example that you want to message someone or schedule with a named colleague, or that you have an open_id and want to know who it is. The skill is meant to be used when a name needs resolving before a next step.
Names alone do not say whether the target is a person or a bot. Names containing words such as bot, agent, AI, assistant or 助手 suggest a bot, so the skill searches bots first in that case. If it is unclear, it searches both.
- "Find Zhang San's open_id so I can message him."
- "Look up the profile of the person with this open_id."
- "Find the meeting assistant bot in Lark."
- "What is the department and email of ou_xxx?"
Examples of the commands the agent runs
A typical flow is to search for the person first, confirm the right open_id, then hand off to the messaging skill. The skill's examples use --has-chatted to narrow results to people you have talked to.
For batch profile checks, the skill first reads the parameter schema with lark-cli schema, then calls the user_profiles batch_query command. For bot search, it uses +search-bot with --query for one keyword or --queries for up to 20 comma-separated keywords. If results contain several matches and the next step has side effects such as sending a message or inviting to a meeting, the agent should list the candidates and let you choose rather than picking the first.
lark-cli contact +search-user --query "张三" --has-chatted --as user
lark-cli im +messages-send --user-id ou_xxx --text "Hi!"
lark-cli schema contact.user_profiles.batch_query
lark-cli contact +search-bot --query '会议助手' --as user
lark-cli contact +search-bot --queries '会议助手,日报助手,审批助手' --as userSafety notes: scripts, network and personal data
This skill runs scripts and uses the network. Every search goes to Lark through lark-cli, using the account you signed in with. Review the skill files before installing if your organisation requires it.
Profile data is personal information. Cross-tenant users (people outside your organisation) often return empty business fields, which is a Lark visibility rule, so the agent should handle blank values. Permission errors such as 41050 or Permission denied mean the current identity cannot see that data.
- Only look up people you have a legitimate reason to contact.
- Do not expect department trees, department member lists or org charts from this skill; the skill says those need native OpenAPI endpoints.
Tips for reliable results
Use a full email address when you have one, since the skill notes that an exact email match is usually unique and is a good input for later commands. Use --has-chatted to avoid look-alike names from people you have never talked to.
If you already have an open_id and only want to send a message or schedule a meeting, skip the lookup and go straight to the messaging or calendar skills, which the lark-contact skill references as lark-im and lark-calendar. Those two skills are referenced but not included in these files.
- Prefer email or --has-chatted when a name is common.
- For bot lookups with --has-chatted, only pass the flag when you need it.
- --chat-ids can limit bot search to specific group chats (up to 100).
What people use it for
- Find a colleague's open_id by name before sending them a direct message.
- Confirm which of several people with the same name is the one you chat with, using their email.
- Check a colleague's department, personal status or signature before scheduling a meeting.
- Find an internal meeting assistant or other bot by keyword, and get its open_id.
- Batch-check personal status and signatures for a list of open_ids.
Frequently asked questions
Is the lark-contact skill free?
The source material gives the skill's licence as MIT. It does not state any pricing, so check the repository and your Lark or Feishu plan for any costs that apply to the tools it calls.
What do I need before the lark-contact skill works?
You need the lark-cli command-line tool installed and authenticated, plus a Lark or Feishu account. Searches use user identity, and bot identity is not supported for search.
Where do I install the lark-contact skill?
Unzip the downloaded ZIP and place the folder in ~/.claude/skills/ for personal use or in a project's .claude/skills/ folder. In the Claude apps, upload it under Settings → Capabilities → Skills.
Why does my search return an empty department or email for a person?
People outside your organisation (cross-tenant users) often have empty business fields because of Lark's visibility rules. The skill advises handling empty values in downstream steps.
Can this skill list everyone in a department or draw an org chart?
No. The skill says department trees, department member lists and org charts are outside its scope and should use the native OpenAPI, which it points to via lark-openapi-explorer.
How is this different from messaging or calendar skills?
lark-contact finds people and bots and their IDs. The lark-im skill sends messages and the lark-calendar skill schedules meetings, so you typically use lark-contact first to get the right open_id.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use lark-contact if you work in Lark or Feishu and want an agent to find the right colleague or bot ID before messaging or scheduling. Skip it if you do not have lark-cli set up with a Lark account, or if you need department trees or org charts, which this skill does not cover.
Download the skill