飛書CLIがオープンソース化、AIエージェント時代に皆がコマンドラインツールを作る理由は?
飛書がAI Agent向けのCLIツール「lark-cli」をオープンソース化し、AI時代におけるCLIの重要性と設計原則を解説する記事は、AIエージェントと外部サービスの連携方法のトレンドを示す重要な進展である。
キーポイント
AI Agent時代のCLI復権
AI Agentが外部サービスを操作するためのインターフェースとして、テキストベースで自記述的なCLIがGUIよりも適しており、Google Workspace用「gws」など類似の動きが広がっている。
CLI、MCP、技能の役割分担
CLIは実際に作業を実行する「手」、MCPはツールを事前登録する別の「手」、技能は使い方を示す「筋肉記憶」であり、それぞれ異なる役割と適した利用シーンがある。
AI向けCLIの設計原則
効果的なAI向けCLIには、詳細なhelpテキスト、dry-runによる安全確認、構造化されたエラーメッセージ、JSONなど構造化データの出力、出力量の制御が求められる。
飛書CLIの具体的機能
lark-cliは、AI Agentが飛書でメッセージ送信、カレンダー確認、ドキュメント作成、多次元テーブル管理、メール送信、タスク管理などをコマンドラインから実行できる。
影響分析・編集コメントを表示
影響分析
この記事は、AI Agentが実際の業務システムと連携するための実用的なアプローチとしてCLIが注目されていることを示しており、ソフトウェア設計のパラダイムシフトを予感させる。企業がAIエージェントを自社製品に統合する際の具体的な指針を提供し、業界の実装トレンドに影響を与える可能性が高い。
編集コメント
AIエージェントの実用化が進む中、どのように外部サービスと連携させるかという根本的な課題に対する一つの明確な解答を示した記事。技術的な深みと実践的な知見のバランスが良く、開発者やプロダクトマネージャーにとって参考になる内容。
タイトル: 飛書がCLIをオープンソース化、AI Agent時代に誰もがコマンドラインツールを作る理由
飛書がコマンドラインツール lark-cli をオープンソース化しました。これにより、AI Agentが直接飛書を操作できるようになります:メッセージ送信、カレンダー確認、ドキュメント作成、マルチディメンショナルテーブル作成、メール送信、タスク管理。ユーザーがAIに一言指示するだけで、AI自らが飛書を操作してタスクを完了します。
同様のCLIは他にも多く存在します。3週間前にはGoogleもgwsをオープンソース化し、AI AgentがGoogle Workspaceを操作できるようにしました。2026年、AI Agentへの接続を望むすべてのプロダクトがCLIを開発しています。
CLI(Command Line Interface)とは、コンピュータ上で黒地に白文字のターミナルウィンドウを開き、一行のコマンドを入力してエンターキーを押すと、コンピュータが作業を実行してくれるものです。
例えば、今日のスケジュールを確認したい場合、飛書アプリを開いてカレンダーを探す必要はありません。次の一行を入力するだけです:
lark-cli calendar +agenda
ボタンもアイコンも、派手なインターフェースもありません。CLIはグラフィカルユーザーインターフェース(GUI)より20年以上早く登場しましたが、Windowsの時代には次第に使われなくなりました。しかし、AI Agentの時代に再び注目を集めています。
なぜAI Agent時代に、誰もがCLIを作っているのか
AI Agentが作業を行うには、ツールを操作する能力が必要です。AIに会議室を予約してもらうには、カレンダーシステムにアクセスできなければなりません。顧客データを整理してもらうには、テーブルの読み書きができなければなりません。コードをデプロイしてもらうには、デプロイコマンドを実行できなければなりません。
AIが呼び出すためのインターフェースが必要です。APIでもこの役割は果たせますが、CLIにはAPIにはない利点があります。それは、CLIが自己記述的であることです。AIが未知のCLIに出会ったら、--helpと入力するだけで使い方がわかります。
さらに、CLIは本質的にテキストによる対話です。入力も出力も文字列です。AIが最も得意とするのは文字列の処理です。逆に、AIにGUIを操作させるのは迂遠です。スクリーンショットを撮り、視覚モデルでボタンの位置を認識させ、マウスクリックをシミュレートする必要があります。一行のコマンドで済むことを四つのステップに分解し、各ステップでエラーが発生する可能性があります。AIにとって、CLIは自然な操作インターフェースなのです。
AI Agentに外部サービスを操作させる現在の主流の方法は、主に三つあります:MCP(Model Context Protocol)、CLI、スキル(Skills)。これら三つは互いに置き換わる関係ではなく、それぞれ異なる役割を担っています。
- CLIは、実際に作業を行う「手」です。 インストール後、ターミナル内でコマンドを実行でき、カレンダー確認、メッセージ送信、テーブル作成など、すべてCLIが実行します。
- MCPもAIに外部サービスを操作させますが、方法が異なります。 MCPは事前にツールのリストをAIに登録し、AIはいつでもそれを呼び出せます。しかし、このリスト自体は常にコンテキストウィンドウ(AIの「作業記憶」と考えられ、容量は限られています)に残ります。AIが一時的にそのツールを使っていなくても、その説明が容量を占有してしまうのです。一方、CLIは、AIが必要なときに自分でターミナルにコマンドを入力し、使い終われば立ち去るため、コンテキストを占有しません。
- もう一つの違いは組み合わせ能力です。CLIはパイプライン(
|)やパラメータを使って、事前に設定されていない操作を組み立てることができます。例えば:
lark-cli calendar agenda --next-week | grep "張三" | wc -l
この一行のコマンドで、来週に張三との会議がいくつあるかを調べられます。MCPの各機能は事前に登録する必要があり、同じ効果を実現するには、新しいツールを個別に定義しなければなりません。
ただし、MCPには独自の適したシナリオがあります。コマンドラインをサポートしていない環境(例えばCursorやClaudeデスクトップ版)では、MCPが唯一の選択肢となります。両者にはそれぞれ長所があります:ターミナルにアクセスできる環境ではCLIがより軽量で柔軟、ターミナルにアクセスできない環境ではMCPに依存することになります。
- スキルは、Agentのための「説明書」です。 スキル自体は作業をしませんが、Agentに対して、このCLIにはどのようなコマンドがあるか、どのシナリオでどのパラメータを使うべきか、エラーが発生したらどう対処するかを伝えます。スキルファイルがなくてもAgentはCLIを使えますが、その場合は
--helpを頼りにすることになります。
簡単に言えば:CLIは「手」、MCPは「別の手」、スキルは「筋肉記憶」です。飛書が今回オープンソース化したプロジェクトは、CLIとスキルを一緒に提供しています。

