如何用语音头脑风暴代码改动(适用于 Claude Code 或 Codex 会话)

一种适合手机的方式:口头讨论改动、要求给出计划,并严格限制语音提供商能看到的内容。

基于版本
CLI
0.2.17
预览 ref
a2c45c8

注意: 根据功能矩阵(英文),本地语音(设备端转写和合成)是实验性功能。语音功能在 0.2.x 中重新构建,支持本地、OpenAI Realtime、Codex Live(实验性)和 Grok Realtime。

写真正的指令时,打字很好用。

但在手机上“我只有 30 秒”的时刻,可靠好用的是语音:

  • “停下手头的事,解释一下你改了什么。”
  • “继续之前,如果你要碰迁移,先问我。”
  • “总结一下计划,给我一个 3 步清单。”

目标是用语音对一个真实的编码会话进行头脑风暴和引导,而不让“语音层”变成另一个脱节的对话。

常见做法(听写、笔记、直接打字)各有缺失。

Happier 是一款用于跨设备运行和编排编码代理的开源应用,它让语音锚定在一个真实的目标会话上,并让你明确控制语音提供商能看到什么。

简要总结

  1. 决定你真正想要什么:
    • 语音头脑风暴(先说),或
    • 语音口述(所有内容直接发进会话)
  2. 在拥有仓库或工作区的机器上设置 Happier,并连接你的手机。
  3. 在 设置(Settings)→ 语音(Voice) 中选择语音模式:
    • Happier Voice(设置快)
    • 使用我的 ElevenLabs(Use my ElevenLabs,你的账号和计费)
    • 本地 OSS 语音(Local voice,设备、自托管端点或设备端语音)
  4. 收紧隐私:先关闭 文件路径 和 工具参数 的分享。
  5. 开始说话时,记住有两条线程:
    • 隐藏的 语音对话(你说了什么和它回复了什么)
    • 目标会话(你真正想操作的 Claude Code/Codex 会话)

问题所在

离开键盘时,你仍然想让编码会话继续推进,而不是因为手机打字慢就发出半生不熟的指令。

语音很适合“快速引导”和“快速澄清”。

容易忽略的一点:语音提供商是外部服务。如果不看隐私开关,你可能会无意中分享比预期更多的内容。

常见做法及其权衡

  • 直接在手机上打字:短消息可以,但细节会被省略。
  • 直接在消息框里语音听写:快,但很容易发错(而且往往把每句话都倒进会话里)。
  • 给自己打电话或留笔记:出奇地有效,但和会话没有连接。
  • Happier 语音:当你想要说话的速度,同时保留真实的目标会话和真实的控制时,它很合适。

如果你第一次接触 Happier(它是什么,在哪里获取)

如果你之前没见过 Happier:它是一款面向 Claude Code、Codex 和 OpenCode 等 AI 编码代理的开源配套应用(移动端/网页/桌面)。

这里的工作流是:把仓库和代理运行环境留在拥有工作区的机器上,用手机上的 Happier 监控、引导和继续会话。

开始设置:

可行的工作流(分步操作)

1) 选择符合你约束的语音模式

打开 设置(Settings)→ 语音(Voice)。

Happier 支持四种语音模式:

  • 关闭(Off)
  • Happier Voice(托管的实时 ElevenLabs)
  • 使用我的 ElevenLabs(Use my ElevenLabs,使用你自己的 API 密钥和代理的实时 ElevenLabs)
  • 本地 OSS 语音(Local voice,可配置的 STT/TTS 管线)

决策规则:

  • 想少做设置:从 Happier Voice 开始。
  • 如果你已经有在意的 ElevenLabs 配置:用 使用我的 ElevenLabs。
  • 想用设备语音、自托管端点或设备端语音:用 本地 OSS 语音。

2) “正式”使用语音前先收紧隐私

在语音设置中,Happier 提供了控制语音提供商能看到什么的隐私设置。

默认设置比较保守,其中两项尤其重要:

  • 分享本地文件路径(Share local file paths,默认关闭)
  • 分享工具参数(Share tool arguments,默认关闭)

如果你用语音引导真正的编码工作,这两项决定了:

  • “语音提供商能帮忙,但看不到我文件系统和工具调用的细节”
  • 还是“语音提供商能看到的远比我想要的多”

如果你想要更严格的隐私,再关闭:

  • 分享最近消息(Share recent messages)

3) 理解“隐藏的语音对话”与“目标会话”

这是关键的思路。

语音启用时,Happier 会保留一个隐藏的语音对话。

这个对话的存在让你可以:

  • 查看它听到了什么
  • 以文字阅读语音回复
  • 改用打字继续
  • 查看它播报了什么

但语音仍需要一个真实的会话来执行操作。

那个会话就是目标会话。

如果语音感觉“在说话,却什么也没做”,通常是因为:

  • 你看的是语音对话的记录,而不是目标会话,或者
  • 语音指向了错误的目标会话

4) 决定用“直连会话”还是“语音代理”(本地 OSS 语音)

如果你使用 本地 OSS 语音,会看到两种对话模式:

  • 直连会话(Direct session):转写语音并直接发送到目标会话。
  • 语音代理(Agent):先和专门的语音代理对话,再让它操作目标会话。

如何选择:

  • 基本上想要听写时,用 直连会话。
  • 想让语音层在行动前提问、总结或再次确认时,用 语音代理 模式。

5) (可选)用 voice home 与项目根目录避免“意外的工作目录”

本地语音的代理模式会根据启动位置从不同的工作目录开始:

  • 全局启动语音(侧边栏或全局界面)→ 从 voice home 开始
  • 从某个会话启动语音 → 在该会话的项目根目录开始

如果你想要稳妥、中立的行为,可以启用 停留在 voice home(Stay in voice home),这样语音不会自动跳到项目根目录。

如果你确实希望它像仓库里真正的编码同事一样工作,通常从会话界面(项目根目录)启动更合适。

为什么可行(以及什么会出问题)

语音在 Happier 中好用,是因为它不只是“语音转文字”,而是一个仍能指向真实会话并对其操作的层。

实际中出问题的两个地方:

  1. 隐私不匹配:你本想“只谈大概”,却启用了暴露过多内容的分享。
  2. 目标不匹配:语音已启用,但指向了错误的会话(或者你在看语音记录而不是目标会话)。

常见错误

  • 没检查隐私就打开语音 → 先快速检查一遍“分享最近消息 / 本地文件路径 / 工具参数”。
  • 以为语音能取代会话 → 语音有自己的对话状态,你仍然需要一个目标会话。
  • 想让语音层谨慎行事却用了直连会话 → 想要“先问再做”的行为,就切换到语音代理模式。

常见问题

语音会取代我的 Claude Code/Codex 会话吗?

不会。语音保留自己隐藏的对话状态,在需要操作时以一个真实会话为目标。

我应该从哪种模式开始?

如果你想要一个默认选择:从 Happier Voice 开始,只有在有特定的隐私、自托管或设备约束时才换到 本地 OSS 语音。

相关指南

mobilevoiceclaudecodexworkflows
最后更新: 2026-10-26