lark-approval
lark-approval

什么是 lark-approval

用飞书的人应该都熟悉审批这个功能——请假、报销、采购、合同盖章,什么都要走审批。日常工作里打开飞书刷审批流是家常便饭:待办列表里一堆红点,点进去看详情、点同意或拒绝、偶尔还要转交给别人。一天下来,光处理审批就能花掉不少时间。

lark-approval 就是专门处理这个事情的。它是飞书官方 CLI 工具集(larksuite/cli)里的一个 Skill,让你在命令行里完成飞书审批的所有操作——查待办、看详情、同意、拒绝、转交、加签、撤回、催办,全部不用打开飞书界面

截至 2026 年 8 月,lark-approval 的下载量已超过 7.7 万次。它解决了什么?说白了就是一句话:把审批从“在飞书里点来点去”变成“在终端里敲命令”

核心功能

lark-approval 的能力覆盖了飞书审批的全流程,从查询到操作到发起,命令行全部搞定

查询待办与已办

你可以随时查看自己名下的审批待办列表和已办列表。支持按不同主题筛选——待办、已办、未读、已读。不用打开飞书翻半天,一条命令就能看到所有等着你处理的审批单。

查看审批详情

拿到一个审批实例之后,可以查看它的完整信息——表单内容、当前进度、走到了哪个节点、审批意见记录。在做出同意或拒绝的决定之前,先把情况看清楚。

处理审批任务

这是 lark-approval 最核心的操作能力。支持对审批任务执行以下动作

  • 同意:批准一个审批申请

  • 拒绝:驳回申请

  • 转交:把审批任务转给其他人处理

  • 退回:退回给发起人修改

  • 加签:在审批流程中增加额外的审批人

  • 抄送:把审批信息抄送给相关人员

  • 撤回:撤回已提交的审批申请

  • 催办:提醒审批人尽快处理

搜索与发起审批

如果你需要发起一个新的审批——比如请假、报销、出差申请——lark-approval 支持先搜索可发起的审批定义,查看定义详情,然后发起原生审批实例。它会先让你确认审批定义、表单内容和节点参数,确认无误后再真正提交。

Schema 引导的 API 调用

lark-approval 的一个设计特点是“不猜字段”。在执行任何审批请求之前,它会先通过 lark-cli schema approval.<resource>.<method> 查看所需的参数结构和数据格式。这意味着你不用去翻飞书的 API 文档,也不用担心参数传错。

安装方法

lark-approval 的安装依赖 Node.js 环境和一个 AI 编程助手(Claude Code、Cursor、Codex 等均可)。

环境准备

首先确保你的机器上有 Node.js 16 或更高版本:

bash
node --version

如果没装,去 Node.js 官网下载安装。

安装 lark-approval Skill

方式一:通过 npx 安装(推荐)

在终端执行以下命令:

bash
npx skills add https://github.com/larksuite/cli --skill lark-approval

或者使用 bzskills 命令

bash
npx bzskills add larksuite/cli --skill lark-approval

方式二:通过 npx skills add 直接安装

bash
npx skills add larksuite/cli -y -g

方式三:在 OpenClaw 中安装

bash
npx clawhub@latest install lark-approval

验证安装

安装完成后,可以在终端中运行以下命令确认环境正常:

bash
lark-cli approval --help

如果能看到帮助信息,说明安装成功

认证配置

lark-approval 需要先完成飞书 CLI 的认证。所有命令默认以用户身份执行(--as user),因为审批本质上是人的动作。认证方式可以参考 lark-shared 文档中的说明

适用场景

批量处理审批

每天早上一打开飞书,待办审批堆了十几条。一条一条点开、看详情、点同意,手都点酸了。用 lark-approval,先查待办列表,然后批量同意——一条命令处理一批,效率翻倍。

自动化审批流程

有些审批是规则明确的——比如金额低于某个数的报销自动过、常规采购申请自动批。把这些规则写成脚本,用 lark-approval 自动执行同意操作,不需要人工介入

审批状态监控与催办

提交了一个审批,等了半天没动静,不知道卡在谁那里了。用 lark-approval 查审批实例的当前进度,看看到了哪个节点,然后直接给当前审批人发催办。不用在飞书里翻聊天记录找人。

与 CI/CD 流水线集成

把审批集成到部署流水线里。比如生产环境发布需要运维审批——流水线跑到发布步骤时停下来,自动发起一个飞书审批,审批通过了再继续往下跑。lark-approval 的命令行特性让这种集成变得非常简单。

离职交接资产盘点

员工离职的时候,需要盘点他名下的文档、群主、审批等各类资产。有开发者基于 lark-cli 构建了离职交接工具,用 asyncio.gather 并行调用 lark-cli,单次运行就能覆盖文档、审批、IM群主、任务、日程五类资产。审批资产盘点只是其中一环。

使用案例

案例一:查看所有待办审批

想知道今天有哪些审批等着你处理:

bash
lark-cli approval tasks query --topic 1

--topic 1 表示查询待办列表。命令会返回所有待你处理的审批单的概要信息——审批名称、发起人、提交时间等。

案例二:查看某个审批的详情

待办列表里有一条看不明白的审批,想先看看具体内容再决定怎么处理:

bash
lark-cli approval instances get --instance_code <审批实例编码>

这条命令会返回审批的完整信息——表单内容、当前节点、审批进度、历史意见等

案例三:同意一个审批

看完详情确认没问题,直接同意:

bash
lark-cli approval tasks approve --task_id <任务ID> --instance_code <审批实例编码>

同意之前可以先加 --dry-run 参数预览请求,确认无误后再实际执行

案例四:发起一个请假审批

想提交一个请假申请。lark-approval 的标准流程是:

  1. 搜索可发起定义lark-cli approval approvals search,找到“请假审批”对应的 approval_code

  2. 查看定义详情lark-cli approval approvals get --approval_code <code>,确认表单和流程

  3. 发起审批实例lark-cli approval instances create --approval_code <code> --data <表单数据> --yes

在真正执行 instances create 之前,lark-approval 会让你确认最终的定义、表单值和节点参数,确认无误后加 --yes 才真正提交。

案例五:催办一个审批

提交的报销审批等了三天没动静:

bash
lark-cli approval tasks remind --instance_code <审批实例编码>

系统会自动给当前节点的审批人发送催办通知

案例六:转交审批任务

你收到一个审批,但这事儿不该你批,应该转给财务负责人:

bash
lark-cli approval tasks transfer --task_id <任务ID> --user_id <接收人的open_id>

所有人员类参数默认使用 open_id。如果用户给的是姓名或邮箱,lark-approval 会先调用 lark-contact 技能解析成 open_id

注意事项

审批待办不是飞书任务。 lark-approval 的文档里反复强调这一点——飞书里的“待办”分为审批类和非审批类。审批待办走 lark-approval,非审批类的普通任务走 lark-task。用错了工具,查不到东西。

不负责创建审批定义。 lark-approval 只能发起原生审批实例,不能创建或修改审批流程的定义。三方审批定义也不走原生提单

执行写操作前先确认。 同意、拒绝、转交、发起审批这些都是写操作,会影响真实的业务流程。lark-approval 的设计要求在真正执行之前先让用户确认,然后显式传 --yes 参数。

不要猜字段。 lark-approval 的官方文档明确要求:调用前先按需读取 references 下对应的文件查看参数结构,不要猜字段。references 是第一信息源。只有在 reference 未覆盖的场景下,才用 lark-cli ... --helplark-cli schema 补充确认。

所有命令默认 --as user。 审批是人的动作,lark-approval 默认以用户身份执行操作