大家好,我是程序員魚皮。
最近不知道大家有沒有注意到,互聯(lián)網(wǎng)大廠的風向又變了。
Google 率先開源了 Workspace CLI,緊接著短短一周之內(nèi),飛書、釘釘、企業(yè)微信不約而同地在 GitHub 上開源了自己的 CLI 工具。
![]()
一時間,CLI 這個計算機世界里最古老的交互方式,突然又火了。
有朋友說自己去大廠面試被問到了 CLI,結(jié)果他一臉懵逼:
奇了怪了,CLI 不就是黑不拉幾的命令行窗口嗎?都什么年代了,各大廠不去卷更漂亮的界面,反而集體開起了倒車?
![]()
這篇文章,我會依次分享:
什么是 CLI?
怎么用 CLI?
為什么大廠都在卷 CLI?
有哪些 CLI 開源項目?
怎么自己做個 CLI?
一次性把 CLI 給你講明白,建議收藏~
什么是 CLI?
CLI 全稱 Command Line Interface,翻譯過來就是命令行界面。
說白了,就是你在一個小黑框里敲文字命令來操作電腦。
![]()
和它對應(yīng)的,是我們每天都在用的 GUI(Graphical User Interface),也就是圖形界面。你平時在手機上看到的那些圖標、在電腦上看到的那些窗口和按鈕,這些都是 GUI。
舉個例子,假設(shè)你想把電腦桌面上的一張圖片移動到另一個文件夾。用 GUI 的話,你會打開文件管理器,找到圖片,用鼠標拖過去放進目標文件夾。
使用 CLI 的話,你打開終端,敲一行命令就搞定了:
mv ~/yupidog.png ~/Downloads
再比如切視頻、批量改文件名、查服務(wù)器日志,這些用 GUI 要點好多步的操作,CLI 往往一行命令就搞定了。
顯然,CLI 的特點就是 簡潔直接,一條命令干一件事,干凈利落。
但是,如果想用好 CLI,要求你記住大量命令和參數(shù),這對普通用戶來說門檻太高了。
想象一下我那只會用電腦玩斗地主和捕魚的爸媽,讓他們打開終端敲命令?玩呢?
![]()
其實 CLI 是計算機最原始的交互方式。在很久以前,電腦壓根兒就沒有圖形界面,所有操作全靠命令行完成。后來 GUI 出現(xiàn)了,普通用戶才終于告別了小黑框。從那以后,GUI 一路高歌猛進,成了絕對的主流。廠商們想方設(shè)法把界面做得更好看、更好用,按鈕越做越大,交互越做越順滑,一切都是為了讓人類用起來更舒服。
但 CLI 從來沒有消失,很多程序員朋友們都在用命令行管理服務(wù)器、部署項目。而且有些學編程的朋友寫的第一行代碼 Hello World,可能就是在命令行里跑起來的。
長期以來,CLI 一直是程序員的專屬技能,甚至熟不熟悉命令行是區(qū)分老手和新手的標志之一。
不過現(xiàn)在 AI 時代來了,技術(shù)越來越大眾化,CLI 正在重新站到聚光燈下。
上手試試 CLI
使用 CLI 最簡單的方式,就是打開你電腦自帶的終端。
Mac 用戶在應(yīng)用程序里找到 “終端”,Windows 用戶搜索 “PowerShell” 或者 “命令提示符”,打開之后你會看到一個等待輸入的光標。
試著敲一行:
date
電腦會直接返回當前的日期和時間。
這就是最簡單的 CLI 交互了,你輸入一條命令,電腦返回一個結(jié)果,沒有花里胡哨的界面。
![]()
但這只是最基礎(chǔ)的用法,現(xiàn)代 CLI 能做的事情遠遠不止這些。
比如最近飛書剛開源的 Lark CLI,這個工具可以讓你在終端里直接操作飛書的消息、日歷、文檔等功能。
![]()
首先輸入一行命令安裝:
npm install -g @larksuite/cli
裝好之后,先配置一下應(yīng)用信息:
lark-cli config init --new
打開鏈接配置飛書 CLI 應(yīng)用:
![]()
創(chuàng)建應(yīng)用成功后,需要登錄授權(quán),按需選擇你允許通過 CLI 操作的業(yè)務(wù):
lark-cli auth login
跟著 CLI 的引導(dǎo)一步步操作就好:
![]()
授權(quán)過程中,記得要在飛書管理后臺審核應(yīng)用:
![]()
審核應(yīng)用通過后,可以再重新執(zhí)行登錄命令,直到你看到「授權(quán)成功」:
![]()
之后,你就可以用命令行來操作飛書了。
比如查看今天的日程安排:
lark-cli calendar +agenda
查看我的待辦任務(wù):
lark-cli task +get-my-tasks
甚至直接創(chuàng)建一篇文檔:
lark-cli docs +create --title "周報" --markdown "# 本周進展"
以前這些操作你要打開飛書 App,點好幾下才能完成,現(xiàn)在一行命令就搞定了。
CLI 有這么多命令和參數(shù),使用過程中,如果忘了某個命令怎么用,怎么辦呢?
只需要記住一個萬能口訣:**不會就加 --help**。
比如:
lark-cli --help
lark-cli calendar --help
相當于隨時翻說明書,CLI 會把所有可用的命令和參數(shù)列出來給你看。
![]()
對了,如果你覺得傳統(tǒng)的終端使用起來不方便,可以試試 Warp 這種現(xiàn)代終端工具,內(nèi)置了 AI 輔助和命令自動補全,對新手友好很多。
![]()
為什么大廠都在卷 CLI?
前面我們體驗了用 CLI 操作飛書,對程序員來說,用習慣了確實還挺方便的。
但你有沒有想過一個問題,大廠們費這么大勁把產(chǎn)品做成 CLI,難道只是為了讓我們少點幾下鼠標嗎?為什么大廠都在卷 CLI?
答案就 2 個字:AI。
大廠們不是在給人類做 CLI,而是在給 AI 做 CLI。
AI 大模型從誕生那天起就在學習海量的代碼、命令行操作、終端輸出。可以說 CLI 就是 AI 的母語,讓它讀一行命令、執(zhí)行一個操作,跟喝水一樣自然。
反過來,你讓 AI 去操作一個圖形界面那可就難了。
還是拿飛書舉例。假設(shè)你想讓 AI 幫你搜一下最近同事提到過的 “周報” 相關(guān)消息。
假設(shè)使用飛書的網(wǎng)頁版,AI 需要先打開瀏覽器,等頁面加載完,找到搜索框,輸入 “周報”,等結(jié)果出來,再一條條翻看消息內(nèi)容。中間要處理一堆網(wǎng)頁元素,導(dǎo)致上下文信息又長又雜,有很多和內(nèi)容無關(guān)的干擾信息。而且萬一網(wǎng)頁改版了,AI 之前學到的操作方式可能就全廢了。
但是飛書提供了 CLI 后,AI 只需要執(zhí)行一行命令,就能完成任務(wù):
lark-cli im +messages-search --query "周報"
有人做過測試,讓 AI 通過瀏覽器完成真實任務(wù),成功率只有 35.8%;換成 CLI 來完成同樣的任務(wù),成功率接近 100%!
所以你會看到一個很有意思的現(xiàn)象。以前大廠做產(chǎn)品,想方設(shè)法把 UI 做得好看好用,給人類使用。現(xiàn)在是返璞歸真,面向 AI 做產(chǎn)品,給 AI 使用,越簡單直接越好。誰先把自己的產(chǎn)品 CLI 化,誰就能先被 AI Agent 接入,誰就能在 AI 時代繼續(xù)保持競爭力。
國外科技博主 Shawn Yeager 甚至寫了一篇文章叫《CLI is the new API》,引起了很大反響。意思是以前產(chǎn)品之間的互通靠 API,現(xiàn)在 AI 時代產(chǎn)品和 AI 之間的互通靠 CLI。
說到 API,你可能會有個疑問:API 接口不也是給程序調(diào)用的嗎?為什么還需要 CLI 呢?
![]()
答案很簡單,API 雖然也是程序接口,但調(diào)用它需要編寫代碼。而 CLI 就是一行命令的事,AI 大模型在訓(xùn)練過程中學習了大量命令行語料,理解和生成命令對它來說駕輕就熟,再加上 AI 編程工具可以很方便地執(zhí)行終端命令,所以 CLI 對 AI 來說幾乎是零門檻。
而且 CLI 自帶 --help 說明書,AI 用到哪個命令就查一下用法,不需要你提前把整本 API 文檔都塞給它,能節(jié)省 Token 消耗。
你可能又問了:之前很火的 MCP 不也是連接 AI 和工具的協(xié)議嗎?為什么還需要 CLI?
MCP 協(xié)議要求把所有工具的名稱和參數(shù)格式全部注入到 AI 的上下文里,工具一多 Token 消耗就很夸張。ScaleKit 做過一組基準測試,同樣的任務(wù),MCP 的 Token 消耗可能是 CLI 的幾十倍!
![]()
而且 MCP 的運行過程對人類來說就像個黑盒,出了問題很難排查;CLI 就不一樣了,如果出錯了,就直接把命令復(fù)制到終端里跑一遍,報錯信息一目了然。
知名 AI 搜索引擎 Perplexity 的 CTO 公開宣布放棄 MCP 轉(zhuǎn)向 CLI,可見這個趨勢已經(jīng)很明顯了。
當然這不是說 MCP 就過時了,在需要統(tǒng)一權(quán)限管控的企業(yè)場景下,MCP 的標準化鑒權(quán)規(guī)范依然很有價值。而且 Cursor 最近就上線了按需加載 MCP 的功能,不再一股腦把所有工具定義塞進上下文,而是等 AI 需要用到某個工具時再加載。
CLI 開源項目
既然 CLI 這么火,GItHub 上必然少不了和 CLI 相關(guān)的開源項目。
目前飛書、釘釘、企業(yè)微信、Google 等大廠的 CLI 基本都覆蓋了消息、日歷、文檔、通訊錄等核心業(yè)務(wù),而且都內(nèi)置了 AI Agent Skills,可以直接被 Claude Code、Cursor 等 AI 工具調(diào)用。
![]()
除了大廠官方出品,社區(qū)里也涌現(xiàn)了很多有意思的項目。
比如 OpenCLI 能把 任意網(wǎng)站、Electron 應(yīng)用、甚至本地工具 統(tǒng)統(tǒng)變成命令行接口。
開源指路:https://github.com/jackwener/opencli
如果你想讓 AI 幫你查 B 站熱門、知乎熱榜,裝上 OpenCLI 后輸入一行命令就搞定了。它內(nèi)置了幾十個適配器,覆蓋了 B 站、知乎、Twitter、Reddit 等一大堆平臺,就像給 AI 裝了一個萬能遙控器。
![]()
還有 CLI-Anything,它能自動分析一個開源軟件的源碼,找出每個功能背后的 API 邏輯,然后自動生成對應(yīng)的 CLI 命令。
開源指路:https://github.com/HKUDS/CLI-Anything
如果你有自己的產(chǎn)品或工具,其實可以做個 CLI,讓用戶通過 AI 更方便地使用。
開發(fā) CLI 的技術(shù)方案有很多。之前我在 帶大家做代碼生成器項目的時候,就用過 Java 的 Picocli 框架來開發(fā)命令行交互。我還做過極客范瀏覽器主頁的 Web 端 CLI,直接在網(wǎng)頁里自主實現(xiàn)了命令行界面。對這些方案感興趣的同學可以去看我之前的教程。
![]()
YuIndex Web 終端項目
但下面我要重點介紹一個最近發(fā)現(xiàn)的寶藏技術(shù),叫 Ink。
這還得感謝前段時間 Claude Code 的源碼意外泄露,我扒了一下發(fā)現(xiàn),它是通過一個叫 Ink 的庫來開發(fā)的。
簡單來說,我們平時用 React 寫網(wǎng)頁,React 會把組件渲染成瀏覽器里的頁面。而 React Ink 做的事情是把同樣的 React 組件渲染成終端界面。這個庫在 GitHub 上已經(jīng)有幾萬 Star,Gatsby CLI、Prisma CLI 等知名項目都在用,非常成熟。
開源指路:https://github.com/vadimdemedes/ink
舉個例子,比如編寫下面這段代碼,就能渲染出一個簡易的終端,會顯示一個每秒自動加 1 的計數(shù)器。
![]()
了解了 React Ink 之后,我們用它來做一個 CLI 試試。
以我的 為例,這是一個程序員學習交流社區(qū)。做成 CLI 工具之后,用戶就可以直接在終端里搜索編程教程、查看熱門內(nèi)容,也方便 AI Agent 調(diào)用。
![]()
我先為這個 CLI 開發(fā) 2 個核心功能:搜索編程導(dǎo)航的內(nèi)容 和 查看熱榜。
整個開發(fā)過程其實就跟寫網(wǎng)頁差不多,簡單的 CLI 工具直接讓 AI 一把梭就行。
這里我就用 AI 來開發(fā)這個 CLI,先編寫給 AI 的提示詞:
幫我用 React Ink 開發(fā)一個名為 codefather-cli 的命令行工具,實現(xiàn)以下功能:
1)codefather search <關(guān)鍵詞>
獲取編程導(dǎo)航搜索結(jié)果 https://www.codefather.cn/search/all?searchText=<關(guān)鍵詞>
在終端中展示搜索結(jié)果列表,包括標題、作者、點贊數(shù)
2)codefather hot
獲取編程導(dǎo)航熱榜 https://www.codefather.cn/hot/all_hot
在終端中展示熱榜 TOP20,包括排名、標題、作者、熱度要求:支持 --help 查看幫助信息
把這段提示詞丟給 Claude Code 或者 Cursor 等 AI 編程工具,AI 就能幫你生成完整的項目代碼。
![]()
最終運行效果大概長這樣,還不錯吧~
![]()
可以試試讓 AI 使用這個工具,AI 通過 --help 就能快速了解這個工具怎么用,準確地給出了回答,嘎嘎快!
![]()
這就是 CLI 的魅力,對人類來說是一個好用的效率工具,對 AI 來說更是一個天然的操作接口。
最后嗶嗶
CLI 的回歸不是技術(shù)的倒退,恰恰說明產(chǎn)品設(shè)計的思路在進化。
以前做個產(chǎn)品,只需要考慮人類用戶怎么用,現(xiàn)在還得想想 AI 怎么用。
未來的產(chǎn)品可能會有兩套前端,一套給人類看的 GUI,一套給 AI 用的 CLI,殊途同歸。
建議正在使用 AI 工具的朋友們,多關(guān)注一下 CLI 的生態(tài)。不管是用 CLI 工具提升自己的效率,還是給自己的產(chǎn)品做一個 CLI 讓 AI 能調(diào)用,都很有價值。
我是魚皮,持續(xù)分享 AI 編程干貨,這篇文章也會收錄到我免費開源的 ,GitHub Star 數(shù)已經(jīng)破萬,從零開始帶你學會用 AI 開發(fā)上線自己的產(chǎn)品。
開源倉庫:https://github.com/liyupi/ai-guide
學會的話歡迎點贊收藏關(guān)注哦,也歡迎評論區(qū)聊聊:你用過哪些 CLI?對 CLI 有什么看法?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(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.