cli:從文件拆解功能、限制與採用條件
Lark/飛書官方 CLI 工具,由 Larksuite 團隊維護,專為人類和 AI 智能體打造。涵蓋Messenger、Docs、Base、Sheets、Calendar、Mail、Tasks、Meetings等核心業務領域,擁有200多個命令和20多個AI代理技能。
秒懂
- 它是什麼?
- The official Lark/Feishu CLI tool, maintained by the larksuite team, built for humans and AI Agents. Covers core business domains including Messenger, Docs, Base, Sheets, Calendar, Mail, Tasks, Meetings, and more, with 200+ commands and 20+ AI Agent Skills.。本文整理 larksuite/cli 的使用入口、依賴條件、功能邊界與專案專屬核驗方式。
- 適合誰用?
- cli 適合需要 README 所列能力,且能管理其環境、資料與權限的使用者;不適合把教學範例或文件未說明的行為當成正式保證。先執行:執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。
- 可以商用嗎?
- 可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
- 還在維護嗎?
- 有在維護。儲存庫在最近一天內有新的提交。
- 用什麼語言寫的?
- 主要是 Go(依據 GitHub 的語言統計)。
以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。
開源專案深度解析
cli:倉庫定位與涵蓋範圍
larksuite/cli 是 larksuite 團隊維護的官方 Lark/飛書命令列工具,README 將其描述為「為人類和 AI Agent 建構」。它涵蓋 Messenger、Docs、Base、Sheets、Slides、Calendar、Mail、Tasks、Meetings、Markdown 等 18 個業務域,提供 200 多個指令和 26 個 AI Agent Skills。倉庫元資料顯示該專案使用 Go 語言編寫,目前有 16168 個 star、1283 個 fork、501 個未關閉 issue,且未被封存。README 未明確說明這些數字背後的活躍維護節奏,也未提供具體版本號。
執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 這項核對只針對 larksuite/cli 已列出的功能與產物,文件未說明的效能、相容性或安全結果不延伸成保證。
cli:安裝與快速開始
README 給出了兩條安裝路徑。推薦方式是透過 npm 執行 `npx @larksuite/cli@latest install`;從原始碼建構則需要 Go v1.23+ 和 Python 3,先複製倉庫,再執行 `make install`,隨後執行 `npx skills add larksuite/cli -y -g` 來安裝 CLI SKILL。安裝後需要依序執行 `lark-cli config init` 設定應用程式憑證、`lark-cli auth login --recommend` 登入,然後即可使用,例如 `lark-cli calendar +agenda`。README 聲稱從安裝到首次 API 呼叫只需 3 步,但未說明具體耗時。
cli:面向 AI Agent 的快速開始
AI Agent 的安裝步驟與人類使用者相同,但設定和登入指令需要背景執行,以輸出授權 URL 並傳送給使用者,使用者完成瀏覽器操作後指令自動結束。具體步驟為:執行 `npx @larksuite/cli@latest install`、`lark-cli config init --new` 輸出授權 URL、`lark-cli auth login --recommend` 再次輸出授權 URL,最後用 `lark-cli auth status` 驗證。README 特別提醒,部分步驟需要使用者在瀏覽器中完成操作。需要注意的是,README 並未說明這些指令在 CI/CD 等無瀏覽器環境下的行為。
cli:認證方式與身分切換
認證相關指令包括 `auth login`、`auth logout`、`auth status`、`auth check`、`auth scopes` 和 `auth list`。`auth login` 支援互動式 TUI 選擇域和權限級別,也支援 `--domain calendar,task` 按域過濾、`--recommend` 使用推薦的自動審批作用域、`--scope "calendar:calendar:read"` 指定精確作用域,以及 `--no-wait` 的 Agent 模式,該模式會立即傳回驗證 URL,之後可透過 `--device-code` 恢復輪詢。身分切換透過 `--as user` 或 `--as bot` 實現,例如 `lark-cli calendar +agenda --as user` 和 `lark-cli im +messages-send --as bot --chat-id "oc_xxx" --text "Hello"`。README 未說明這些作用域的具體權限清單或過期策略。
cli:三層指令系統
CLI 提供三層指令粒度。第一層是 Shortcuts,以 `+` 為前綴,設計為對人類和 AI 友善,帶有智慧預設值、表格輸出和 dry-run 預覽,例如 `lark-cli calendar +agenda`。第二層是 API Commands,從 Lark OAPI 中繼資料自動產生,經過評估和品質門控,100 多個指令與平台端點一一對應,例如 `lark-cli calendar calendars list`。第三層是 Raw API Calls,可以直接呼叫任何 Lark Open Platform 端點,涵蓋 2500+ 個 API,例如 `lark-cli api GET /open-apis/calendar/v4/calendars`。README 未說明這三層指令的數量是否會隨平台 API 更新而自動同步。
cli:輸出格式與錯誤契約
輸出格式支援 `--format json`(預設)、`--format pretty`、`--format table`、`--format ndjson` 和 `--format csv`。JSON 輸出有明確的成功和錯誤信封:成功時輸出到 stdout,退出碼為 0,格式為 `{ "ok": true, "identity": "user", "data": { "guid": "..." }, "meta": { "count": 1 } }`;錯誤時輸出到 stderr,退出碼非零,格式為 `{ "ok": false, "identity...", "error": { "type": "api", "subtype": "...", "code": 99991679, "message": "...", "hint": "..." } }`。README 強調判斷成功應檢查 `ok == true` 或退出碼,而不是 `code == 0`,因為成功信封中沒有 `code` 欄位,`code` 只出現在錯誤物件中作為上游 OpenAPI 代碼。完整的錯誤分類見 `errs/ERROR_CONTRACT.md`,但 README 未列出該檔案的具體內容。
cli:安全風險與預設保護
README 明確警告,該工具可被 AI Agent 呼叫,存在模型幻覺、不可預測執行和提示注入等風險,授權後 AI Agent 會在使用者身分下執行操作,可能導致敏感資料外洩或未經授權的操作。預設啟用的安全保護包括輸入注入防護、終端輸出清洗和 OS 原生鑰匙圈憑證儲存。,CLI 在向官方 Feishu/Lark HTTPS 域名傳送 OpenAPI 請求時,會附加最小化的風險控制訊號,包括作業系統類型和裝置硬體型號,可透過 `lark-cli config risk-control off` 關閉、`on` 開啟、`default` 恢復預設策略。README 強調不建議修改預設安全設定,且建議將整合的機器人用作私人助理,不要加入群聊。
cli:許可證與外部協議
專案採用 MIT 許可證,版權歸 Lark Technologies Pte. Ltd.。MIT 許可證授予使用、複製、修改、合併、發布、分發、再許可和出售軟體副本的權利,但軟體按「原樣」提供,不附帶任何明示或暗示的保證。README 還指出,執行時呼叫 Lark/飛書開放平台 API,使用者必須遵守飛書使用者服務條款、隱私政策、開放平台應用服務商安全管理規範,以及 Lark 的使用者服務條款和隱私政策。許可證文字未涉及安全保證、支援承諾或生產環境適用性。
針對 cli 的第 1 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 2 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 3 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 4 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 5 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 6 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 7 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 8 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 9 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 10 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 11 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 12 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 13 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
針對 cli 的第 14 次核對,執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 將觀察結果寫入測試紀錄,若 README 沒有對應說明則標為待確認,不以推測補足。
編輯結論
cli 適合需要 README 所列能力,且能管理其環境、資料與權限的使用者;不適合把教學範例或文件未說明的行為當成正式保證。先執行:執行 npx @larksuite/cli@latest install、lark-cli config init、lark-cli auth login --recommend,再用 lark-cli auth status 和 lark-cli calendar +agenda 核對身份、作用域、ok 信封與退出碼。 再依具體輸出決定是否納入流程。
社群筆記