AIのために良いCLIを書く方法
適当にコマンドラインツールを書いただけでは、AIがスムーズに使えるわけではありません。もし自社のプロダクト向けにAI向けのCLIを作りたいなら、飛書の設計にはいくつか参考になる点があります。
helpテキストは最も重要なドキュメントです。 AIが知らないCLIに出会ったら、最初に実行するのは--helpです。このテキストはAIが最初に読む説明書です。コマンドの使い方、パラメータの意味、具体例を明確に記載すべきです。例えば:
Usage: myctl deploy [flags]
- dry-run(ドライラン)をサポートすること。これはAIのための安全網です。 AIは自ら判断を下しますが、時にはユーザーの意図を誤解したり、操作すべきでないデータにマッチしたりすることがあります。dry-runは「プレビュー」メカニズムに相当します。
例:AIに飛書のマルチディメンショナルテーブルから先月の期限切れデータを削除するよう依頼します。直接実行すると、間違って削除したら元に戻せません。--dry-runを追加すると、AIは実際に削除する前に、どのデータが削除されるかをリストアップして確認を求めてきます。
- エラーメッセージは、次の操作を導けるものでなければなりません。 人間が
Permission denied(権限拒否)を見たら、権限がないとわかりますが、AIはどうすれば権限を得られるかわかりません。良いエラーメッセージは、次のステップを提案すべきです。例えば:
Permission denied
lark-cli auth login --scope "calendar:calendar:readonly"
- 構造化データを返し、出力量を適切に制御すること。 飛書CLIはjson、csv、tableなど複数の出力形式をサポートしています。人間にとってはtableの方が見やすいですが、AI Agentにとってはjsonの方が信頼性が高いです。良いCLIは単に実行できるだけでなく、他のツールが処理しやすいものでなければなりません。同時に出力量の制御も重要です。AIのコンテキストウィンドウは限られているため、もしコマンドが一万行のログを返したら、コンテキストは圧迫されてしまいます。飛書CLIはページングパラメータ(
--page-limit)を提供し、AIが必要なデータ量を制御できるようにしています。
CLIを設計する人でも使う人でも、次の点を覚えておいてください:Agentに作業をさせる前に、まずdry runを実行させましょう。

