Codex、OpenCode、Antigravity 和 Claude Code 的語音模式:哪個 CLI 有?
我們在 2026 年 10 月 13 日檢查了五個程式設計代理 CLI 和兩個應用。Codex CLI 和 oh-my-pi 能進行語音對話,Claude Code 和 Antigravity CLI 只能把語音聽寫進提示詞,OpenCode 沒有任何內建功能。每個怎麼啟動、音訊發往哪裡,以及語音要花多少令牌。
人們在 Google 裡輸入「codex voice mode」「opencode voice mode」和「antigravity voice mode」,找到的答案卻把兩種不同的東西混在同一個名字下面。所以我們在 2026 年 10 月 13 日開啟了建置機上安裝的每一個 CLI,讀了它自己的命令列表,再拿它和廠商當天的文件逐一對照。
先說兩個詞,因為整個答案都取決於它們。
聽寫是單向的。你說話,文字落進提示詞,你按下 Enter,然後在螢幕上讀回答。
語音模式是雙向的。你說話,代理去幹活,回答被念給你聽。你的眼睛可以離開終端。
簡短的回答
| 工具 | 檢查的版本 | 聽寫進提示詞 | 語音回覆 | 怎麼啟動 |
|---|---|---|---|---|
| Claude Code | 2.1.296 | 有 | 無 | /voice |
| Codex CLI | 0.162.1 | 沒有單獨的模式 | 有 | /voice |
| OpenCode | 1.19.0 | 僅限外掛 | 無 | 無內建 |
| Antigravity CLI | 1.3.4 | 有 | 無 | /voice |
| oh-my-pi | 18.1.2 | 有,在本機上 | 有 | /live |
| Paseo(應用) | 當天的文件 | 有 | 有 | 應用裡的語音模式 |
| T3 Code(應用) | 當天的儲存庫 | 有,iOS 應用 | 無 | composer 裡的麥克風 |
本頁剩下的部分是每一行的細節,然後是緊接著會冒出來的問題:對代理說話會不會比打字多花令牌。
Claude Code:是聽寫,不是對話
Claude Code 有語音聽寫(2.1.69 或更高版本)。你用 /voice 開啟一次,它就會在各個會話之間保持開啟:
/voice
Voice mode enabled (hold). Hold space to record. Dictation language: en (/config to change).
說話時按住 Space 鍵,鬆開就停止。你說話時文字會出現在提示詞裡,在轉寫最終確定之前顯示為灰色,你還可以在同一條訊息裡混用打字和聽寫。如果你不想一直按著鍵,/voice tap 會在第一次輕按時開始錄音,第二次輕按時傳送提示詞,前提是轉寫內容至少有三個詞。這個鍵是 voice:pushToTalk 綁定,你可以在 ~/.claude/keybindings.json 裡把它改到 meta+k 這樣的修飾鍵組合上。
限制寫在語音聽寫文件裡。音訊會流式傳到 Anthropic 的伺服器做轉寫,不在本地處理。它需要 claude.ai 登入:用 Anthropic API 金鑰、Bedrock 或其他雲提供商時,/voice 是一條未知命令。它需要本地麥克風,所以在 SSH 會話或雲端會話裡不能用。聽寫語言跟隨 language 設定,支援 20 種語言,預設回退到英語。
它不做的事是說話。Claude 一如既往用文字回答。Claude 應用有真正的語音模式,在行動版、桌面版和網頁端處於測試階段,但 Anthropic 的語音模式幫助頁面說得很清楚:在 Claude Cowork 和 Claude Code 裡,可以用聽寫,但沒有語音模式。
Codex CLI:用 /voice 進行真正的語音對話
這是大多數人在找的那個,也是文件講得最不清楚的那個。
OpenAI 的 Codex 語音頁面介紹的是由 GPT-Live 驅動的 ChatGPT Voice:一場你在 ChatGPT 桌面應用裡針對某個 Codex 任務開啟的語音對話,或者在手機與桌面主機配對後,透過 iOS 上的 Codex 開啟。頁面列出了 Plus、Pro、Business、Edu 和 Enterprise 套餐、同一時間只能有一個語音對話處於活動狀態,以及一個只把語音轉成提示詞文字的獨立聽寫功能。它沒有提到 CLI。
CLI 有它自己的。在 codex-cli 0.162.1 裡,斜槓命令列表(在開源儲存庫裡,也在安裝好的二進位制檔案裡)包含 /voice,描述為「start or stop voice; use /voice settings to choose a voice」。你可以確認你的安裝裡這個功能是開著的:
codex features list | grep realtime
# realtime_conversation stable true
在會話裡,/voice 會在當前執行緒上開啟一場即時對話。你說話,Codex 出聲回答,雙方的字幕在終端裡滾動。鍵位對映裡有一個開始或停止對話的動作,還有一個給你的麥克風靜音的動作,兩個都可以重新綁定。CLI 在三種情況下會拒絕,每種都有一條提示:在對話的第一條訊息之前(「Start a conversation before using voice mode」),在旁支對話裡,以及在沒有音訊棧的建置上(「Voice requires macOS, an MSVC-based Windows build, or a glibc-based Linux build」)。
這場對話中有兩個模型在工作:一個和你交談的即時語音模型,以及真正幹活的 Codex 執行緒。語音這一側把你的請求交給執行緒,原始碼把這一步叫作 handoff,再把結果說給你聽。下面講令牌的部分時請記住這一點。
OpenCode:沒有任何內建
OpenCode 1.19.0 既沒有語音命令,也沒有聽寫。它的二進位制檔案裡僅有的「speech」字串,是提供商目錄里語音模型的描述,你可以從自己的程式碼裡呼叫它們,但那不是和 OpenCode 說話的方式。
社群填補了這個空缺。opencode-voice 是一個往 OpenCode 提示詞裡聽寫的外掛:Ctrl+X V 開始錄音,Enter 停止並插入轉寫內容,轉寫可以在本地 Whisper、OpenAI、ElevenLabs 或 Handy 應用之間選擇。它的 README 對現狀很坦誠:預發布軟體,僅限 Linux x64,麥克風採集還是實驗性的。它不會把回覆念出來。
在 macOS 或 Windows 上,作業系統自帶的聽寫在任何終端裡都能用,OpenCode 也不例外。
Antigravity CLI:用 /voice 聽寫
Antigravity CLI 有聽寫,文件在它的 /voice 頁面上。/voice、它的別名 /record,或者 F5 鍵,都能啟動它。文字落進提示詞輸入框,在你自己傳送之前不會發出去。
三個限制。它需要互動式會話,在 --print 模式下被禁用。它不對商業或企業帳戶開放。另外,如果你是在聽寫功能上線之前登入的,在你執行 /logout 並重新登入之前,轉寫都會失敗。
SSH 的情況比大多數工具處理得好:在你自己的機器上執行 agy mic-serve,用 ssh -R 24713:127.0.0.1:4713 <server> 開啟一條反向隧道,再在伺服器上用 ANTIGRAVITY_MIC=127.0.0.1:24713 agy 啟動 CLI。這樣你的麥克風就會把聲音送進遠端會話。沒有語音回覆。
oh-my-pi:兩樣都有,而且聽寫留在你的機器上
oh-my-pi(omp)是這裡唯一兩樣都做的 CLI,而且它的聽寫從不離開你的機器。
語音轉文字預設關閉。在設定裡(Speech 分組)開啟它,然後按住 Space 鍵錄音,鬆開就轉寫。模型在本機執行:預設是 Parakeet TDT v3,配置較低的機器可以改用不同大小的 Whisper。一個設定決定聽寫什麼時候傳送:從不傳送、鬆開時、鬆開且句子完整時,或者在你說出「submit」時。
對話是 /live,或者 Ctrl+L。CLI 把它描述為「Codex-backed realtime voice mode」,聲音在設定裡(Live Voice)選擇。另外,omp say 會用 Kokoro-82M 把任意文字念出來,這也是一個在本地執行的語音模型。
Paseo 和 T3 Code:語音在應用裡,而不在 CLI 裡
在同樣的搜尋裡還會冒出兩個應用。
Paseo 執行一個管理你的程式設計代理的守護程序,有桌面、移動、網頁和 CLI 客戶端。它既做聽寫,也做語音模式對話。語音處理可以在你的機器上執行(Parakeet 做語音轉文字,Kokoro 做文字轉語音,ONNX 模型跑在 CPU 上),也可以走 OpenAI,而語音模式本身是一個執行在 Claude、Codex 或 OpenCode 上的隱藏代理會話。預設的本地語音模型只支援英語;另一個 Parakeet 模型覆蓋 25 種歐洲語言。Paseo 的其餘部分,我們在 Paseo 替代方案頁面上和 AgentsRoom 做了比較。
T3 Code 在它的 iOS 應用裡有語音輸入:轉寫在手機上執行並填進草稿,它從不自己傳送任何東西。沒有語音回覆。
語音模式會多用令牌嗎?
這是緊跟在「有沒有」後面的問題,而每個工具的答案都不一樣。
- Claude Code 的聽寫:不會。Anthropic 的文件說,轉寫不消耗 Claude 訊息或令牌,也不計入
/usage顯示的額度。你聽寫的內容會變成一條普通提示詞,花費和敲出來的同一條提示詞一樣。 - Claude 應用裡的語音模式:根據 Anthropic 的幫助頁面,它和文字一樣計入你的常規用量額度。
- Codex CLI 的
/voice:只要對話開著,就有一個即時語音模型在 Codex 執行緒旁邊執行。OpenAI 的頁面沒有說語音對話怎麼計入 Codex 的額度。我們沒有找到數字,所以也不給出數字。 - Antigravity CLI:只有聽寫,文件沒有說它怎麼計算。
- oh-my-pi:本機上的聽寫不花令牌,也不傳送任何東西。
/live走的是 Codex 的即時語音。
底層的規則在哪裡都一樣:幹活的模型讀的是文字。說出來的一輪和敲出來的一輪計費相同。改變你帳單的是輪數和會話的深度,而語音往往會帶來更多、更短的輪次。關於手機我們也說過同樣的話,見 Claude Code 的 Remote Control 會多用令牌嗎。
AgentsRoom 在它們旁邊做了什麼
AgentsRoom 的 Voice Mode 走的是另一條路:一場不取決於你執行哪個 CLI 的語音對話。
它作用於終端,而不是 CLI。你在一個已經在執行的代理上開啟它。你的這一輪會被轉寫,作為你的訊息發進那個代理的終端,代理在它自己的會話裡幹活,它的回覆會用你挑選的聲音念出來。免持會在每次回覆之後重新開啟麥克風。語言會被自動識別。它對 Claude Code、Codex、GitHub Copilot CLI、Cursor 以及 AgentsRoom 執行的另外 10 個代理 CLI 都一樣,在 macOS、Windows 和 Linux 的桌面應用裡都能用。
令牌開銷很小,而且看得見:在第一條語音訊息裡,代理會收到一段簡短的前言,要求它給出兩到五句的口頭回復,不要念出 markdown 或檔案路徑,之後每五條訊息提醒一次。語音處理本身執行在我們的後端,從和聽寫共享的語音額度里扣除,或者走你自己的 OpenAI API 金鑰。
如果只想聽寫,composer 裡有一個麥克風按鈕,在語音聽寫頁面上有介紹。CLI 內建的語音你照樣可以在它的終端裡用:兩者並不互相排斥。
怎麼在你自己的機器上核實
版本變化很快,這個頁面也會過時。下面是一分鐘核心實表格每一行的方法:
claude --version # then /voice in a session
codex --version # then: codex features list | grep realtime
opencode --version # no voice command in the help
agy --version # then /voice in a session
omp --version # then the Speech settings, and /live
如果 /voice 在 Claude Code 裡回答「Unknown command」,說明你是用 API 金鑰或雲提供商登入的,而不是用 claude.ai 帳戶。如果 Codex 的列表裡沒有 realtime_conversation,說明你的 CLI 比我們檢查的版本舊。
常見問題
Codex CLI 有語音模式嗎?
有。在 codex-cli 0.162.1 裡,/voice 命令會在當前執行緒上開啟一場語音對話:你說話,Codex 出聲回答,雙方的字幕顯示在終端裡。/voice settings 用來選擇聲音。它需要一場已經開始的對話,在旁支對話裡不能用,並且執行在支援它的 macOS、Windows 和 Linux 建置上。OpenAI 自己的語音頁面介紹的是 ChatGPT 桌面應用裡和 iOS 上 Codex 裡的 ChatGPT Voice,而不是這條 CLI 命令,所以我們在 CLI 本身裡做了核實。
Claude Code 有語音模式嗎?
Claude Code 有的是語音聽寫,不是語音對話。執行 /voice,然後說話時按住 Space 鍵(或者用 /voice tap),轉寫內容就會落進提示詞。Claude 仍然用文字回答。它需要 claude.ai 登入和本地麥克風,所以用 API 金鑰、在 SSH 會話或雲端會話裡都不能用。Anthropic 表示 Claude 應用的語音模式在 Claude Code 裡不可用。
OpenCode 有語音模式嗎?
沒有內建。OpenCode 1.19.0 既沒有語音命令,也沒有聽寫。一個社群外掛 opencode-voice 用 Ctrl+X V 加上了往提示詞裡聽寫的功能,但它是預發布軟體,而且只能在 Linux x64 上執行。除此之外,你就用作業系統自帶的聽寫。
Antigravity CLI 有語音模式嗎?
它有聽寫。/voice、它的別名 /record,或者 F5 鍵,會把你說的話轉成文字放進提示詞輸入框,但不會傳送。它需要互動式會話,在 --print 模式下被禁用,並且不對商業或企業帳戶開放。透過 SSH 時,agy mic-serve 會把你自己機器的麥克風轉發到伺服器。沒有語音回覆。
Claude 的語音模式會多用令牌嗎?
這取決於你說的是哪種語音。根據 Anthropic 的文件,Claude Code 的聽寫不消耗 Claude 訊息或令牌,也不計入 /usage 裡的額度:你聽寫的內容就變成一條普通提示詞。Claude 應用裡的語音模式和文字一樣,計入你的常規用量額度。兩種情況下模型看到的都是文字,所以說出來的一輪和敲出來的同樣一輪花費相同,真正起作用的是輪數和會話的深度。
語音聽寫和語音模式有什麼區別?
聽寫是單向的:你說話,文字落進提示詞,你在螢幕上讀回答。語音模式是雙向的:你說話,回答被念給你聽。Claude Code 和 Antigravity CLI 做聽寫。Codex CLI 和 oh-my-pi 兩樣都做。OpenCode 不裝外掛的話兩樣都不做。
下載 AgentsRoom
在一個視窗中執行你所有專案的所有 AI 代理。
配套應用:隨時隨地監控你的 Agent
使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。
把 Bug 和需求直接傳送到您的公開待辦清單。
繼續閱讀
AGENTS.md:一個上下文檔案餵飽所有編碼 Agent(Codex、Antigravity、Claude)
AGENTS.md 是 AI 編碼 Agent 在動你程式碼之前先讀的那份可移植指令檔案。該往裡寫什麼、它和 CLAUDE.md 有何區別,以及如何在 Codex、Antigravity 和 Claude 之間保持同一份上下文。
閱讀全文如何與 AI 程式設計代理溝通:Claude、Codex、Antigravity、Grok Build
程式碼不再是瓶頸,溝通才是。本文介紹如何與 AI 代理 Claude、Codex、Antigravity 和 Grok Build 協作,讓你更快、更精準地交付,同時減少 token 消耗。
閱讀全文Claude 的令牌是什麼,又是怎麼運作的?我們數了 38 億個
令牌是詞的一個片段,Claude 會統計四種令牌:輸入、快取寫入、快取讀取和輸出。我們統計了自己 30 天的 Claude Code 會話,共 38 億令牌:98% 是從快取裡重新讀取的對話,Claude 寫出的只佔 0.3%。每種令牌的成本、為什麼會話每多一輪就更重,以及 5 小時視窗到底在計量什麼。
閱讀全文