Matrix精选
2026年09月22日
10 分钟阅读
![]()
Matrix 首页推荐
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
最近用终端跑 AI 编程(比如 OpenAI Codex、Claude Code、WorkBuddy 或者各种 CLI Agent)越来越多。用了一段时间后,能明显感觉到工作流里最大的变化是:打字量变少了,但对话和确认变多了。
以前写代码大部分时间是在敲键盘,现在很多时候是:
在这样的节奏下,语音输入确实是一个实打实的效率提升——说话往往比手打一段长 Prompt 快得多。但如果纯靠键盘上的按键去唤醒语音,人还是得一直坐在桌子正前方、手放在键盘上。
前段时间 OpenAI 的硬件原型 Codex Micro 公开后,社区里跟风出现了很多各色各样的「Vibe Coding 实体按键/小硬件」。但实际看下来,很多 DIY 小外设要么做工粗糙、按键松垮,要么属于早期的实验性玩具,稳定性和连接体验参差不齐。
其实完全不需要去买那些溢价外设或折腾 3D 打印。手边一个日常能买到的小米电视蓝牙语音遥控器 2 Pro(型号 RC003),成本大概 50~60 元,本身就是大厂量产、模具成熟、自带蓝牙 BLE 和语音麦克风的成品硬件。

拿它当掌上控制器,核心诉求其实很朴素:
这套方案不仅适用于我日常在用的 macOS,社区目前也提供了 Windows 的运行路径。下面记录具体的配置方法与排坑细节。
小米这款遥控器在二手平台或电商平台售价通常在 50 到 60 元左右。选它主要看中几个硬件细节:


虽然遥控器的方向键蓝牙连接后就能作为普通输入设备使用,但遥控器上的语音键传输的是专用的语音数据包,操作系统默认不会把它识别为常规麦克风。
社区开源的 HD838A/remote-mic-app(SayAll) 解决了两件事:
MiRemoteV 2ch);配合支持「按住说话(PTT)」的语音输入法(如微信输入法),就能做到按住说话、松手上屏。
SayAll.app;/Library/Audio/Plug-Ins/HAL/MiRemoteV2ch.driver);MiRemoteV 2ch;Fn(或指定组合键);MiRemoteV 2ch。如果你在 Windows 环境下使用(例如用 Windows 跑终端、运行 Codex 或 WorkBuddy):
zhaozhuque/MIC-RC003-Windows);Ctrl + Win;Ctrl + Win,麦克风选定遥控器映射出的音频设备即可。实际配置过程中有几个容易卡住的体验细节,提前处理可以省不少时间:
全新安装 SayAll 时,部分 macOS 版本在连接遥控器后,新手引导界面可能会一直停在最后一步无法点击完成。
无需重新安装,直接在终端执行一行命令写入完成标记即可:
defaults write com.hd838a.RemoteMic "onboarding.completedVersion" -int 1
defaults write com.hd838a.RemoteMic "onboarding.step" -string "complete"重启 SayAll 即可直接进入完整的按键映射设置界面。
在 macOS 上,如果想用单按独立 Fn 键作为语音触发,微信输入法设置界面偶尔无法正常录入。推荐直接在微信输入法「快捷键」中设为一个冷门组合键(如 Control + Option + V),并在 SayAll 中同样映射为该组合键,零门槛且绝无冲突。
若执意使用单键 Fn,微信输入法配置由 MMKV 存储且带 CRC32 校验,通过以下精简脚本重算校验即可生效:
# 微信输入法 MMKV 配置修复 (重算 CRC32 校验)
import os, zlib, struct
path = os.path.expanduser("~/Library/Application Support/WeType/mmkv/wetype.settings")
data = bytearray(open(path, "rb").read())
open(path + ".crc", "wb").write(struct.pack("<I", zlib.crc32(data)))随后在 SayAll 里将语音模式选为 fn 即可无缝配合。
很多用户在 SayAll 里把十字键映射为自定义快捷键后,会发现「按一下能切,但快速连按两下第二下没反应」。
原因:
手感优化设置:
这样设置后,按键消除了双击等待窗口,单击零延迟触发,连续快速点按时也能每一次都即时响应。
遥控器到手后,最重要的价值是在开发工作流里配合终端复用器使用。
这里以我常用的 Herdr(专为多 Agent 协同设计的终端管理器,运行在 Ghostty 或任意终端中)为例,同时兼容 OpenAI Codex、腾讯 WorkBuddy (CodeBuddy) 和 Claude Code 等常见 Agent 工具。
在多 Agent 场景下,界面的排布通常有天然的空间逻辑:
我们将遥控器映射为直观的免前缀快捷键:
| 遥控器按键 | 发送的快捷键 | 对应动作 | 实际用途 |
|---|---|---|---|
| 方向左 ◀ | Ctrl + Alt + Left | 上一个 Tab | 拇指往左切,回到上一个代码或输出窗口 |
| 方向右 ▶ | Ctrl + Alt + Right | 下一个 Tab | 拇指往右切,查看右侧并行的终端输出 |
| 方向上 ▲ | Ctrl + Alt + Up | 上一个 Workspace | 向上切换工作区(如切到正在跑 Codex 的项目) |
| 方向下 ▼ | Ctrl + Alt + Down | 下一个 Workspace | 向下切换工作区(如切到 WorkBuddy 的执行区) |
| 中心 OK 键 | Enter | 回车确认 | Agent 提出操作确认时,按一下直接放行 |
| 返回键 ⮌ | Ctrl + C / Esc | 中断 / 取消 | 发现 Agent 运行偏离预期,按一下中断当前轮次 |
| 语音键 🎙 | Fn (长按 PTT) | 语音输入 | 按住口述 Prompt,松手文字自动落入命令行 |
如果你在键盘上依然习惯 tmux 式的 Ctrl+B 然后按 p / n 切标签,在 Herdr 的配置文件(~/.config/herdr/config.toml)中支持用数组同时声明两套按键:
[keys]
previous_tab = ["prefix+p", "ctrl+alt+left"] # 左/右键:切 Tab
next_tab = ["prefix+n", "ctrl+alt+right"]
previous_workspace = ["prefix+up", "ctrl+alt+up"] # 上/下键:切工作区
next_workspace = ["prefix+down", "ctrl+alt+down"]修改后执行 herdr server reload-config 即可热加载生效。这样坐在桌前打字时键盘快捷键照常使用,靠在椅背上手持遥控器时又能单手免前缀直切。
当你在多个工作区里并行跑不同的 Agent:
用了这套方案一段时间后,最真实的改变并不是什么工作方式的翻天覆地,而是生理上更舒服了:
如果你平时也在重度使用各种 AI 编程工具,手边正好有闲置的小米蓝牙遥控器,或者花几十块淘一个,花上十几分钟配置好,会是一个低成本但体验很扎实的小外设升级。
> 关注 少数派公众号,解锁全新阅读体验 📰
> 实用、好用的 正版软件,少数派为你呈现 🚀