飛書(shū)、Google、Stripe、ElevenLabs、網(wǎng)易云音樂(lè)。
最近幾個(gè)月,一群看起來(lái)毫不相關(guān)的公司不約而同做了同一件事:發(fā)布 CLI 工具。
Karpathy 最近寫(xiě)了一篇文章記錄自己用 AI 做 app 的全過(guò)程。
他大部分時(shí)間不是在寫(xiě)代碼,主要是在瀏覽器標(biāo)簽之間跳來(lái)跳去,配 API Key、改 DNS、填環(huán)境變量。
他的原話(huà)是:
"你的服務(wù)應(yīng)該有一個(gè) CLI 工具。不要讓開(kāi)發(fā)者去訪(fǎng)問(wèn)、查看或點(diǎn)擊。直接指示和賦能他們的 AI。"
2026 年了,為什么大家突然回去做"命令行"這種看起來(lái)很復(fù)古的東西?
CLI 到底是什么
如果你不是程序員,CLI 聽(tīng)起來(lái)很技術(shù)。其實(shí)概念很簡(jiǎn)單。
GUI(圖形界面)是打開(kāi) app,看到按鈕菜單,鼠標(biāo)點(diǎn)來(lái)點(diǎn)去。
CLI(命令行)是打開(kāi)一個(gè)黑色窗口,敲一行文字,按回車(chē),事情做完了。
打個(gè)比方:GUI 是去餐廳看菜單、指給服務(wù)員"我要這個(gè)"。
CLI 是直接對(duì)廚房喊"宮保雞丁,少油,多辣"。結(jié)果一樣,但 CLI 更精確,更容易被自動(dòng)化。
那為什么 CLI 和 AI 特別適配?因?yàn)?AI 就是"文字進(jìn)、文字出"的。GUI 是給眼睛看的,AI 沒(méi)有眼睛。
CLI 是純文字的,AI 天生就在這個(gè)世界里運(yùn)作。
AI 想幫你壓縮視頻,不需要打開(kāi) Premiere 找導(dǎo)出按鈕。它跑一行ffmpeg -i input.mp4 -crf 28 output.mp4就完事了。
人類(lèi)沒(méi)有重新愛(ài)上命令行。是 AI 原本就生活在命令行里。
![]()
AI 的能力邊界在哪?
很多人把 AI 想象成全知全能的大腦。
更準(zhǔn)確的比喻是:一個(gè)非常聰明的新員工,什么都能學(xué),學(xué)得快,但需要兩樣?xùn)|西,工具和說(shuō)明書(shū)。
裝了 ffmpeg,AI 能處理視頻。裝了飛書(shū) CLI,AI 能幫你查日程、發(fā)消息。
裝了 Google Workspace CLI,AI 能管你的郵箱和云盤(pán)。
沒(méi)裝?"不好意思,這個(gè)我做不了。"
ffmpeg:一款開(kāi)源音視頻處理工具,幾乎是視頻處理的行業(yè)標(biāo)準(zhǔn)。brew install ffmpeg就能裝上,AI 從此能幫你壓縮視頻、轉(zhuǎn)格式、截片段。
AI 的實(shí)際能力 = 它能調(diào)用的工具 + 它拿到的上下文。
工具好理解。"上下文"是什么?簡(jiǎn)單說(shuō)就是說(shuō)明書(shū)。
對(duì)于 ffmpeg 這種經(jīng)典工具,AI 在訓(xùn)練時(shí)已經(jīng)見(jiàn)過(guò)海量用法,不需要額外說(shuō)明書(shū)。
但飛書(shū) CLI 是 2026 年剛發(fā)布的,AI 的訓(xùn)練數(shù)據(jù)里完全沒(méi)有,你不給說(shuō)明書(shū),AI 根本不知道它存在。
所以新一代 CLI 工具都自帶一種叫 Skills 的文件,本質(zhì)就是 Markdown 寫(xiě)的說(shuō)明書(shū),告訴 AI 這個(gè)工具能做什么、怎么用。
這里有個(gè)推論值得注意:工具越新,AI 越依賴(lài)這種顯式說(shuō)明書(shū)。
訓(xùn)練數(shù)據(jù)永遠(yuǎn)追不上工具發(fā)布速度,說(shuō)明書(shū)只會(huì)越來(lái)越重要。
![]()
CLI 正在被重新發(fā)明
過(guò)去的 CLI 和現(xiàn)在的 CLI,雖然都叫 CLI,已經(jīng)是兩種東西了。
傳統(tǒng) CLI,比如 ffmpeg、jq、curl,是給程序員用的。
輸出是給人眼看的彩色文字。遇到需要選擇的時(shí)候會(huì)彈交互式菜單,對(duì)人來(lái)說(shuō)很自然,但 AI 遇到這種彈窗直接卡住。
新一代 CLI 從設(shè)計(jì)之初就假設(shè)調(diào)用者可能是 AI:
所有操作通過(guò)參數(shù)一次性傳入,不彈菜單;
輸出 JSON 格式,AI 直接解析;自帶 Skills 說(shuō)明書(shū);
支持--dry-run預(yù)覽,讓 AI 執(zhí)行前先看看會(huì)發(fā)生什么;
AI 還能問(wèn)工具"你有哪些命令?需要什么參數(shù)?"不用讀完整文檔。
拿飛書(shū) CLI 舉例:裝完以后 200 多條命令,覆蓋日歷、消息、文檔、任務(wù)、郵箱等 11 個(gè)領(lǐng)域。
你說(shuō)"幫我看看明天有什么安排",AI 調(diào)用lark-cli calendar +agenda;
說(shuō)"給張三發(fā)條消息說(shuō)會(huì)議改到三點(diǎn)",AI 調(diào)用對(duì)應(yīng)的消息命令。整個(gè)過(guò)程不用打開(kāi)飛書(shū) app。
Google Workspace CLI 更極端,一條命令啟動(dòng)一個(gè) MCP 服務(wù),讓 AI 直接通過(guò)標(biāo)準(zhǔn)協(xié)議操作 Gmail、Google Drive、Google Calendar。
MCP(Model Context Protocol):AI 與外部服務(wù)之間的標(biāo)準(zhǔn)通信協(xié)議,下節(jié)有完整解釋。
![]()
CLI 正在變成 AI 的萬(wàn)能插件
這里說(shuō)一個(gè)我在做 CodePilot 過(guò)程中觀察到的現(xiàn)象,目前還很少被討論到。
先用一句話(huà)解釋三個(gè)概念:
MCP:AI 和外部服務(wù)之間的標(biāo)準(zhǔn)通信協(xié)議。你可以理解成 AI 世界的 USB 接口。
Skills:告訴 AI"這個(gè)工具怎么用"的說(shuō)明書(shū)。
Plugin:把工具、協(xié)議、說(shuō)明書(shū)打包在一起的可安裝擴(kuò)展。類(lèi)似手機(jī)上的 App。
AI 圈一直在討論這三個(gè)東西哪個(gè)會(huì)成為主流。
但你仔細(xì)看新一代 CLI 在做什么,會(huì)發(fā)現(xiàn)它們把這三樣全打包了。
Google Workspace CLI 就是典型:CLI 命令提供執(zhí)行能力,內(nèi)置 MCP 服務(wù)提供標(biāo)準(zhǔn)通信協(xié)議,自帶 Skills 文件充當(dāng)使用說(shuō)明書(shū)。
飛書(shū) CLI、Stripe CLI、ElevenLabs CLI、網(wǎng)易云音樂(lè) CLI,全是這個(gè)模式。
一個(gè) CLI 工具就是一個(gè)事實(shí)上的 Plugin。
但它比 Plugin 多了幾個(gè)好處。
Claude Code 的 Plugin 只能在 Claude Code 里用。
飛書(shū) CLI 裝了以后,Claude Code、Cursor、Gemini CLI 都能用,不鎖平臺(tái)。
這一點(diǎn)在國(guó)內(nèi)尤其重要,因?yàn)楸娝苤脑颍脩?hù)可能今天接 Claude,明天換 DeepSeek,后天試 Qwen。
CLI 不關(guān)心調(diào)用它的是哪個(gè)模型,它是模型無(wú)關(guān)的執(zhí)行層。
Plugin 商城有審核流程,CLI 工具往 npm 上 publish 就上線(xiàn)了,跟發(fā)網(wǎng)站一樣自由。
而且人也能用,不裝 AI 也能在終端里直接敲命令,開(kāi)發(fā)者有更大的動(dòng)力去做和維護(hù)。
npm:開(kāi)發(fā)者版本的 App Store,大量命令行工具通過(guò)它分發(fā)安裝。運(yùn)行npm install -g 工具名就能裝上。
CLI 還有一個(gè) Plugin 做不到的事:
組合。gws gmail +triage | jq '.messages[]',兩個(gè)工具用管道串起來(lái),前一個(gè)的輸出變成后一個(gè)的輸入。
Shell 管道這個(gè)幾十年前的設(shè)計(jì),在 AI 時(shí)代突然又變得值錢(qián)了。Plugin 之間是隔離的,沒(méi)有標(biāo)準(zhǔn)的組合方式。
大家在爭(zhēng) MCP、Skills、Plugin 哪個(gè)會(huì)贏,答案可能是 CLI 把它們?nèi)虬耍铱缙脚_(tái)。
![]()
但事情沒(méi)那么美好
說(shuō)了這么多好處,該說(shuō)問(wèn)題了。
CLI 最大的結(jié)構(gòu)性缺陷是安全。
Plugin 在平臺(tái)沙箱里跑,有聲明式權(quán)限控制。
CLI 是直接執(zhí)行 shell 命令,AI 一旦能跑gws,就能用這個(gè)身份做任何事。
沒(méi)有"只讀不寫(xiě)"的細(xì)粒度控制。目前靠--dry-run和彈窗確認(rèn)來(lái)補(bǔ)救,但跟平臺(tái)級(jí)權(quán)限框架比,差距很大。
沙箱:一種隔離運(yùn)行機(jī)制,類(lèi)似手機(jī) App 的權(quán)限彈窗——"是否允許訪(fǎng)問(wèn)相機(jī)?"。程序只能做它被允許做的事,出了問(wèn)題也不影響系統(tǒng)其他部分。
具體到實(shí)際使用,我在 CodePilot 里接入各種 CLI 工具的過(guò)程中也踩了不少坑。
第一個(gè):說(shuō)明書(shū)太大,AI 腦子撐爆了。
有些工具有非常大的 Skills 文件。AI 的上下文窗口有容量限制,這一個(gè)文件就占掉一大塊,加載完推理質(zhì)量明顯下降。
對(duì)比之下,Google Workspace CLI 的 Skills 文件平均 1.6KB,精準(zhǔn)給 AI 需要的信息,不多不少。
第二個(gè):交互式提示卡死 AI。
Stripe CLI 早期版本彈? Which environment?選擇菜單,人覺(jué)得挺自然,AI 直接卡住不動(dòng)了。后來(lái)加了--no-interactive才解決。
第三個(gè):輸出太長(zhǎng),淹沒(méi)有用信息。
一個(gè)查詢(xún)返回幾萬(wàn)字符 JSON,全灌進(jìn)上下文,真正需要的信息反而找不到了。
Google Workspace CLI 用 field masks 控制返回大小,這個(gè)設(shè)計(jì)目前很少有工具跟進(jìn)。
field masks:調(diào)用 API 時(shí)指定只返回哪些字段,而不是把所有數(shù)據(jù)都倒回來(lái)。查郵件只要主題和發(fā)件人,不要正文,上下文省一大塊。
這幾個(gè)問(wèn)題有一個(gè)共同根源:
"為 AI 設(shè)計(jì)"和"在 AI 中驗(yàn)證"是兩件事。就像移動(dòng)端適配,設(shè)計(jì)稿上看著響應(yīng)式?jīng)]問(wèn)題,真機(jī)上按鈕根本點(diǎn)不到。
![]()
我的實(shí)驗(yàn):讓 AI 管理自己的工具
做 CodePilot 的 CLI 管理功能時(shí),我經(jīng)歷了一次思路轉(zhuǎn)變。
一開(kāi)始是傳統(tǒng)軟件思路:
寫(xiě)代碼嗅探用戶(hù)系統(tǒng)裝了什么、寫(xiě) UI 讓用戶(hù)在界面上管理工具、寫(xiě)邏輯檢測(cè)更新。標(biāo)準(zhǔn)做法。
后來(lái)想明白了一個(gè)問(wèn)題:我產(chǎn)品里已經(jīng)有 AI 了,為什么要繞過(guò)它?
安裝工具,直接拉起對(duì)話(huà)讓 AI 來(lái)。
AI 讀--help,判斷操作系統(tǒng),處理權(quán)限錯(cuò)誤,引導(dǎo)認(rèn)證配置。
安裝報(bào)錯(cuò)了它能讀錯(cuò)誤信息自己判斷,要不要 sudo?先裝個(gè)依賴(lài)?
注冊(cè)工具也一樣,給 AI 一個(gè)提示詞模板,讀完--help自動(dòng)生成結(jié)構(gòu)化描述,工具能做什么、怎么用、典型場(chǎng)景。
sudo:macOS/Linux 上臨時(shí)獲取系統(tǒng)管理員權(quán)限的命令。安裝某些工具需要寫(xiě)入系統(tǒng)目錄,普通權(quán)限不夠,加 sudo 才行。
別用軟件幫用戶(hù)管理 AI 的工具,讓 AI 管理自己的工具。
每個(gè)工具的情況都不一樣,用代碼寫(xiě)死安裝邏輯是寫(xiě)不完的。
但 AI 能處理這種開(kāi)放式問(wèn)題。把工具安裝變成 AI 任務(wù),比寫(xiě)一個(gè)覆蓋所有邊界情況的安裝器靠譜得多。
![]()
我還做了一個(gè) 5 維 Agent 兼容度評(píng)分,從是否為 AI 設(shè)計(jì)、是否支持結(jié)構(gòu)化輸出、是否支持自查、是否支持預(yù)覽、是否注意上下文大小五個(gè)方面去打分。
說(shuō)實(shí)話(huà)這個(gè)評(píng)分更多是一個(gè)呼吁:希望工具開(kāi)發(fā)者開(kāi)始想"我的 CLI 對(duì) AI 友好嗎?"
![]()
還缺什么?
CLI 正在成為 AI 能力擴(kuò)展的基礎(chǔ)設(shè)施,但有幾個(gè)明顯缺口。
你怎么知道"有個(gè)飛書(shū) CLI 能讓 AI 操作飛書(shū)"?
目前基本靠口口相傳。npm 和 GitHub 最有條件做 AI 工具的 App Store,但它們沒(méi)這個(gè)動(dòng)力。發(fā)現(xiàn)機(jī)制是空白的。
認(rèn)證也是問(wèn)題。
飛書(shū)一套登錄,Google 一套,Stripe 一套,裝五個(gè)工具登錄五次。對(duì)普通用戶(hù)來(lái)說(shuō)摩擦太大了。
安裝體驗(yàn)也不靠譜。
npm、brew 是十幾年前設(shè)計(jì)的,假設(shè)使用者是懂命令行的開(kāi)發(fā)者。
當(dāng)操作者變成 AI,權(quán)限問(wèn)題、依賴(lài)缺失、路徑?jīng)_突這些"查 Stack Overflow 就能解決"的問(wèn)題,變成了真正的障礙。
Homebrew(brew):macOS 上最流行的包管理器,專(zhuān)門(mén)用來(lái)安裝命令行工具。brew install ffmpeg裝 ffmpeg,brew install jq裝 jq,就這么簡(jiǎn)單。
行業(yè)不缺工具,不缺協(xié)議,不缺說(shuō)明書(shū)。
缺的是讓這三樣?xùn)|西被發(fā)現(xiàn)、被安裝、被信任的那一層基礎(chǔ)設(shè)施。
誰(shuí)做出來(lái)這個(gè),誰(shuí)就是 AI 時(shí)代的 npm。
![]()
所以,為什么大家都在做 CLI?
大家意識(shí)到 CLI 可能是當(dāng)下效率最高的 AI 能力分發(fā)方式。
一個(gè) CLI 工具同時(shí)包含執(zhí)行能力、通信協(xié)議和使用說(shuō)明,就是一個(gè)完整的 AI 插件。
跨平臺(tái),免審核,人和 AI 都能用。
每多裝一個(gè)好用的 CLI 工具,你的 AI 就多一項(xiàng)技能。每少一分多余的上下文噪音,你的 AI 就聰明一點(diǎn)。
我們正處在一個(gè)混亂的新舊交替時(shí)代。
舊的格式、舊的數(shù)據(jù)壁壘、舊的包管理器,和新的 AI 原生工具鏈交織在一起。
CLI 不是唯一的答案,但它是目前最務(wù)實(shí)的那一個(gè)。
![]()
好了,以上就是今天的內(nèi)容。如果覺(jué)得寫(xiě)得還不錯(cuò)的話(huà),可以幫我點(diǎn)個(gè)贊,或者轉(zhuǎn)發(fā)給你需要的朋友。
這里嘗試 CodePilot:https://github.com/op7418/CodePilot
引用:
[1] 過(guò)了個(gè)年,AI 圈變天了?但沒(méi)人告訴你為什么 — https://mp.weixin.qq.com/s/z7zNi_DayzevcTe0EUTv5g
[2] You Need to Rewrite Your CLI for AI Agents — https://justin.poehnelt.com/posts/rewrite-your-cli-for-ai-agents/
[3] Stripe Projects CLI — https://docs.stripe.com/projects
[4] Building CLIs for agents — https://x.com/ericzakariasson/status/2036762680401223946
[5] MenuGen — https://karpathy.bearblog.dev/vibe-coding-menugen/
[6] Google Workspace CLI — https://github.com/googleworkspace/cli
[7] 飛書(shū) CLI — https://github.com/larksuite/cli
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶(hù)上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.