Skip to content

Guide · Agent skill

How to use the Feishu Approval Manager agent skill (lark-approval)

Updated · written with AI from the project's own documentation and checked against our catalogue data

The lark-approval skill is a set of instructions and reference notes that lets an AI agent work with Feishu (Lark) approval workflows on your behalf. It covers looking up approval templates, submitting requests such as leave or expense claims, and handling your pending and completed approvals. After this guide you will know what the skill does, how to install it, how to ask for things in plain language, and what it needs to run.

Feishu Approval Managerlarksuite/cli · MIT

Quick start

  1. 1Confirm prerequisites. Make sure the lark-cli command-line tool is installed and that you have a Feishu/Lark account authorised for it. The lark-shared skill must also be available.
  2. 2Install the skill. Unzip the downloaded ZIP into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder, or upload it under Settings → Capabilities → Skills in the Claude apps.
  3. 3Ask in plain language. Describe the approval task, such as listing pending approvals or submitting a leave request. Name the approval type if you know it.
  4. 4Let the agent search and confirm the form. For a new submission, the agent searches for the approval definition and reads its details so it uses the correct fields before creating anything.
  5. 5Review before submitting. Check the details the agent proposes. The create command is run with --yes, so confirm the content before you agree to submit.
  6. 6Act on pending approvals. For to-dos, the agent queries your task list and then approves, rejects, or takes another action using the instance code and task ID.

What is an agent skill, and what does lark-approval let the agent do?

An agent skill is a folder of instructions that an AI agent reads when a task matches the skill's description. The lark-approval skill is written for Feishu approval workflows. Once installed, the agent can search for approval definitions you are allowed to start, view a definition's form and flow, and submit a new approval instance.

On the review side, the agent can query your pending and completed approvals, then approve, reject, transfer, roll back, add a signer, remind, cancel, or copy others on an approval. It does this by calling the lark-cli command-line tool as you (the user identity). Before each call it reads the bundled reference notes so it uses the correct field names.

  • Search launchable approval definitions by keyword, such as 请假 (leave) or 报销 (reimbursement)
  • View a definition's details before submitting, including form controls and flow nodes
  • Submit a native approval instance
  • List pending (topic 1) and completed (topic 2) approval tasks, including unread and read states
  • Approve, reject, transfer, add signer, roll back, remind, cancel, or cc on approvals

What the skill does not do

The skill does not create or edit approval templates. That must be done in the Feishu client or the admin console. It also does not handle non-approval to-dos, which belong to the separate lark-task skill. Third-party approval definitions cannot be submitted directly; the tool returns a create_link that you open to start them.

  • Creating approval definitions: use the Feishu client or admin console
  • Ordinary to-dos that are not approvals: use lark-task
  • Third-party definitions: start through the returned create_link

Install the lark-approval skill

Download the ZIP from this page, then unzip it into one of two locations. For a personal setup that applies everywhere, unzip into ~/.claude/skills/. For a single project, unzip into that project's .claude/skills/ folder.

If you use the Claude apps instead, open Settings → Capabilities → Skills and upload the skill there.

The skill also expects the shared lark-shared skill to be present, because it holds the authentication and permission handling. Make sure lark-cli is installed and signed in before you start.

  • Personal install: ~/.claude/skills/
  • Project install: the project's .claude/skills/ folder
  • Claude apps: Settings → Capabilities → Skills, then upload

Trigger the skill with natural requests

You do not need to name the skill. The agent uses it when your request is about approval tasks, approval instances, or submitting or searching approvals. Be specific about the object: say 审批 (approval) or 待办 (to-do) in an approval context. A request about an ordinary task will go to lark-task instead.

The skill's routing rule is that if the core object is an approval document, instance, or to-do, it should be handled here. Examples of phrasing that fits are below.

  • 帮我看看我现在有哪些待审批的单子
  • 同意张三提交的那个报销审批,备注写已核对
  • 搜一下可以发起的请假审批,然后帮我提交一个明天的请假
  • 催一下这个审批实例的审批人

Example: submit a leave request

When you ask the agent to submit an approval and do not give an approval code, the skill follows a fixed order: search for the definition, get its details so the form fields are confirmed, then create the instance. The agent should not build the request without reading the form first.

The search and get commands below show the pattern the skill uses. The keyword 请假 is an example from the reference notes.

lark-cli approval approvals search --data '{"keyword":"请假"}' --as user lark-cli approval approvals get --params '{"approval_code":"<code>"}' --as user lark-cli approval instances create --data '{"approval_code":"<code>","form":"[...]"}' --yes --as user

Example: clear your pending approvals

To act on approvals, the skill first queries your to-do list to get the instance code and task ID. Both are needed together for any action. Then it runs the action, such as approving with a comment. The skill does not fetch full details unless you ask for the form, current node, or progress.

  • Query pending tasks: topic 1 is to-dos, topic 2 is completed
  • Approve with a comment using the instance_code and task_id from the query
lark-cli approval tasks query --params '{"topic":"1"}' --as user lark-cli approval tasks approve --data '{"instance_code":"<ic>","task_id":"<tid>","comment":"同意"}' --as user

What to do when an action fails

If an approve, reject, transfer, roll back, or cancel returns error 1395001, the task state has probably changed. The skill's guidance is to stop retrying, retry at most once, and check the status once with tasks query or instances get. Common causes are that someone else already handled the task, the approval status has changed, or you no longer have permission for that task.

The skill avoids repeated retries on the same failed write, so you should expect a clear explanation and a suggested next step rather than a loop.

  • Do not ask the agent to keep retrying the same write
  • Check current status once, then decide what to do

What people use it for

  • Clear a queue of pending reimbursement or leave approvals with a comment on each
  • Submit a standard leave or expense claim by describing the dates or amounts
  • Find a completed approval you handled last week and check its status
  • Remind an approver about an instance that has been waiting
  • Copy a colleague on an approval instance so they can see it

Frequently asked questions

Is the lark-approval skill free?

The source does not state pricing or licence terms beyond the MIT licence listed for the larksuite/cli repository and this skill. Check the repository for the licence text. Using it requires a Feishu/Lark account authorised for lark-cli.

What do I need to install lark-approval?

You need the lark-cli command-line tool, a Feishu/Lark account authorised for the lark-cli user identity, and the shared lark-shared skill for authentication and permission handling. The skill does not run scripts itself, but it does use the network.

Where do I put the lark-approval skill folder?

Unzip the ZIP into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder for one project. In the Claude apps, upload it under Settings → Capabilities → Skills.

Can the agent create or edit approval templates with this skill?

No. The skill explicitly does not create approval definitions. Templates must be created in the Feishu client or the admin console.

Why does the agent say a to-do is not a Feishu task?

Approval to-dos are a separate object from Feishu tasks. Requests about approval documents go to lark-approval, while ordinary to-dos go to the lark-task skill.

What should I do if an approval action returns error 1395001?

The skill suggests the task may already have been handled, the status changed, or you no longer have permission. Let the agent check the status once, then decide on your next step rather than retrying repeatedly.

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-approval if you handle many Feishu approvals and want an agent to clear your queue, submit standard requests like leave or reimbursement, or check on approval instances. Skip it if you need to create or edit approval templates, handle ordinary tasks, or cannot set up lark-cli and a Feishu account.

Download the skill

Find exactly what
you're looking for