インストール後は、あなたが指示し、Agentが実行する
インストール後の使い方は簡単です:ユーザーが一言指示するだけで、Agentが飛書を操作して仕事を片付けます。
会議が終わった後、AIに「さっきの会議で言及されたすべてのToDoを抽出して、ドキュメントを送るべきものはドキュメントを送り、タスクを作るべきものはタスクを作って」と指示します。AIは議事録を読み、ToDo事項を分解し、それから一つ一つ実行します:lark-cli doc createでドキュメントを作成し、lark-cli task createでタスクを作成し、lark-cli im sendで関係者に通知を送ります。

5人で時差をまたぐ会議を設定したい場合、AIに「来週、みんながいつ空いているか調べて」と指示します。AIは各人のカレンダーとタイムゾーンを確認し、いくつかの時間帯を提案します。ユーザーが一つ選ぶと、会議が作成されます。
AIに飛書ドキュメント内で直接下書きを書いてもらうことさえできます。ユーザーがドキュメント内にコメントを残して意見を述べると、AIはコメントを読み、自ら修正します。コラボレーション全体を飛書から離れることなく行えます。
インストールも簡単です。npm install -g @larksuite/cliを実行し、次に:
npx skills add https://github.com/larksuite/cli -y -g
過去40年間、コンピュータのインターフェースはCLIからGUIへ、文字からアイコンへ、キーボードからタッチスクリーンへと進化し、人間にとってますます使いやすい方向に進んできました。
AI Agent時代、その方向性は逆転しました。ソフトウェアのユーザーはAI Agentになりつつあります。文字の世界のために設計されたインターフェースであるCLIは、まさにAIが最も扱いやすいツールなのです。

