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 Code2.1.296有无/voice
Codex CLI0.162.1没有单独的模式有/voice
OpenCode1.19.0仅限插件无无内置
Antigravity CLI1.3.4有无/voice
oh-my-pi18.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 代理。

免费下载 AgentsRoom

配套应用:随时随地监控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

获取扩展程序
Chrome Web Store

把 Bug 和需求直接发送到您的公开待办清单。

多项目管理
多供应商
多代理运行
实时状态
文件差异与提交
移动应用
实时预览
代理团队
浏览器自动化
Backlog 驱动开发
提示词库
技能库
查看所有功能

继续阅读