【开源观察】飞书 CLI 45 天破万星:AI 操作可见可控,MCP 黑箱给不了的透明感

导语:飞书开源命令行工具 lark-cli,45 天 GitHub 破万星,成为国内首个万星办公套件开源项目。但比星标数字更有说服力的是——主干代码已合并 10 位外部开发者的 PR,而钉钉和企业微信是零。lark-cli 让 AI 通过命令行直接操作飞书,建群、建文档、发消息、查日历,每一步都可预览、可审查。这种"透明感"是 MCP 黑箱模式给不了的,也是开发者放心把任务交给 AI Agent 的前提。1 万星和 10 个外部 PR,这组数字比任何 PR 稿都诚实。


在这里插入图片描述

一、为什么办公套件突然都在做 CLI?

2026 年 3 月,三天之内,钉钉、飞书、企业微信相继开源了各自的 CLI 工具。这不是巧合,而是一个信号:办公套件正在为 AI Agent 时代重新设计接口。

为什么?因为 AI Agent 操作 GUI 太难了——按钮位置会变、弹窗不可预测、操作无法回滚。但 CLI 天然就是 Agent 友好的:

维度 GUI MCP CLI
Agent 可操作性 ❌ 需要视觉识别 ⚠️ 受限于 MCP Server 能力 ✅ 文本命令,天然可解析
操作可预览 ❌ 不可预览 ❌ 黑箱执行 --dry-run
过程可审查 ❌ 无日志 ⚠️ 部分有日志 ✅ 终端完整输出
权限可控性 ⚠️ 粗粒度 ⚠️ 全有或全无 ✅ 精确到单条命令
可组合性 ❌ 不可组合 ⚠️ 有限 ✅ 管道 + 脚本
Token 消耗 ⚠️ 高(JSON Schema) ✅ 低(纯文本)

CLI 不是退回到命令行时代,而是为 AI Agent 开了一扇门——一扇透明、可控、可审计的门。


二、lark-cli 是什么?三层架构 + 200 命令

lark-cli 是飞书官方开源的命令行工具,由 larksuite 团队维护,npm 包名 @larksuite/cli

2.1 三层架构

lark-cli 最精妙的设计是三层命令架构,让不同复杂度的任务走不同层级:

在这里插入图片描述

层级 名称 特点 适用场景 Token 消耗
第一层 Shortcuts(快捷命令) 人类 & AI 友好,语义化 “建个群”、“发个消息” 最低
第二层 API Commands(API 命令) 与平台 API 同步,精确控制 标准业务操作 中等
第三层 Raw API(原始 API) 2500+ 端点全覆盖 复杂/非标操作 最高

为什么三层? 因为 AI Agent 的 Token 是按上下文长度计费的。一个 Shortcut 命令 lark chat create --name "项目组" 只需要几十个 Token,但如果用 Raw API,需要构造完整的 HTTP 请求体,Token 消耗翻 10 倍。三层架构让简单任务保持低 Token,复杂任务不失灵活性。

2.2 覆盖范围

11 大业务域,200+ 命令,19 个 AI Agent Skills:

业务域 典型命令 AI Skill
消息 Messenger lark message send 自动选择群聊/个人
文档 Docs lark doc create 根据描述生成文档
多维表格 Base lark base create 自动建表+填充数据
表格 Sheets lark sheet read 数据分析+图表
幻灯片 Slides lark slide create 根据大纲生成 PPT
日历 Calendar lark calendar list 智能安排会议
邮件 Mail lark mail send 智能起草邮件
任务 Tasks lark task create 自动拆分+分配
会议 Meetings lark meeting create 一键创建会议
知识库 Wiki lark wiki search 语义搜索知识库
Markdown lark md convert Markdown ↔ 飞书文档

三、核心亮点:--dry-run 让 AI 操作可见可控

3.1 为什么"可见"这么重要?

想象这个场景:你让 AI Agent “把项目周报发给全组”。在 MCP 模式下,Agent 直接调用 API 执行——你不知道它发了什么内容、发给了谁、发到了哪个群。如果发错了,撤回都来不及。

lark-cli 的 --dry-run 彻底解决了这个问题:

# AI Agent 执行的命令
$ lark message send --chat "项目组" --text "本周进度:v2.0 已发布,bug 修复 12 个"

