Codex CLI vs Gemini CLI:誰是更出色的編程智能體? 原創(chuàng)
開源CLI工具在開發(fā)者和AI社區(qū)中已引起極大的轟動。隨著Claude的Codex CLI、OpenAI的Codex CLI以及最近谷歌的Gemini CLI陸續(xù)發(fā)布,人們對CLI的興趣驟然高漲。這些工具將AI支持融入到日常任務(wù)中,正在改變開發(fā)者使用終端的方式。
開發(fā)者可以利用這些CLI提高代碼理解能力、加快調(diào)試速度,并自動執(zhí)行復(fù)雜的編程任務(wù)。像Codex CLI這樣的工具將基于AI的強(qiáng)大功能(比如代碼生成、重構(gòu)和內(nèi)聯(lián)文檔)直接引入到命令行中,幫助用戶更高效地編寫、分析和改進(jìn)代碼。隨著谷歌推出輕量級開源替代品Gemini CLI,市場變得更激動人心,Gemini CLI 正迅速普及。
現(xiàn)在不妨仔細(xì)看看Codex CLI和Gemini CLI在測試中的表現(xiàn)。
Codex CLI和Gemini CLI簡介
Codex CLI:這款開源命令行工具由OpenAI的Codex CLI分叉而來,現(xiàn)支持包括Gemini 2.5 Pro在內(nèi)的多家AI提供商。它使開發(fā)者能夠在終端中與大語言模型進(jìn)行交互,執(zhí)行代碼生成、重構(gòu)和腳本解釋等任務(wù)。
Gemini CLI:谷歌推出的這款開源AI智能體將Gemini模型(比如Gemini 2.5 Pro)集成到開發(fā)者終端中。
如果你正在尋找詳細(xì)的使用指南,請查看我們針對每個CLI工具的指南:
??《Codex CLI:終端中的OpenAI AI編程助手》??
??《Gemini CLI:谷歌的免費(fèi)開源編程智能體》??
安裝
在繼續(xù)安裝之前,確保滿足系統(tǒng)要求。
系統(tǒng)要求
要求? | Codex CLI | Gemini CLI |
操作系統(tǒng) | macOS 12+、Ubuntu 20.04+、 Windows 11(通過WSL2) | macOS、Windows、Linux(原生) |
Node.js版本 | 22或更新版本(建議LTS) | 18或更新版本 |
npm | 必需(隨帶Node.js) | 必需(隨帶Node.js) |
Git | 可選但建議 | 可選 |
RAM | 至少4GB,建議8GB | 至少4GB,建議8GB |
互聯(lián)網(wǎng) | 必需 | 必需 |
身份驗(yàn)證 | OpenAI API密鑰 | 谷歌帳戶或API密鑰 |
NodeJS是這兩個CLI的通用先決條件。你可以按照其官方頁面上的說明安裝Node.js:??https://nodejs.org/??。?
Codex CLI的安裝步驟
1.檢查Node.js版本:
node --version
2. 確保是NodeJS版本22或更高版本。
3. 全局安裝Codex CLI:
npm install -g @openai/codex
4. 或使用 pnpm:
pnpm add -g @openai/codex
5. 設(shè)置你的OpenAI API密鑰(如果你項(xiàng)目目錄的.env文件包含OpenAI API密鑰,則無需執(zhí)行此操作):
export OPENAI_API_KEY="your-openai-api-key"
6. 將下面這行添加到shell 配置文件(比如 ~/.bashrc、~/.zshrc)以實(shí)現(xiàn)持久化。
7. 運(yùn)行 Codex CLI:
codex
8. 或直接傳遞提示:
codex "explain this codebase to me"
Gemini CLI的安裝步驟
- 檢查 Node.js 版本:?node --version
確保是18或更高版本。? - 全局安裝Gemini CLI(推薦):?npm install -g @google/gemini-cli
- 或者,無需安裝,直接運(yùn)行:?npx https://github.com/google-gemini/gemini-cli
- 身份驗(yàn)證:
?(1)默認(rèn):出現(xiàn)提示時使用你的谷歌帳戶登錄(瀏覽器窗口會打開)。
(2)API 密鑰(供高級使用):?
a.從Google AI Studio 獲取你的API 密鑰。?
b.使用以下條目在你的環(huán)境中進(jìn)行設(shè)置:?
export GEMINI_API_KEY=”your-api-key”
- 運(yùn)行 Gemini CLI:?gemini
- 或直接傳遞提示:?
gemini "Hello, can you help me with coding?"
注意事項(xiàng)
- 對于這兩種工具,必須安裝Node.js和npm(Node 包管理器),并將其添加到你的系統(tǒng)PATH 中。
- 至于Codex CLI,需要Node.js 22+ ,而Gemini CLI可與Node.js 18+協(xié)同運(yùn)行。
- 兩者都需要通過API密鑰或帳戶登錄進(jìn)行身份驗(yàn)證,才能獲得完整功能。
- 在Windows上,為了實(shí)現(xiàn)全面兼容,Codex CLI最好通過WSL2來運(yùn)行。
- 記住,當(dāng)你想將CLI用于某個項(xiàng)目時,確保將當(dāng)前工作目錄設(shè)置為項(xiàng)目所在的文件夾路徑。
運(yùn)行我們的CLI 實(shí)例
不妨繼續(xù)通過3個任務(wù)來比較這兩個模型的性能。
- 在本地主機(jī)上構(gòu)建工作模型
- 閱讀復(fù)雜的代碼庫并解釋代碼
- 錯誤調(diào)試
不妨先使用Codex CLI試一下:
Codex CLI
如果所有要求都已滿足,那么我們就可以開始測試了。
任務(wù)1 – 解釋我們的代碼庫
我們可以看到,Codex可以提供我們代碼庫的詳細(xì)摘要,說實(shí)話,特別詳細(xì)。此外,Codex CLI臨時要求我們授予訪問特定代碼段的權(quán)限,我們可以根據(jù)自己的判斷授予或拒絕訪問權(quán)。經(jīng)過合理的思考后,它會提供一份令人滿意的報(bào)告。
報(bào)告包含總體目標(biāo)、代碼庫布局、關(guān)鍵組件、前端網(wǎng)站和資源,資產(chǎn)都包括在內(nèi),附有摘要。盡管我給主要文件起了比較模糊的名字,但仍然驚訝地發(fā)現(xiàn)它能夠按時間順序解讀代碼文件的所有以前版本。
任務(wù) 2 – 錯誤調(diào)試
由于我們允許Codex CLI訪問我們的整個數(shù)據(jù)庫,無論這是私有數(shù)據(jù)庫還是受保護(hù)數(shù)據(jù)庫,因此它會在讀取任何代碼片段之前獲得我們的授權(quán)。如果我們允許,它就以適當(dāng)?shù)姆绞皆L問我們的代碼片段。
總的來說,它能夠識別每一個細(xì)微的錯誤,偶爾為代碼中一些粗心大意的錯誤提供修復(fù),刪除了對部分延遲略有影響的不必要部分。
任務(wù) 3 – 代碼庫的新增功能
這需要理解每個模塊如何在不同目錄中定義,并串聯(lián)每個依賴項(xiàng)之間的知識,以確保創(chuàng)建了一個新目錄來構(gòu)建我們在請求訪問權(quán)限時請求的新增功能所需的新.py文件。
現(xiàn)在讓我們嘗試檢查Gemini CLI的運(yùn)行方式。
Gemini CLI
我喜歡Dracula 主題。
不像Codex CLI,我們只需要導(dǎo)出OPENAI_API_KEY,Gemini CLI有三種不同的登錄方式:使用Gmail 帳戶、從AIStudio復(fù)制GEMINI_API_KEY或使用Vertex AI 憑據(jù)。
任務(wù) 1 – 解釋我們的代碼庫
我觀察到的主要區(qū)別是,與要求訪問特定目錄的Codex CLI不同,Gemini 跳過了此步驟,改而掃描了我們的整個數(shù)據(jù)庫。不過根據(jù)我的經(jīng)驗(yàn),它確實(shí)提供了不錯的概覽,但在輸出方面絕對不如Codex。
任務(wù) 2 – 錯誤調(diào)試
在我看來,Gemini的響應(yīng)比Codex的響應(yīng)解釋得更清楚,因?yàn)樗軌蜃R別和解釋各種安全風(fēng)險(xiǎn),并提供文件名作為進(jìn)一步調(diào)查和建議變更的參考。此外,如果遵循必要的操作說明,提供針對每個錯誤的全面策略,則可以在不影響其功能的情況下修改代碼。
任務(wù)3 – 代碼庫添加
Gemini CLI無法勝任該工作負(fù)載,因此沒有輸出任何結(jié)果。
Codex CLI vs Gemini CLI :最終結(jié)論
任務(wù)? | Codex CLI | Gemini CLI |
解釋代碼庫? | 高度詳細(xì)的摘要,包含代碼庫結(jié)構(gòu)、模塊分析,甚至模糊的文件名。 | 概述明晰,但深度和結(jié)構(gòu)性不足。無需訪問請求,可以掃描整個數(shù)據(jù)庫。 |
錯誤調(diào)試? | 準(zhǔn)確識別細(xì)小錯誤,提供上下文相關(guān)的修復(fù)方案。 | 解釋有力,高亮顯示安全問題、文件名和改進(jìn)策略。 |
數(shù)據(jù)庫添加? | 處理依賴項(xiàng)映射,并正確添加新模塊(比如在.py 文件中)。 | 任務(wù)執(zhí)行失敗,不生成輸出。 |
訪問控制? | 在分析特定代碼段之前,提示用戶訪問權(quán)限(隱私性更強(qiáng))。 | 自動掃描,無需提示,安全性可能較低。 |
整體性能? | 更穩(wěn)定、更精細(xì)、更注重隱私;適用于實(shí)際的編程任務(wù) | 錯誤分析方面大有潛力,但在更深層次的代碼處理方面表現(xiàn)不一致。 |
結(jié)語
在比較這兩個CLI的功能時,我發(fā)現(xiàn)Codex比Gemini CLI提供更多的功能。目前,這兩個CLI都是開源的,在未來版本中會提供更強(qiáng)大的功能。
由于GPT模型會分析我們的代碼,Codex還可以通過以盡量降低安全風(fēng)險(xiǎn)的方式請求訪問我們的代碼庫和模塊,從而提供更高的隱私性。然而,Gemini CLI似乎不會定期請求訪問權(quán)限;相反,它會在想要運(yùn)行應(yīng)用程序代碼時請求。此外,我們應(yīng)該記?。篏emini CLI 還會跟蹤終端右側(cè)的上下文。
與Cursor和Windsurf 等更智能的氛圍編程IDE結(jié)合使用時,此類CLI無疑將為氛圍編程工作流程和應(yīng)用程序操作帶來新的可能性。然而,可能依然存在安全和隱私方面的漏洞,因此我建議謹(jǐn)慎選擇在代碼庫中授予這些CLI訪問權(quán)限的對象和位置。
原文標(biāo)題:??Iran seeks at least three cloud providers to power its government??,作者:Shaik Hamzah
