macrowhisper
Superwhisper 的智能路由器,让语音指令直接驱动 macOS 自动化动作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
Superwhisper 的智能路由器,让语音指令直接驱动 macOS 自动化动作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你有没有遇到过这种场景?开着视频会议,老板的指令噼里啪啦说了一大堆,你一边点头一边狂点录音,心想「先录下来,回头再整理」。结果会议结束,Superwhisper 给你转录出了一大段文字,你看着光标在 Word 里闪了半天,不知道该从哪里开始整理。更糟的是——Superwhisper 默认是粘贴文字到当前应用,可你开的根本不是 Word,而是 Slack。
Macrowhisper 解决的就是这个问题。它不是一个语音转文字的工具,而是一个「语音转文字之后的智能路由器」。Superwhisper 负责把声音变成文字,Macrowhisper 负责决定这段文字该「去哪儿」以及「怎么去」。
Macrowhisper 的核心逻辑其实可以用一句话概括:监听 Superwhisper 的录音文件夹 → 读取转录结果 → 根据配置决定执行什么动作。
但这个「决定」的过程相当精密。Macrowhisper 不只是机械地把文字粘贴出来,它会:
DispatchSourceFileSystemObject 监控录音目录,一旦发现新的录音文件夹就触发处理流程这意味着,你对着电脑说「告诉团队我十分钟后开会」,Superwhisper 转录出这段文字,Macrowhisper 识别到关键词「告诉团队」,自动打开 Slack、向指定频道发送消息。中间不需要你动手。
Macrowhisper 支持五种类型的动作,每一种都对应 macOS 自动化体系中的核心能力:
1. Insert(插入动作):最基础的动作,把转录文字粘贴到当前光标位置,或者模拟键盘输入。这是默认行为,也是大多数用户的核心需求。
2. URL(网址动作):把转录文字当作网址或搜索关键词,自动在浏览器中打开。对于「打开 XX 文档」「搜索 XX 问题」类指令特别有用。
3. Shortcut(快捷指令动作):调用 macOS Shortcuts,把转录文字作为输入参数传递给用户自定义的快捷指令。这意味着你可以把任何 Shortcuts 支持的操作语音化——发邮件、创建日历事件、查询天气、调用任何安装了 Shortcuts 支持的应用。
4. Shell(终端命令动作):直接在终端执行 Shell 命令。对于开发者来说,这是一个巨大的扩展空间——可以用语音触发任何命令行操作。
5. AppleScript 动作:执行原生 AppleScript 脚本。这是 macOS 最强大的自动化能力,可以通过脚本控制任何支持 AppleScript 的应用程序,实现几乎任何你能想到的操作。
Macrowhisper 的配置文件采用 JSON Schema 定义(macrowhisper-schema.json),配置结构清晰、功能丰富。核心配置包括:
{
"triggers": {
"voice": "关键词",
"app": "com.apple.Safari",
"mode": "command",
"url": "github.com/*"
},
"action": { "type": "insert" },
"nextAction": { "type": "shortcut", "name": "发送邮件" },
"inputCondition": {
"contains": "bug",
"app": "Xcode"
}
}
触发条件的优先级顺序是:Auto-Return(自动返回)> Trigger Actions(触发器动作)> Active Action(主动动作)。这意味着你可以同时配置多种规则,系统会按优先级自动选择最优匹配。
nextAction 字段支持动作链式执行,比如先插入文字、再触发快捷指令、最后打开一个网页——一气呵成。inputCondition 则支持条件判断,让同一个触发词在不同场景下执行不同动作。
从源码结构来看,Macrowhisper 的架构设计相当成熟:
| 模块 | 职责 |
|---|---|
Watcher/ | 文件系统监控,检测录音文件夹变化 |
Config/ | 配置管理,JSON Schema 解析与验证 |
Networking/ | HTTP 网络能力(依赖 Swifter) |
Utils/ | 工具函数库 |
History/ | 历史记录管理 |
RecordingsFolderWatcher 使用 DispatchSourceFileSystemObject 进行低开销的文件系统监控,比定时轮询更高效。ConfigChangeWatcher 则监控配置文件变化,支持热重载,无需重启服务即可应用新配置。
配置文件语义版本 2 的设计也很值得注意:null 表示继承默认值,"" 表示显式空值,.none、.autoPaste、.run 等保留字有专门的运行时行为。这种设计避免了配置歧义,同时保持了极大的灵活性。
依赖方面,Macrowhisper 仅使用了一个外部依赖——Swifter(一个轻量级 Swift HTTP 服务器框架),用于实现嵌入式 HTTP 服务。整体项目 5.6MB,对系统资源的占用极低。
安装方式非常友好,两种任选其一:
# 方式一:Homebrew(推荐)
brew install ognistik/formulae/macrowhisper
# 方式二:安装脚本
curl -L https://raw.githubusercontent.com/ognistik/macrowhisper/main/scripts/install.sh | sudo sh
安装完成后,通过 CLI 命令启动后台服务:
macrowhisper --start-service
macrowhisper --service-status # 查看服务状态
配置文件路径通过以下命令操作:
macrowhisper --reveal-config # 在 Finder 中打开配置
macrowhisper --validate-config # 验证配置语法
macrowhisper --schema-info # 查看配置 Schema 信息
与 Superwhisper 配合使用时,需要在 Superwhisper 设置中关闭以下选项避免冲突:
尽管 Macrowhisper 设计精良,但有几个实际限制需要了解:
平台锁定:这是一款纯 macOS 应用,依赖 Superwhisper(macOS 专有应用),无法在 Windows 或 Linux 上使用。
无图形界面:所有配置通过 JSON 文件和命令行完成,对非技术用户有一定门槛。
Superwhisper 强依赖:Macrowhisper 本质上是一个中间层,脱离 Superwhisper 单独使用没有任何意义。用户需要同时订阅 Superwhisper 服务。
iOS/macOS 跨设备场景受限:如果工作流涉及 iPhone 语音输入,Macrowhisper 无法直接接管。
语音输入工具发展多年,从手机上的语音备忘录到 Dragon 这样的专业听写软件,技术门槛在不断降低。但大多数工具止步于「把语音变成文字」这一步——文字生成之后怎么用,仍然需要手动操作。
Macrowhisper 填补的正是这个空白。它将语音从「被动输入」升级为「主动指令」,让用户可以用自然语言驱动整个 macOS 自动化体系。对于高强度使用语音输入的专业人士(如写作者、研究人员、程序员)、需要频繁多任务切换的知识工作者,以及有特殊需求(如手部障碍)需要语音操作电脑的用户,这个工具的价值是显著的。
作为一个仅有 214 Star 的小众工具,Macrowhisper 展现了 macOS 生态中精细化自动化工具的独特生命力——不是做大模型、不是做平台,而是做好一个「小而美」的连接器,把已有的优秀工具串联起来。