Lark / Feishu CLI について
Lark と Feishu の公式 CLI で、プラットフォーム全体の複数の製品に対応しています。コーディングエージェント統合向けに設計された構造化 JSON 出力を提供します。メッセージング、ドキュメント、データベース、スプレッドシート、カレンダー、メール、タスク、会議に対応します。
主な機能
- 01カレンダーイベント、タスク、会議をコマンドラインから管理
- 02Lark Docs と Base データベースを作成・編集
- 03メッセージを送信、Messenger と Mail 機能にアクセス
- 04エージェント解析用に JSON 形式の構造化データを出力
活用シーン
- 01コーディングエージェントを通じてワークフロータスクとスケジュール設定を自動化
- 02Lark エコシステムを CLI 経由で開発ワークフローに統合
- 03Lark アプリケーション向けのセルフホスト可能なエージェントアシスタントを構築
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にlark --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
lark-cli
Lark/Feishu 公式 CLI ツールです。larksuite チームが保守しており、人間と AI エージェント向けに構築されています。Messenger、Docs、Base、Sheets、Slides、Calendar、Mail、Tasks、Meetings、Markdown などの中核的なビジネス領域をカバーし、200 以上のコマンドと 26 個の AI エージェント向けスキルを提供します。
インストール · AI エージェント向けスキル · 認証 · コマンド · 高度な使い方 · 個人利用またはエンタープライズ利用 · セキュリティ · コントリビュート
lark-cli を選ぶ理由
- エージェントネイティブ設計 — 24 個の構造化されたスキルが標準で含まれ、人気の AI ツールと互換性があります。エージェントは追加設定なしですぐに Lark を操作できます。
- 幅広いカバレッジ — 18 のビジネス領域、厳選された 200 以上のコマンド、26 個の AI エージェント向けスキルを提供します。
- AI フレンドリーで最適化済み — すべてのコマンドを実際のエージェントでテスト済みです。簡潔なパラメーター、スマートなデフォルト、構造化された出力により、エージェントの呼び出し成功率を最大限に高めます。
- オープンソース、利用の障壁なし — MIT ライセンスで、
npm installするだけですぐに使えます。 - 3 分で利用開始 — ワンクリックでアプリを作成し、対話形式でログインできます。インストールから最初の API 呼び出しまで、わずか 3 ステップです。
- 安全で制御可能 — 入力インジェクション対策、ターミナル出力のサニタイズ、OS ネイティブのキーチェーンによる認証情報の保存に対応しています。
- 3 層アーキテクチャ — ショートカット(人間と AI に使いやすい)→ API コマンド(プラットフォームと同期)→ Raw API(完全なカバレッジ)。適切な粒度を選べます。
個人利用またはエンタープライズ利用
| 利用者 | 推奨する方法 |
|---|---|
| 個人開発者 — ターミナル、または独自の AI エージェントとともに lark-cli を使用する方 | 以下のクイックスタートに従ってください。 |
| エンタープライズ IT/ISV — 集中管理された認証情報(データベース/Vault/設定センター)、統合監査ログ、制限されたコマンド範囲を用いて、独自のエージェントやプラットフォームに lark-cli を組み込む方 | エージェントへの lark-cli の組み込みとextension/パッケージをご覧ください。ラッパーの main を通じて拡張でき、CLI のソースを変更する必要はありません。 |
💡 AI エージェント向け: Open Platform のドキュメント URL の末尾に
.mdを付けると、生の Markdown として取得できます。例:embed-feishu-cli-in-agent.md。
機能
| カテゴリ | 機能 |
|---|---|
| 📅 カレンダー | イベントの表示、作成、更新、参加者の招待、会議室の検索、招待への出欠返信、空き状況と時間の候補の確認 |
| 💬 メッセンジャー | メッセージの送信と返信、グループチャットの作成と管理、チャット履歴とスレッドの表示、メッセージの検索、メディアのダウンロード |
| 📄 ドキュメント | ドキュメントの作成、読み取り、更新、検索、メディアとホワイトボードの読み書き |
| 📁 ドライブ | ファイルのアップロードとダウンロード、ドキュメントと Wiki の検索、コメントの管理 |
| 📝 Markdown | Drive ネイティブの .md ファイルの作成、取得、パッチ適用、上書き |
| 📊 Base | テーブル、フィールド、レコード、ビュー、ダッシュボード、ワークフロー、フォーム、ロールと権限の作成と管理、データの集計と分析 |
| 📈 スプレッドシート | スプレッドシートデータの作成、読み取り、書き込み、追加、検索、エクスポート |
| 🖼️ スライド | プレゼンテーションの作成と管理、プレゼンテーション内容の読み取り、スライドの追加または削除 |
| ✅ タスク | タスクの作成、検索、更新、完了、タスクリスト、サブタスク、コメントとリマインダーの管理 |
| 📚 Wiki | ナレッジスペース、ノード、ドキュメントの作成と管理 |
| 👤 連絡先 | 名前、メールアドレス、電話番号によるユーザー検索、ユーザープロフィールの取得 |
| 📧 メール | メールの閲覧、検索、読み取り、送信、返信、転送、下書きの管理、新着メールの監視 |
| 🎥 会議 | 開催中および過去の会議の検索、参加者と成果物の確認、トランスクリプトの分析、Minutes の管理、会議の支援 |
| 🕐 出席 | 個人の出席チェックイン記録の照会 |
| ✍️ 承認 | 承認タスクの照会、タスクの承認/却下/移管、インスタンスのキャンセルと CC |
| 🎯 OKR | OKR の照会、作成、更新、目標と主要な結果、連携、指標、進捗の管理。 |
| 📋 プロジェクト | Meegle — 単体の meegle-cli を介した作業項目、スケジュール、データの管理(別途インストール) |
| 🔗 アプリ | Spark/Miaoda アプリの作成、HTML/静的サイトの公開、クラウド生成の実行、アクセス範囲の管理 |
インストールとクイックスタート
要件
開始する前に、以下を用意してください。
- Node.js(
npm/npx) - Go
v1.23+ と Python 3(ソースからビルドする場合のみ必要)
クイックスタート(人間ユーザー向け)
AI アシスタント向けの注意: インストールを支援する AI エージェントの場合は、必要な手順がすべて記載されているクイックスタート(AI エージェント向け)に直接進んでください。
インストール
以下のいずれか1つの方法を選択してください。
オプション 1 — npm から(推奨):
npx @larksuite/cli@latest install
オプション 2 — ソースから:
Go v1.23+ と Python 3 が必要です。
git clone https://github.com/larksuite/cli.git
cd cli
make install
# Install CLI SKILL (required)
npx skills add larksuite/cli -y -g
設定と使用
# 1. Configure app credentials (one-time, interactive guided setup)
lark-cli config init
# 2. Log in (--recommend auto-selects commonly used scopes)
lark-cli auth login --recommend
# 3. Start using
lark-cli calendar +agenda
クイックスタート(AI エージェント)
以下の手順は AI エージェント向けです。一部の手順では、ユーザーがブラウザーで操作を完了する必要があります。
ステップ 1 — インストール
npx @larksuite/cli@latest install
ステップ 2 — アプリの認証情報を設定
このコマンドをバックグラウンドで実行します。認証 URL が出力されるので、抽出してユーザーに送信してください。ユーザーがブラウザーでセットアップを完了すると、コマンドは自動的に終了します。
lark-cli config init --new
ステップ 3 — ログイン
上記と同様に、バックグラウンドで実行し、認証 URL を抽出してユーザーに送信してください。
lark-cli auth login --recommend
ステップ 4 — 確認
lark-cli auth status
エージェントスキル
| スキル | 説明 |
|---|---|
lark-shared | アプリ設定、認証ログイン、ID の切り替え、スコープ管理、セキュリティルール(他のすべてのスキルで自動読み込み) |
lark-calendar | カレンダーイベント(作成/更新)、予定一覧、空き時間の照会、日時の提案、会議室の検索、出欠の返信 |
lark-im | メッセージの送信/返信、グループチャットの管理、メッセージ検索、画像やファイルのアップロード/ダウンロード、リアクション |
lark-doc | ドキュメントの作成、読み取り、更新、検索(Markdown ベース) |
lark-drive | ファイルのアップロード、ダウンロード、権限とコメントの管理 |
lark-markdown | Drive ネイティブの Markdown ファイルの作成、取得、パッチ適用、上書き |
lark-sheets | スプレッドシートの作成、読み取り、書き込み、追記、検索、エクスポート |
lark-slides | プレゼンテーションの作成と管理、コンテンツの読み取り、スライドの追加または削除 |
lark-base | テーブル、フィールド、レコード、ビュー、ダッシュボード、データ集計と分析 |
lark-task | タスク、タスクリスト、サブタスク、リマインダー、メンバーの割り当て |
lark-mail | メールの閲覧、検索、読み取り、送信、返信、転送、下書きの管理、新着メールの監視 |
lark-contact | 名前/メールアドレス/電話番号によるユーザー検索、ユーザープロフィールの取得 |
lark-wiki | ナレッジスペース、ノード、ドキュメント |
lark-event | リアルタイムイベントのサブスクリプション(WebSocket)、正規表現によるルーティングとエージェント向けフォーマット |
lark-meeting | 開催中または過去の会議の検索、参加者と成果物の確認、文字起こしの分析、Minutes の管理、会議での支援 |
lark-whiteboard | ホワイトボード/チャート DSL のレンダリング |
lark-openapi-explorer | 公式ドキュメントから基盤となる API を調査 |
lark-skill-maker | カスタムスキル作成フレームワーク |
lark-attendance | 個人の出勤チェックイン記録の照会 |
lark-approval | 承認タスクの照会、承認/却下/タスクの移管、インスタンスのキャンセルと CC |
lark-workflow-meeting-summary | ワークフロー:議事録の集約と構造化レポート |
lark-workflow-standup-report | ワークフロー:予定と ToDo の要約 |
lark-okr | OKR の照会、作成、更新、目標と主要な成果、アラインメント、指標の管理。 |
認証
| コマンド | 説明 |
|---|---|
auth login | 対話形式での選択、またはスコープ指定の CLI フラグによる OAuth ログイン |
auth logout | サインアウトし、保存済みの認証情報を削除します |
auth status | 現在のログイン状態と許可されたスコープを表示します |
auth check | 特定のスコープを確認します(終了コード 0 = OK、1 = 不足) |
auth scopes | アプリで利用可能なすべてのスコープを一覧表示します |
auth list | 認証済みユーザーをすべて一覧表示します |
# Interactive login (TUI guides domain and permission level selection)
lark-cli auth login
# Filter by domain
lark-cli auth login --domain calendar,task
# Recommended auto-approval scopes
lark-cli auth login --recommend
# Exact scope
lark-cli auth login --scope "calendar:calendar:read"
# Agent mode: return verification URL immediately, non-blocking
lark-cli auth login --domain calendar --no-wait
# Resume polling later
lark-cli auth login --device-code <DEVICE_CODE>
# DPoP (Demonstrating Proof of Possession) is enabled in preferred mode by default for new local credentials
lark-cli config set dpop preferred
# Or disable DPoP
lark-cli config set dpop disabled
# Or require DPoP without Bearer fallback
lark-cli config set dpop required
# Re-authorize after choosing a different policy
lark-cli auth login
# Identity switching: execute commands as user or bot
lark-cli calendar +agenda --as user
lark-cli im +messages-send --as bot --chat-id "oc_xxx" --text "Hello"
3 層のコマンドシステム
CLI では、簡単な操作から完全にカスタムな API 呼び出しまで対応する、粒度の異なる 3 つのレベルを提供します。
1. ショートカット
+ で始まり、人間にも AI にも使いやすいよう設計されています。スマートなデフォルト設定、テーブル形式の出力、ドライランのプレビューを備えています。
lark-cli calendar +agenda
lark-cli im +messages-send --chat-id "oc_xxx" --text "Hello"
lark-cli docs +create --doc-format markdown --content $'<title>Weekly Report</title>\n# Progress\n- Completed feature X'
すべてのショートカットコマンドを確認するには、lark-cli <service> --help を実行してください。
2. API コマンド
Lark OAPI のメタデータから自動生成され、評価と品質ゲートを経て精選されています。プラットフォームのエンドポイントに 1 対 1 で対応する 100 以上のコマンドがあります。
lark-cli calendar calendars list
lark-cli calendar events instance_view --params '{"calendar_id":"primary","start_time":"1700000000","end_time":"1700086400"}'
3. 生の API 呼び出し
任意の Lark Open Platform エンドポイントを直接呼び出せ、2500 以上の 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\"}"}'
高度な使い方
出力形式
--format json # Full JSON response (default)
--format pretty # Human-friendly formatted output
--format table # Readable table
--format ndjson # Newline-delimited JSON (for piping)
--format csv # Comma-separated values
JSON 出力の仕様
--format json(デフォルト)では、成功とエラーのエンベロープは区別されています。
成功時は stdout に出力され、終了コードは 0 です。
{ "ok": true, "identity": "user", "data": { "guid": "..." }, "meta": { "count": 1 } }
エラー時は stderr に出力され、終了コードはゼロ以外です。
{ "ok": false, "identity": "user", "error": { "type": "api", "subtype": "...", "code": 99991679, "message": "...", "hint": "..." } }
コマンドが成功したかどうかを確認するには、code == 0 ではなく、ok == true(または終了コード)を確認してください。生の OpenAPI レスポンス({"code": 0, "msg": "ok", ...})とは異なり、成功エンベロープには code フィールドも msg フィールドもありません。code が現れるのは error 内だけで、上流の OpenAPI コードを示します。エラー分類の詳細については、errs/ERROR_CONTRACT.md を参照してください。
ページネーション
--page-all # Auto-paginate through all pages
--page-limit 5 # Max 5 pages
--page-delay 500 # 500ms between page requests
ドライラン
副作用が発生する可能性のあるコマンドでは、まず --dry-run でリクエストをプレビューしてください。
lark-cli im +messages-send --chat-id oc_xxx --text "hello" --dry-run
スキーマの確認
スキーマを使って、任意の API メソッドのパラメーター、リクエストボディ、レスポンス構造、対応する ID の種類、スコープを確認できます。
lark-cli schema
lark-cli schema calendar.events.instance_view
lark-cli schema im.messages.delete
セキュリティとリスクに関する警告(使用前にお読みください)
このツールは、AI エージェントによって呼び出され、Lark/Feishu Open Platform の操作を自動化できます。モデルのハルシネーション、予測不能な実行、プロンプトインジェクションなどの固有のリスクがあります。Lark/Feishu の権限を許可すると、AI エージェントは許可された範囲内でユーザーの本人確認情報を使って動作するため、機密データの漏えいや許可されていない操作など、重大なリスクにつながるおそれがあります。慎重にご使用ください。
こうしたリスクを軽減するため、このツールでは複数のレイヤーでセキュリティ保護がデフォルトで有効になっています。ただし、リスクがなくなるわけではありません。デフォルトのセキュリティ設定は変更しないことを強くおすすめします。関連する制限を緩和すると、リスクが大幅に高まり、その結果についてはお客様が責任を負うことになります。
このツールと連携する Lark/Feishu ボットは、プライベートな会話型アシスタントとして使用することをおすすめします。権限の悪用やデータ漏えいを防ぐため、グループチャットに追加したり、ほかのユーザーがボットとやり取りできるようにしたりしないでください。
アクセストークンの窃取に伴うセキュリティリスクを軽減するため、CLI は、正式な Feishu/Lark の HTTPS ドメインと完全に一致する宛先への OpenAPI リクエストに、最小限のリスク管理シグナルを付加します。これらのシグナルは、異常な API アクティビティの検出に役立てられます。この保護機能はデフォルトで有効です。送信される情報は次の項目に限られます。
- OS の種類:macOS、Windows、または Linux
- デバイスのハードウェアモデル:例:Mac17,9
現在のワークスペースでこの保護機能を無効にするには、次を実行します。
lark-cli config risk-control off
現在のワークスペースでこの保護機能を有効にするには、次を実行します。
lark-cli config risk-control on
現在のワークスペースのポリシーをデフォルトに戻すには、次を実行します。
lark-cli config risk-control default
使用に伴うすべてのリスクを十分にご理解ください。このツールを使用することで、関連するすべての責任を自発的に負うものとみなされます。
コントリビューション
コミュニティからの貢献を歓迎します。バグを見つけた場合や機能に関する提案がある場合は、Issue または Pull Request を送信してください。
大規模な変更については、まず Issue で相談することをおすすめします。
PR を作成する前に、コントリビューターおよび AI エージェント向けのローカルビルド、テスト、PR のチェックリストが記載された AGENTS.md をご覧ください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。 実行時に、Lark/Feishu Open Platform API を呼び出します。これらの API を使用するには、次の利用規約およびプライバシーポリシーに従う必要があります。