Keyboard Cowboy:macOS 上「无快捷键」的键盘自动化牛仔

macOS
效率工具
开源
自动化
生产力
2026/9/30
·

阅读时间: 大约 9 分钟

Keyboard Cowboy:macOS 上「无快捷键」的键盘自动化牛仔

Keyboard Cowboy 3 官方功能全景(Bento)

macOS 上从来不缺快捷键工具:Alfred、Raycast、Keyboard Maestro、Hammerspoon……由 Christoffer Winterkvist(zenangst)开源、纯 Swift 写成(约 98% Swift,用 Tuist 构建)的 Keyboard Cowboy 是其中一个不走寻常路的后来者。它最新版为 3.28.4(官方 release 共 115 个),要求 macOS 13.0+。和大多数「绑个快捷键启动 App」的工具不同,它的口号是 「最好的快捷键就是没有快捷键」——靠上下文自动触发。本文基于其 GitHub 仓库与官方截图做分析。

一、背景:快捷键越多,越记不住

很多人给高频操作绑快捷键,绑到最后自己都忘了哪个键干什么。Keyboard Cowboy 的思路是把自动化拆成可组合的积木:与其记住一堆热键,不如让系统在「对的时机」自动跑对的流程。它面向的是想把重复操作、应用启动、系统设置、文件操作都键盘化、甚至上下文化的高级用户。

二、是什么:Group / Workflow / Trigger / Command 四层模型

从仓库 Wiki 的目录就能看出它的组织哲学:

  • Groups(组):把相关工作流分组管理,按项目或场景归类;
  • Workflows(工作流):一组命令的有序集合,分 Sequential(顺序执行) 与 Concurrent(并发执行) 两种;
  • Triggers(触发器):什么时候跑——键盘快捷键、Leader Key(前缀键)、按住 X 秒、以及最有特色的应用上下文触发(某 App 打开、关闭、被切换到前台时自动触发);
  • Commands(命令):具体干什么——启动应用、点菜单栏菜单、打开 URL、发送键盘输入、跑脚本、打字、宏、系统控制、窗口导航与窗口平铺(window tiling)等。

Keyboard Cowboy 自动化工作流示意(官方截图)

这套模型的关键差异在 Trigger:除了显式热键,你可以设定「当我切到 Xcode 时自动跑某工作流」「当某 App 打开时自动切到专注模式」。官方称之为 contextual application triggers,一旦配好,全自动运行、无需任何按键。

结合官方 Bento 图里露出的能力,能更具体地想象它能干什么:Application Launcher 不只是打开 App,还能同时勾选「后台打开 / 隐藏 / 未运行时才启动 / 加入 Space / 等待激活」;Script Runner 可以直接跑 shell(截图里是 pmset -g batt | grep -o '...' 取电量),并把环境变量如 $CURRENT_WORKING_DIRECTORY、$DIRECTORY 注入,甚至「把输出赋值给变量」供后续命令使用;Unique Modifiers 允许把右 Command、右 Option 这类平时闲置的修饰键单独映射成专属快捷键,避免和系统热键冲突;再加上 Per-Application Rules(按应用定制规则)、UI Scripting、Window Tiling,它实际上把启动器、脚本启动器、窗口管理器、专注模式开关捏成了一个界面。举个典型流程:「打开 Xcode」这条工作流可以是——启动 Xcode → 等其激活 → 把窗口平铺到左半屏 → 运行脚本切到勿扰模式 → 触发 Git 拉取脚本,全程一次触发、顺序或并发自动跑完。

三、隐私与安全边界

官方在 README 里专门强调:Keyboard Cowboy 不收集任何个人信息、不向第三方发送数据,所有数据存在本地。同时它会遵守 macOS 自带的安全机制——当你聚焦在密码输入框或处于 secure input 模式时自动禁用,避免自动化脚本在你输密码时「帮忙按键」。这套「本地、不上传、密码字段自动闭嘴」的姿态,对把自动化工具装在主力机上的人很重要。

四、关键事实

维度官方口径
平台仅 macOS 13.0+
实现语言Swift(约 98%),Tuist 构建
最新版本3.28.4(截至调研,release 共 115 个)
工作流类型顺序 / 并发
触发器快捷键、Leader Key、按住计时、应用上下文
命令类型应用、菜单栏、URL、脚本、打字、宏、窗口管理等
隐私本地存储、零遥测,密码字段自动禁用

五、客观分析:它和 Hammerspoon / 脚本流有何不同

本博客此前介绍过 Hammerspoon——那是一个用 Lua 脚本全面接管 macOS 自动化的工具,能力极强,但门槛在于你得会写代码、自己维护配置。Keyboard Cowboy 走的是图形界面配置路线:点点选选就能拼出工作流,不用写一行 Lua。代价是官方点评也承认「上手有难度」——四层概念(Group/Workflow/Trigger/Command)对第一次接触的人并不直观,真正把效率「成倍提升」需要一段学习与配置投入。

优势:

  1. 上下文自动化:应用开关/切换即触发,把「快捷键」升级成「场景」;
  2. 纯 GUI、零脚本门槛:不写 Lua 也能做复杂工作流,窗口平铺、脚本 runner、变量赋值(截图里可见 pmset -g batt 这类脚本与 $CURRENT_WORKING_DIRECTORY 变量)都在界面里编排;
  3. 隐私干净:本地、零上传;
  4. 活跃迭代:115 个 release、3.x 持续演进。

局限:

  1. macOS 独占,Windows / Linux 用户无缘;
  2. 学习曲线陡:概念多、自由度高,新手容易被配置界面劝退;
  3. 可定制深度仍不如纯脚本:当你要做 Hammerspoon 那种任意 Lua 级别的精细控制时,GUI 抽象反而会成为天花板;
  4. 第三方辅助功能权限:要做按键、窗口、UI scripting,需要授权 accessibility 等系统权限,部署时要逐个放行。

六、谁该用

  • 重度 macOS 键盘党、想摆脱「记快捷键」负担、改用场景自动化的人;
  • 不想写 Lua、但又觉得 Raycast/Alfred 的自动化能力不够用的进阶用户;
  • 在意本地隐私、不愿自动化工具联网上传的人。

如果你只需要一个快速启动器,Alfred/Raycast 足够;如果你需要可编程到每一个像素级别的系统控制,Hammerspoon 仍更自由。Keyboard Cowboy 卡在中间:用图形化的方式,把 Hammerspoon 一半的能力带给了不愿碰脚本的人。

参考来源