# --dry-run 输出(不实际执行)
[dry-run] 将执行以下操作:
  → 目标群聊: 项目组 (chat_id: oc_xxxxx)
  → 消息内容: "本周进度:v2.0 已发布,bug 修复 12 个"
  → 消息类型: text
  
确认执行? (y/n):

每一步操作都摊在终端里,你可以:

  1. 预览:看到 Agent 要做什么,再决定是否放行
  2. 审查:检查目标对象、内容、操作类型是否正确
  3. 拦截:发现不对,直接 n 掉,零损失
  4. 回溯:终端日志完整记录,出问题可追溯

3.2 MCP 黑箱 vs CLI 透明

在这里插入图片描述

这两种范式的本质区别是信任模型不同:

维度 MCP 模式 CLI 模式
信任模型 先执行,后知道 先知道,后执行
操作可见性 ❌ 云端黑箱 ✅ 本地终端
人工介入点 执行后(可能已晚) 执行前(--dry-run
审计能力 ⚠️ 依赖 MCP Server 日志 ✅ 终端输出即日志
错误恢复 ⚠️ 需要额外操作 ✅ 不确认就不执行

一句话总结:MCP 是"先斩后奏",CLI 是"先看后做"。对于涉及消息发送、文档修改、权限变更等不可逆操作,"先看后做"才是正确的信任模型。


四、实战:5 分钟让 AI Agent 操作飞书

4.1 安装与初始化

# 安装 lark-cli
npm install -g @larksuite/cli

# 初始化(扫码授权)
lark auth login

# 验证安装
lark --version
# 输出: @larksuite/cli 2.x.x

初始化过程会打开浏览器让你扫码授权。授权后,lark-cli 获得一个 OAuth token,后续所有操作都基于这个 token。token 存在本地,不上传云端。

4.2 基础操作示例

# 查看今日日历
$ lark calendar list --today
📅 2026-05-15
  09:00-09:30  站会                    (每日重复)
  10:00-11:00  产品评审                (会议室 A)
  14:00-15:30  技术方案讨论            (线上)

# 发送消息(带 dry-run)
$ lark message send --chat "技术组" --text "v2.1 已部署到预发环境"
[dry-run] 将向「技术组」发送: "v2.1 已部署到预发环境"
确认? y
✓ 消息已发送

# 创建文档
$ lark doc create --title "Q2 技术规划" --folder "技术文档"
✓ 文档已创建: https://feishu.cn/docx/xxxxx

# 查询多维表格
$ lark base read --app "项目看板" --filter "status=进行中"
| 任务名     | 负责人 | 截止日期   |
|-----------|--------|-----------|
| 用户模块重构 | 张三   | 2026-05-20 |
| API 网关升级 | 李四   | 2026-05-25 |

4.3 与 Claude Code 集成

lark-cli 最强大的用法是和 AI Coding Agent 配合。在 Claude Code 中:

# 在 Claude Code 对话中直接使用
> 帮我查一下明天有什么会议

# Claude Code 自动执行:
$ lark calendar list --tomorrow

# 或者更复杂的任务
> 把这个代码审查结果发到飞书技术群

# Claude Code 自动执行:
$ lark message send --chat "技术组" --text "代码审查结果:..."

Claude Code 会自动识别 lark-cli 命令,并在执行前展示 --dry-run 结果让你确认。

4.4 与 Cursor 集成

Cursor 同样支持。安装 lark-cli 后,在 Cursor 的 Agent 模式中:

> 帮我创建一个飞书文档,把当前项目的 README 内容填进去

# Cursor 自动执行:
$ lark doc create --title "项目说明" --content "$(cat README.md)"

4.5 自定义 AI Skill

lark-cli 内置了 19 个 AI Skill,但你也可以自定义:

# ~/.lark/skills/daily-standup.yaml
name: daily-standup
description: 自动收集昨日工作并发送站会消息
steps:
  - action: calendar list
    args: { range: "yesterday" }
  - action: task list
    args: { assignee: "me", status: "completed" }
  - action: message send
    args:
      chat: "站会群"
      template: |
        昨日完成:
        {{#each completed_tasks}}
        - {{this.name}}
        {{/each}}
        今日计划:
        {{#each today_events}}
        - {{this.title}} ({{this.start_time}})
        {{/each}}
# 执行自定义 Skill
$ lark skill run daily-standup --dry-run
[dry-run] 将执行 3 步操作:
  1. 获取昨日日历事件
  2. 获取已完成任务列表
  3. 向「站会群」发送站会消息
确认? y
✓ 站会消息已发送

五、开源生态:10 个外部 PR 说明什么?

5.1 数字背后的真相

在这里插入图片描述

指标 飞书 lark-cli 钉钉 ding-cli 企微 wecom-cli
GitHub Stars 10,200+ 1,800 460
外部 PR 合并 10 个 0 个 0 个
外部贡献者 10 人 0 人 0 人
命令数量 200+ 80+ 30+
业务域覆盖 11 个 6 个 3 个
--dry-run
AI Skills 19 个 5 个 0 个
三层架构

10 个外部 PR 意味着什么? 意味着这个项目不是"甩出去就不管"的甩开式开源,而是真正有开发者在用、在改、在贡献。外部贡献者提交了新命令、修复了 Bug、改进了文档——这些是真金白银的社区活跃度指标。

钉钉和企微的零 PR 则说明:项目虽然开源了,但社区还没建立起来。可能是因为功能覆盖不够、文档不够友好、或者贡献门槛太高。

5.2 为什么飞书的生态最好?

三个原因:

  1. 先发优势 + 功能覆盖:200+ 命令覆盖 11 个业务域,开发者想做的操作基本都有现成命令
  2. --dry-run 降低贡献门槛:贡献者可以安全地测试新命令,不用担心误操作
  3. 三层架构降低开发门槛:Shortcut 层封装了常用操作,贡献者不需要理解底层 API 就能添加新命令

六、一句话指令驱动完整项目流程

lark-cli 的终极愿景是:一句话指令,驱动完整项目流程。

想象这个场景:

你: "启动 Q3 项目,建群、建文档、排会议、分配任务"

AI Agent 自动执行:
  ✓ 创建「Q3项目组」群聊,拉入 8 位成员
  ✓ 创建「Q3技术规划」文档,填入模板
  ✓ 创建「Q3启动会」日历事件,邀请全员
  ✓ 在项目看板创建 5 个任务,分配给对应负责人
  ✓ 发送项目启动通知到技术大群

每一步都有 --dry-run 预览,每一步都可以审查和拦截。AI 做了 5 件事,你只需要确认 5 次。 比手动操作快 10 倍,比 MCP 黑箱安全 10 倍。


七、适用场景与建议

7.1 适合谁?

用户类型 使用方式 推荐度
AI Agent 开发者 集成到 Agent 工具链 ✅ 强烈推荐
飞书重度用户 日常操作自动化 ✅ 推荐
团队管理者 项目流程自动化 ✅ 推荐
轻度飞书用户 偶尔用 CLI 操作 ⚠️ 收益有限

7.2 最佳实践

  1. 先开 --dry-run:所有操作先预览,确认无误再实际执行
  2. 从 Shortcut 层开始:不要一上来就用 Raw API,Shortcut 够用且 Token 省
  3. 自定义 Skill:把重复操作封装成 Skill,一键执行
  4. 配合 AI Agent:lark-cli + Claude Code / Cursor = 飞书自动化最强组合
  5. 关注更新:lark-cli 更新频繁,新命令和新 Skill 持续增加

7.3 注意事项

  • 权限最小化:只授权必要的权限,不要全量授权
  • 敏感操作加确认:消息发送、文档删除等不可逆操作,务必开启 --dry-run
  • Token 安全:OAuth token 存在本地,不要提交到 Git 仓库
  • 版本锁定:生产环境建议锁定 lark-cli 版本,避免更新引入 Breaking Change

八、总结

lark-cli 的核心价值不是"又一个 CLI 工具",而是为 AI Agent 操作办公套件建立了一种新的信任模型

可见,所以可信。可控,所以敢用。

MCP 模式的黑箱操作让开发者不敢把关键任务交给 AI——因为你不知道它在云端做了什么。lark-cli 把每一步操作都摊在终端里,让你在放行之前就能看到、审查、拦截。这种透明感,才是 AI Agent 真正融入工作流的前提。

45 天万星、10 个外部 PR、200+ 命令、11 个业务域——这组数字比任何 PR 稿都诚实。飞书在 AI Agent 时代的开放姿态,值得所有办公套件学习。

项目地址:github.com/larksuite/cli
官方文档:open.feishu.cn/document/mcp_open_tools/feishu-cli

如果觉得这篇观察对你有启发,欢迎点赞 + 收藏 + 关注,你的支持是我持续创作的动力!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