Agentがソフトウェアの新しいユーザー成長のポイントになった以上、飛書がCLIを提供するのも当然の流れと言えます。コミュニティがMCPアダプタ層を書くのを待つより、むしろ直接AIネイティブなCLIを作り、完全にオープンソース化し、登録や承認を必要とせず、すべてのAI Agentが接続できるようにするのです。
これにより、避けて通れない問題も生じます:Agentの権限をどう与えるか? 権限を与えなければ、何もできません。権限が高すぎると、Agentが意図を誤解して取り返しのつかないことをする恐れがあります。結局のところ、Agentにユーザーの代わりに承認をさせたり、全社メールを送信させたりすることはまだできません。dry-runはリスクの一部を軽減できますが、実際にAgentを企業内で大規模に運用するには、権限システム、監査追跡、人と機械の協業の境界線は、まだ模索中です。
しかし、別の角度から考えてみると、かつて私たちが会社の資金を金庫からネットバンキングに移し、契約書を紙から電子サインに移したときも、一歩一歩模索してきました。CLIとdry-runは、おそらくこのプロセスの第一歩です。
そして、飛書がこの取り組みを行うには、他者が簡単には真似できない強みが実はあります:飛書自体が企業コラボレーション分野ですでに十分に成熟しており、メッセージ、ドキュメント、カレンダー、承認、マルチディメンショナルテーブル、タスクといった機能はすべて既に揃っています。今、これらの機能をAIネイティブなCLIを通じてすべて開放することは、おそらく国内でAI Agentに対して最もオープンで、最もフレンドリーな企業向け接続ポイントになるでしょう。このことの価値は単にツールが一つ増えることではなく、むしろAgent時代に向けて真の企業向けインフラストラクチャを構築し、権限、監査、組織能力をエコシステム全体に開放することにあります。業界がAI Agentを実装する上で、非常に重要な一歩となるでしょう。
原文を表示
飞书刚开源了一个命令行工具 lark-cli,能让 AI Agent 直接操作飞书:发消息、查日历、写文档、建多维表格、发邮件、管任务。你跟 AI 说一句话,它自己去操作飞书完成任务。
类似的 CLI 还很多,三周前 Google 也开源了 gws,让 AI Agent 操作 Google Workspace。2026 年了,所有想接入 AI Agent 的产品,都在做 CLI。
CLI(Command Line Interface),就是你在电脑上打开一个黑底白字的终端窗口,敲一行命令,回车,电脑帮你干活。
比如你要查今天的日程,不用打开飞书 App 找日历,敲一行:
lark-cli calendar +agenda
没有按钮,没有图标,没有花哨的界面。CLI 比图形界面早了二十多年,在 Windows 时代逐渐没什么人用了。但 AI Agent 时代,又火起来了。
为什么 AI Agent 时代,大家都在做 CLI
AI Agent 要干活,就得有操作工具的能力。你让 AI 帮你订会议室,它需要能访问日历系统。你让它帮你整理客户数据,它需要能读写表格。你让它帮你部署代码,它需要能跑部署命令。
总得有一个接口让 AI 去调用。API 也能做这件事,但 CLI 有一个 API 不具备的优势:CLI 是自描述的。AI 碰到一个陌生的 CLI,敲一下 --help
而且 CLI 天然是用文本交互的,输入是文字,输出也是文字。AI 最擅长处理的就是文字。反过来,让 AI 操作 GUI 就绕远了,得截图、用视觉模型识别按钮在哪、再模拟鼠标去点,一行命令能搞定的事拆成四步,每步都可能出错。对 AI 来说,CLI 就是天然的操作界面。
让 AI Agent 操作外部服务,现在主流有三种方式:MCP、CLI、技能(Skills)。三者不是互相替代的关系,各管一件事。
CLI 是实际干活的工具。 装完之后终端里就能跑命令,查日历、发消息、建表格,都是 CLI 在执行。
MCP 也是让 AI 操作外部服务的,但方式不同。 MCP 是提前把工具清单注册给 AI,AI 随时能调用,但清单本身常驻上下文窗口(可以理解为 AI 的“工作记忆”,空间有限)。就算 AI 暂时不用某个工具,它的描述也占着空间。CLI 是 AI 需要的时候自己去终端敲命令,用完就走,不占上下文。
另一个区别是组合能力。CLI 可以靠管道和参数组合出没预设过的操作,比如:
lark-cli calendar agenda --next-week | grep "张三" | wc -l
一行命令就能查出下周和张三有几个会。MCP 的每个能力都需要提前注册,要实现同样的效果,得单独定义一个新工具。
不过 MCP 有自己的适用场景。在不支持命令行的环境里(比如 Cursor、Claude 桌面端),MCP 是唯一选择。两者各有所长:能访问终端的场景用 CLI 更轻量灵活,不能访问终端的场景靠 MCP。
技能是给 Agent 看的说明书。 它不干活,但告诉 Agent 这个 CLI 有哪些命令、什么场景该用什么参数、出错了怎么处理。没有技能文件 Agent 也能用 CLI,靠 --help
简单说:CLI 是手,MCP 是另一种手,技能是肌肉记忆。 飞书这次开源的项目,CLI 和技能一起提供。

