lark-cli:用命令行全操作飞书,13.8k star 的官方 CLI

做飞书开发的痛点是什么?

好不容易拿到了 App ID 和 Secret,第一次调 API 之前还要搞 OAuth 流程、查 endpoint 路径、拼参数、处理分页。开发者文档写得全,但翻一篇完整 API 文档的时间够你用手写十个命令了。

如果你想在脚本里发一条消息、查一个日程、或往多维表格里写一条记录——这些都能做。但问题是,你得先理解飞书开放平台的 API 体系:群聊 ID 的格式、分页游标的结构、参数序列化规则、重试机制。这一套门槛下来,新手往往已经在文档里迷路了。

lark-cli 要解决的就是这个问题。把飞书 2500+ API 装进你的终端。

项目简介

lark-cli 是飞书官方(larksuite)开源的 CLI 工具,MIT 协议。Go 语言编写,GitHub 13.8k star,946 fork。

它不是第二个飞书 SDK。它的设计思路很直接:与其写代码调用 API,不如直接在终端里输入命令。

覆盖的业务域包括日历、即时通讯、云文档、多维表格、电子表格、幻灯片、任务、邮箱、视频会议、考勤、审批、OKR 等 18 大类。命令数量 200+。此外还附带了 26 个 AI Agent Skills——你可以把它理解为预定义的操作模板,Agent 通过这些 Skill 可以直接操作飞书。

三层命令架构

lark-cli 最核心的设计决策是三层命令系统——不同场景用不同粒度。

第一层:快捷命令

+ 为前缀,是人类和 AI 都能用的友好封装。它做了聪明的参数默认值、表格化输出结果。

# 查看今日日程
lark-cli calendar +agenda

# 发送消息到群聊
lark-cli im +messages-send --chat-id "oc_xxx" --text "Hello"

# 创建一篇 Markdown 文档
lark-cli docs +create --api-version v2 --doc-format markdown --content $'<title>周报</title>\n# 本周进展\n- 完成了 X 功能'

每条命令只需告诉它”做什么”,而不需要关心请求体怎么拼、header 里该放什么。直接出结果,不需要看返回的 JSON。

第二层:API 命令

从飞书开放平台 OAPI 元数据自动生成,经过编辑筛选后的 100+ 精选命令,与平台端点一一对应。适合需要精确控制参数或了解具体 API 路径的场景。

lark-cli calendar calendars list
lark-cli calendar events instance_view --params '{"calendar_id":"primary","start_time":"1700000000","end_time":"1700086400"}'

这叫”官方精选 API 层”,相当于给你提供了一份飞书 API 速查手册。

第三层:通用调用

需要任意 API 时,直接用 api 命令发任何请求:

lark-cli api GET /open-apis/calendar/v4/calendars
lark-cli api POST /open-apis/im/v1/messages --params '{"receive_id_type":"chat_id"}' --data '{"receive_id":"oc_xxx","msg_type":"text","content":"{\"text\":\"Hello\"}"}'

覆盖 2500+ 飞书开放平台 API。三层架构的意义是:**普通人用第一层,进阶者用第二层,需要完全自主权的人用第三层。**大多数人一辈子只需第一层。

Agent 驱动设计

这是 lark-cli 最值得关注的地方。

它不是先做了个人类友好的命令行然后再想想能不能给 Agent 用。它是为 Agent 和人类都做了原生适配——两条线同时设计。

26 个预置 Skill

lark-calendar      日历日程(创建/更新)
lark-im            发送消息、群聊管理、消息搜索
lark-doc           云文档创建、读取、更新、搜索
lark-base          多维表格(字段、记录、视图、仪表盘)
lark-meeting       视频会议记录、妙记产物
lark-okr           OKR 查询与创建
lark-skill-maker   自定义 Skill 创建框架
...(共 26 个)

每个 Skill 定义了清晰的参数结构、默认值、输出格式。Agent 不需要自己拼 JSON 也不需要翻 API 文档——告诉它”查一下日历”,Skill 自动处理所有细节。

Agent 模式登录

Agent 场景下登录流程是异步的,不会阻塞 Agent 执行:

lark-cli auth login --domain calendar --no-wait
# 命令立即返回验证 URL,不阻塞
# 稍后用 device-code 恢复轮询
lark-cli auth login --device-code <CODE>

身份切换

同一个命令可以指定以用户身份还是机器人身份执行:

# 以用户身份查看日程
lark-cli calendar +agenda --as user

# 以机器人身份发送消息
lark-cli im +messages-send --as bot --chat-id "oc_xxx" --text "Hi"

