给 AI 编程工具
让 AI 工具开口跟你说话
Claude Code、Codex 等 AI 编程工具干完一轮,Speaklna 可以用一句话告诉你结果,你不用一直盯着屏幕。你也可以让它们把某段内容念出来。声音全在你的 Mac 上生成。念出来的报告像这样:“Codex,myproject:测试已经通过,你还需要重启一下服务。”
npm install -g speaklna
speaklna setup
Speaklna 即将上架 Mac App Store,免费。装好先打开一次再设置。
需要什么
- macOS 15.2 或更新,Apple 芯片的 Mac
- Node.js 18 或更新,用来运行
speaklna包 - 下面任意一个 AI 工具,装在同一台 Mac 上
设置说明
一个小包把你的 AI 工具接到 App 上。装一次,让它去设置你 Mac 上已有的工具。
setup 会先列出要改的每个文件,问你 y/N,同意了才写。每个文件的原件会备份一次,叫 <文件>.speaklna-bak。只设置某一个工具,就在后面加名字:speaklna setup codex。加 --dry-run 只看不写,加 --yes 就不再询问。
也可以不安装直接运行:npx -y speaklna setup。更推荐全局安装,这样钩子指向的是固定路径,而不是 npx 的缓存目录。
选你的工具
每一页都写明 setup 会改哪些文件、怎么试、怎么卸载。
用之前知道这些
报告排队,一次念一句
同一个会话排着好几句时,只留最新的一句。排了两分钟还没念上的,直接丢掉,因为已经不是新消息了。
插在段落之间
Speaklna 正在给你念别的内容时,报告会等当前这一段念完,插进来念,然后接着念原来的。
⌥T 和 ⌥S 永远优先
按 ⌥T 会开始念剪贴板,并清掉 AI 工具排着的所有内容;按 ⌥S 全部停下,并清空队列。
开会时不出声
别的 App 正在用麦克风时(比如通话、语音输入),AI 工具的声音一律不出。被拦下的句数会记在“接入 AI”窗口里。
存成音频文件
在终端里运行 speaklna save "文字" -o clip.wav,或者叫 AI 工具把一段话存成音频。念法和 ⌥T 一样,只是不出声、写成 WAV 文件;不给 -o 就放在“音乐”文件夹里的 Speaklna 文件夹。Speaklna 正在念时它不开工,存的时候按 ⌥T 会把它停掉。
“接入 AI”窗口
在 Speaklna 面板里打开。里面能看到哪些 AI 工具接入过,可以开关“来源”前缀(“Codex,myproject:”),可以改成只念“Codex 在 myproject 干完了”,也可以给每个 AI 工具单独选音色。
隐私
- 报告这一行是你的 AI 工具写的。Speaklna 加的规矩会告诉模型,绝不能在里面写密码、密钥或令牌;这个包在把句子交给 App 之前,还会把长得像密钥的内容抹掉。
- 这个包通过本机的 macOS 消息把文字交给 App,不出这台 Mac。安装它时会从 npm 下载一次。
- AI 工具只能念、存成 WAV 放进“音乐”文件夹、停、查状态、列音色,不能导入音色,也不能改设置。
详细内容见隐私政策。
卸载
只删 setup 加进去的东西,别的不碰。
speaklna uninstall # 所有工具
speaklna uninstall codex # 只卸一个
它会先列出要删的内容,问过你再删。之后想把这个包也删掉:npm uninstall -g speaklna。
出问题怎么办
提示没有安装 Speaklna
先从 Mac App Store 安装 App,再打开一次。钩子只在 macOS 上起作用。
一轮结束后没有声音
按顺序查:
- AI 回复的最后有没有一行以
🔊(喇叭 emoji)开头?没有的话,新开一个会话,让它读到规矩。 - Codex 是否在
/hooks里点了信任?OpenClaw 装完后是否重启过 Gateway? - 是不是别的 App 正占着麦克风?通话和语音输入时报告会被拦下。
- 运行
speaklna say "你好"。如果这句能听到,说明 App 和这个包都没问题,问题在 AI 工具那边的设置。
AI 工具说 speaklna 工具启动失败
这个工具是通过 npx 启动的,所以 Node.js 必须在 AI 工具自己的 PATH 里,不只是你的终端里。装好 Node.js 18 或更新,再重启 AI 工具。
setup 说已经有一个不同的 speaklna 条目
不是它自己写的条目,setup 一律不动。把你那条改名或删掉,再运行一次 setup。