English | 中文
M5Stack dev board still on the way? Start with OpenVibble first.
OpenVibble implements the Claude Desktop Buddy Bluetooth protocol so an iPhone or Android phone can pair directly with Claude Desktop and stand in for the original M5Stack hardware. Paired with the companion macOS app OpenVibble Desktop, it can also bridge to other agents such as Claude Code.
It builds on Claude Desktop Buddy with native iOS, Android, and macOS companion UX.
| Claude Desktop Connected | iOS App | Dynamic Island |
|---|---|---|
![]() |
![]() |
![]() |
The buddy runtime stays on your phone with support for:
- BLE pairing with Claude Desktop's Hardware Buddy mode
- Approving or denying prompts directly from the phone
- Persona state transitions (idle / attention / busy / sleep / dizzy / celebrate / heart)
- Motion-based interactions (shake, face-down)
- Built-in and over-the-air GIF character packs
- Dynamic Island and Live Activity status surface with quick actions
- Android e-ink friendly terminal theme with English and Simplified Chinese localization
- iOS: macOS with Xcode 17+, iOS 18.0+, XcodeGen, and a physical iPhone.
- Android: Android Studio Ladybug or newer, JDK 17, Android 8.0+ (API 26), and a physical BLE 5.0-capable device.
- Desktop bridge: macOS 14+ for OpenVibble Desktop.
- Simulators/emulators are useful for UI checks, but BLE peripheral advertising requires real hardware.
For iOS/macOS:
make bootstrap
open OpenVibble.xcodeprojOr build the iOS app from command line:
make buildRun package tests + app tests:
make testFor Android:
cd android
./gradlew :app:assembleDebug
./gradlew testThe debug APK is written to android/app/build/outputs/apk/debug/app-debug.apk. Release signing is intentionally left to your local Android Studio / Gradle signing setup.
- In Claude Desktop, enable Developer mode from
Help -> Troubleshooting -> Enable Developer Mode. - Open
Developer -> Open Hardware Buddy..., clickConnect, then pick your iOS or Android device. - Launch OpenVibble on your phone and grant Bluetooth permission when prompted.
Notes:
- iOS and Android both control BLE/GAP behavior, so some low-level options from MCU firmware are not available.
- Character packs transferred from desktop are saved under app sandbox storage and appear in species/persona pickers automatically.
OpenVibble Desktop is a macOS companion app that bridges OpenVibble to Claude Code — and any other agent that speaks the same hook protocol.
- Build and run OpenVibbleDesktop from the same Xcode workspace.
- Open the Hooks tab in OpenVibble Desktop and register the Claude Code hooks. This writes into
~/.claude/settings.jsonand can be removed at any time. - Connect your iOS or Android device. Claude Code session events — session start/stop, permission prompts, response completion, user messages — are forwarded to the buddy in real time.
Issues and pull requests are welcome. Please include reproducible steps and environment details when reporting bugs.
The iOS and Android apps currently include English (en) and Simplified Chinese (zh-Hans / zh) resources.
Mozilla Public License 2.0. See LICENSE.