怎么给 AI 写好一个 CLI
不是随便写个命令行工具 AI 就能顺畅地用。如果你想给自己的产品做一个面向 AI 的 CLI,飞书的设计有几个值得参考的地方。
第一,help 文本是你最重要的文档。 AI 碰到不认识的 CLI,第一件事就是运行 --help
Usage: myctl deploy [flags]
第二,支持 dry-run,这是为 AI 设计的安全网。 AI 会自己做决策,有时候它理解错了你的意图,或者匹配到了不该动的数据。dry-run 相当于一个“预览”机制。
举个例子,你让 AI 帮你删除飞书多维表格里上个月的过期数据。如果直接执行,删错了就没了。加上 --dry-run
第三,错误信息要能指导下一步操作。 人看到 Permission denied
Permission denied
lark-cli auth login --scope "calendar:calendar:readonly"
第四,返回结构化数据,控制好输出量。 飞书 CLI 支持 json、csv、table 等多种输出格式。对人来说 table 更顺眼,对 AI Agent 来说 json 更可靠。好的 CLI 不只是能跑通,还要方便被别的工具消费。同时要控制输出量。AI 的上下文窗口有限,如果一个命令返回一万行日志,上下文就炸了。飞书 CLI 提供了分页参数(--page-limit
不管你是设计 CLI 的人还是用 CLI 的人,记住这条:让 Agent 动手之前,先让它 dry run 一遍。

装完之后,你动嘴,Agent 动手
装完之后用起来就是:你说一句话,Agent 去操作飞书把事情办了。
你开完会,跟 AI 说“把刚才会议里提到的所有待办都提出来,该发文档的发文档,该建任务的建任务”。AI 读会议纪要,拆解出待办事项,然后逐条执行:用 lark-cli doc create
lark-cli task create
lark-cli im send

你要约一个五人跨时区的会,跟 AI 说“帮我看看下周大家什么时候有空”。AI 去查每个人的日历和时区,推荐几个时间段,你选一个,会就建好了。
你甚至可以让 AI 在飞书文档里直接帮你写初稿,你在文档里留评论提意见,AI 读完评论自己改。整个协作过程不用离开飞书。
安装也简单,npm install -g @larksuite/cli
npx skills add https://github.com/larksuite/cli -y -g
过去四十年,计算机的界面进化方向一直是从 CLI 到 GUI,从文字到图标,从键盘到触屏,对人越来越友好。
AI Agent 时代,方向反过来了,软件的用户变成了 AI Agent。CLI 这个为文字世界设计的接口,恰好是 AI 最顺手的工具。

既然 Agent 成了软件新的用户增长点,那么像飞书提供 CLI 也不稀奇,与其等着社区来写 MCP 适配层,不如直接做一个 AI 原生的 CLI,完全开源,无需注册审批,让所有 AI Agent 都能接入。
这也带来一个绕不开的问题:Agent 的权限怎么给?不给权限,什么都做不了;权限太高,又怕 Agent 理解错意图干出不可逆的事。
这也带来一个绕不开的问题:Agent 的权限怎么给?不给权限,什么都做不了;权限太高,又怕 Agent 理解错意图干出不可逆的事。毕竟还做不到让 Agent 代你审批、代你发全员邮件。dry-run 能兜住一部分风险,但真正要让 Agent 在企业里大规模跑起来,权限体系、审计追踪、人机协作的边界,都还在摸索中。
但换个角度想,当年我们把公司的钱从保险柜搬到网银,把合同从纸质搬到电子签,也都是一步步摸索出来的。CLI 和 dry-run,可能就是这个过程里的第一步。
而飞书做这件事,其实有一个别人不太容易复制的优势:它本身在企业协作领域已经足够成熟,消息、文档、日历、审批、多维表格、任务,这些能力都是现成的。现在把这些能力通过 AI 原生的 CLI 全部开放出来,大概率会成为国内对 AI Agent 最开放、最友好的企业级接入入口。这件事的价值不止是多一个工具,更像是真正在为 Agent 时代搭建企业级基础设施,把权限、审计、组织能力开放给整个生态,对行业落地 AI Agent 会是很关键的一步。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み