v1.0 · iPhone × Mac · 蓝牙

在房间 任何角落 写代码。

Vibe 让你的 iPhone 变成 Mac 的蓝牙触控板和远程键盘。踱步、靠躺、投影—— 你的沙发就是新的工位。

被工位钉住。

过去:你弯着腰,头几乎贴在键盘上。

把手机捞起来。

靠回沙发。触控板就在你掌心。

墙变成屏幕。

在房间里踱步。对着 AI 说话。用拇指掌舵。

— 它能做什么

每一次手势,每一次按键。无线传送。

整块屏就是触控板。

滑动、轻点、双指右键、双指滚动。iPhone 屏幕的每一处都对触摸有反应——没有按钮,没有装饰,只有顺手的控制。

手机上输入。Mac 上落地。

打开发送面板,任何语言写一段,点 Send。Vibe 通过 CGEvent.keyboardSetUnicodeString 把文字直接注入——你的剪贴板不会被污染,中文和 emoji 完整到达。

音量键变成回车键。

iPhone 两个音量键都映射到 Mac 上的 。在房间里踱步、把投影打到墙上,无需打断节奏就能确认弹窗。

— 内里所见

原生。本地。不上云。

Vibe 由两个 Swift App 和一个共享协议包构成。你的手势走十英尺蓝牙后就停在那里,不会再去任何地方。

~20ms
端到端延迟
iPhone 触摸 → Mac 光标
0kB
发送到任何服务器的数据
所有通信均为本地 BLE
2apps
iOS 中心、Mac 外设
共享 GATT 协议
14tests
协议层往返测试
每次提交全部通过

从零写的 BLE GATT

每次写入对应一条命令,小端字节序。0x01 移动、0x02 按键、0x03 滚动、0x21 键、0x22 文本。可丢失的丢失,不可丢失的用 Write With Response。

辅助功能,只问你一次

Mac 端用 CGEvent.post 注入系统 HID 事件。授权只在首次启动时请求,之后跨重新构建持续有效——Vibe 锁定了代码签名身份,不让 macOS TCC 在每次 rebuild 时反复怀疑。

— 获取 Vibe

两个 App。一次配对。

两端各装一份。配一次。然后站起来。

需要 iOS 16+ · macOS 14+