VibePad
ignatovv/VibePad加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:周五晚上,你窝在沙发里,腿上放着笔记本,手柄握在手中。你可以一边刷着 B 站,一边用拇指推动摇杆让 AI 帮你写代码——不需要坐直,不需要键盘,甚至不需要鼠标。
这听起来像是懒到极致,但 VibePad 让这一切变成了现实。
VibePad 是一款 macOS 菜单栏应用,它把游戏手柄变成了 AI 编程助手的遥控器。你不再需要正襟危坐在工位前敲键盘,而是可以葛优躺在沙发上,用手柄控制 Claude Code、Cursor 或 Codex CLI,输入指令、接受建议、浏览代码——全靠拇指。

这个项目的诞生,源于一次真实的用户痛点:长时间坐在键盘前编程带来的身体疲劳和姿势问题。开发者 Vova Ignatov 敏锐地捕捉到,随着 Claude Code、Cursor 等 AI 编程助手变得越来越智能,人与 AI 交互的方式也在悄然改变——人类不再需要大量打字,只需要给出方向性指令和确认决策。
这个观察催生了 VibePad 的核心洞察:如果 AI 可以帮你写代码,那为什么你还需要坐在键盘前? 手柄的摇杆和按钮天然适合做"选择/确认"类交互,正好契合 AI 编程的工作流。
VibePad 的技术原理并不复杂,但实现得相当精妙:
GameController 框架读取 Xbox、PlayStation 或任意 MFi 手柄的输入状态。VoiceAppDetector 能检测当前是否在运行 Claude Code、Cursor 或 Codex CLI,确保按键映射精准送达目标窗口。VibePad 不是固定死的手柄映射,它提供了完整的 InputMapper 模块,允许用户自定义每个按键对应什么键盘操作。默认预设针对 Claude Code 的常用操作进行了优化——比如左摇杆移动光标,A 键确认/接受,B 键取消,扳机键触发 Ctrl+C 等。
应用作为 macOS 菜单栏常驻进程运行,同时会在屏幕角落显示一个半透明的 HUD(抬头显示),展示当前映射状态和快捷键说明,让用户不用记忆也能操作。
VibePad 采用了非常干净的 Swift 原生架构,是学习 macOS 应用开发的优质参考项目:
| 模块 | 文件 | 职责 |
|---|---|---|
| GamepadManager | 手柄状态读取 | GameController 框架封装 |
| KeyboardEmitter | 键盘事件生成 | CGEvent 虚拟键盘注入 |
| InputMapper | 映射配置管理 | 手柄→键盘映射逻辑 |
| VoiceAppDetector | AI 应用检测 | 前台窗口检测 |
| OverlayHUD | 屏幕叠加显示 | HUD 渲染与动画 |
| OnboardingWizard | 新手引导 | 首次使用配置流程 |
| Analytics | 使用数据 | 用户使用习惯统计 |
| Sparkle | 自动更新 | macOS 应用热更新框架 |
项目使用了 Swift 6 的 @Observable 宏,这是 Apple 最新推出的响应式编程语法糖,代码简洁优雅。包管理方面使用 XcodeGen(.xcodeproj 项目文件),而非 Swift Package Manager 直接管理。
需要直说:VibePad 不是一款适合所有人的应用。
它的安装门槛相当明确:
没有 Dockerfile、没有容器化、没有跨平台——作为一款 macOS 原生应用,它天然排斥 Linux 和 Windows 用户。安装过程需要从源码编译(需要 Xcode),或者使用 Release 页面提供的 DMG 安装包。
这既是局限性,也是项目定位的清晰体现:VibePad 就是为 macOS 深度用户设计的「桌面玩具」。
VibePad 代表的不仅是一个小工具,更是一种趋势:在 AI 时代,人机交互的介质正在从"精确打字"向"粗粒度指令+确认"演进。
GPT-4 时代,prompt engineering 成了新技能;Claude Code 时代,用嘴编程成为可能;而 VibePad 则探索了下一个问题:如果连嘴都不用动了呢?
这个方向虽然小众,但并非孤例。Xbox Adaptive Controller 的出现、Steam Deck 的掌机模式、Claude Code 的自然语言优先设计——都在往同一个方向汇合:让计算更贴近人的自然状态,而不是让人的身体迁就机器的输入方式。
项目信息