Running multiple AI-agent sessions in parallel has become normal in Vibe Coding. That creates a new interaction problem: I want to know the instant a task finishes, select the right session, and speak the next prompt without searching across windows or returning to the keyboard.
After purchasing an OpenAI Codex Micro, I was inspired by the idea of dedicated hardware for AI coding. I wanted to explore whether the same interaction could become smaller, more glanceable, and more expressive. The round M5Stack StopWatch already combines a touchscreen, physical buttons, speaker, vibration motor, Bluetooth, and battery in one compact controller. I also adapted M5Stack's M5Stick watch accessory kit into a wrist mount, making agent status and voice input immediately available while moving around. Together, they became the natural foundation for Vibe Watch.
The ExperienceThe main Agent layer places six live agent indicators around the round display. Their color, brightness, and animation reflect host-provided state. Tapping an agent—or using the physical button—moves the selection ring with a fast spring animation. The motion overshoots slightly and settles onto the target, making navigation feel physical and readable.
Pressing both hardware buttons changes the interface into the Action layer: FAST, NG, OK, PLAN, and AI. Colored rails visually connect the real buttons to the on-screen NG and OK controls. The left orange button rejects; the right blue button approves. Their distinct descending and ascending square-wave sounds make the result recognizable without looking at the display. PLAN is a visible toggle, while the large center control remains available for push-to-talk.
Settings keep the experience personal without adding desktop configuration. Users can select one of three Bluetooth device identities, pair the controller, set sound volume, adjust vibration strength, and enable or disable haptics for agent-state changes. Preferences survive a restart.
How the M5Stack Controller Is UsedThe M5Stack StopWatch is the entire product interface. Its ESP32-S3 runs the firmware,
renders the UI, stores settings, monitors the battery, drives sound and vibration, reads the touchscreen and physical buttons, and maintains the BLE HID connection.
The circular display visualizes six parallel AI-agent sessions. The physical buttons provide eyes-free reject and approve controls, while the speaker and vibration motor confirm every important action.
Build InstructionsClone and build the public repository:
git clone https://github.com/GOROman/vibewatch.gitcd vibewatch
python3 -m platformio run -e m5stack-stopwatchConnect the StopWatch and upload:
python3 -m platformio run -e m5stack-stopwatch --target uploadOpen Settings, select a device slot, tap PAIR, and connect to Vibe Watch #n from macOS Bluetooth settings.
ImpactVibe Watch makes parallel AI-agent sessions easier to monitor and control. It helps users recognize completed tasks immediately, approve or reject actions physically, and enter the next prompt by voice without searching across desktop windows.











Comments