这为自动化场景提供了灵活性——同一个工具,既可以是你自己在终端里用,也可以嵌入到多 Agent 系统中作为被调用的子组件。

快速上手

从头到尾只需要三步。

第一步:安装

npx @larksuite/cli@latest install

一条命令搞定。需要 Node.js(npm/npx)。

如果想从源码构建,需要 Go 1.23+ 和 Python 3:

git clone https://github.com/larksuite/cli.git
cd cli
make install

第二步:配置应用

lark-cli config init

交互式引导你完成。输入 App ID、App Secret,选择应用部署范围(全部部门/指定部门/自己)。它会自动生成授权链接,你在浏览器里点一下完成授权。

也可以一键创建新应用:

lark-cli config init --new

第三步:登录并开始使用

lark-cli auth login --recommend
lark-cli calendar +agenda

--recommend 标志会自动帮你选择最常用的权限范围。登录完成后,直接开始使用。

这条命令会列出你的日历议程,结果以表格形式直接显示在终端里。不用打开飞书,不用打开浏览器。

实际应用示例

三个最实用的场景。

1. 自动化日报

每天早上终端里跑一条命令,发一份今日日程摘要到指定群聊:

lark-cli calendar +agenda | lark-cli im +messages-send --chat-id "oc_xxx"

配合 cron 或 launchd,每天自动发送。

2. 文档批量操作

# 搜索所有包含"Q3 汇报"的文档
lark-cli docs +search --keyword "Q3汇报" --format table

# 批量导出
lark-cli docs search --keyword "Q3汇报" --page-all --format json

3. 多维表格数据写入

# 在多维表格中新增一条记录
lark-cli base +record-create --table "发票台账" --fields '{"发票号":"F2026061001","金额":"5200","状态":"待审核"}'

注意事项

安全设计是认真的

lark-cli 做了不错的安全层:

  • 输入防注入:命令行参数经过严格的类型校验
  • 输出净化:终端输出自动去掉敏感信息
  • 凭证存储:使用操作系统原生的密钥链(macOS Keychain / Linux Secret Service / Windows Credential Manager)

但它也有明确的风险提示:由于支持 AI Agent 调用,模型幻觉、执行不可控、提示词注入等风险仍然存在。当 Agent 以你的身份执行操作时,它可能执行高危动作——删除日程、发送消息到所有人、修改多维表格里大量记录。建议把 Robot 作为私人助手使用,不要拉入群聊。

团队扩展有限

lark-cli 是为单个 app 凭证设计的。如果你想在一个项目中使用多个企业应用的凭证,需要多次运行 config init 切换。它不是 CI/CD 友好的工具——没有 service account 输入机制,凭证必须经过交互式授权流程。需要的场景会受限。

命令集是精选,不是全部

200+ 快捷命令覆盖了核心日常操作。但飞书开放平台有 2500+ API。如果你用上的是一些边缘或高频场景之外的 API,那你需要开箱第三层手动调用,或者直接查 API 文档。这不是缺点——精选范围意味着开箱体验更好。但你确实应该知道它的边界在何处。

结论

lark-cli 解决了一个简单但被低估的问题:日常调用飞书 API 太麻烦了。

如果你需要做自动化脚本、想快速调试飞书接口、或者在终端里完成日常飞书操作,它非常好用——一条命令跑完,不需要打开浏览器,不需要查文档。你只需要注意它的边界:它不是 CI 工具,边缘 API 需要手动调用,Agent 调用有风险需要你主动管理。

200+ 经过精心挑选的精选命令,超过 2500 条通用 API 保障,加上 26 个为 Agent 设计的 Skill——lark-cli 把飞书开放平台从”需要查文档查半天”变成了一条终端命令。

仓库:https://github.com/larksuite/cli npm 包:@larksuite/cli

相关文章

Book2Skills:把经典书籍变成真正可用的 Agent Skill

Book2Skills:把经典书籍变成真正可用的 Agent Skill

Book2Skills 是一个开源项目,把经典书籍的方法论蒸馏成结构化的 AI 智能体技能。每个技能是一个文件夹,包含 SKILL.md 核心文件和参考文档——AI 读取框架,应用书里的实际决策规则, ...

Obsidian Skills:让你的 AI Agent 真正驾驭知识库

AI Agent 能写代码、会翻网页,但碰你自己的文档就傻眼了。不管 Claude Code 多聪明,它不知道你的 Obsidian vault 里 wikilink 怎么写、callout 怎么嵌套 ...