VibeTab
June 5, 2026 · View on GitHub

Browser audio. Bluetooth vibes.
VibeTab is a Chrome / Edge extension for app-controlled Bluetooth haptic toys. It listens to the selected tab's RMS level, shapes the signal with conservative safety defaults, and turns videos or music into real-time haptic feedback.
Built for GK03, Lovense, and Buttplug / Intiface workflows, it gives Bluetooth bullet vibrators and similar devices a simple browser-native sync layer without touching the underlying media URL.
Product Highlights
| Live audio sync | Toy-ready control | Privacy-minded setup |
|---|---|---|
| Captures the audible tab and maps RMS intensity into smooth output. | Choose GK03, Lovense, or Intiface from one focused control page. | Runs locally in a visible extension tab; stop/close paths try to return output to zero. |
What It Does
Most app-controlled toys focus on phone apps, custom patterns, remote control, and music-style interaction. VibeTab brings that same product feel to desktop browsing:
- Feel the tab: music, video, and other capturable tab audio become live intensity.
- Pair the device you already have: native BLE for GK03 and Lovense, plus Intiface for broader hardware.
- Stay in control: threshold, maximum output, stop, reconnect, and scan actions stay visible.
- Keep it conservative: output starts capped at 70%, ramps instead of jumping, and never exposes arbitrary raw BLE writes.
How It Works
The control page owns the capture stream, Web Audio graph, device connection, and output loop:
browser tab audio -> RMS analysis -> threshold/limit/ramp -> device driver -> haptic output
Supported Today
- Chrome / Edge Manifest V3 extension
- Active tab audio capture via
chrome.tabCapture - Web Audio RMS sampling
- Target tab selector for audible/capturable pages
- Native Web Bluetooth connection for GK03 and Lovense
- GK03 7-level payload mapping and Lovense
Vibrate:0..20mapping - Buttplug / Intiface bridge over local WebSocket
- Quick reconnect for previously authorized Web Bluetooth devices
- Threshold and max-output controls
- Stop/close resets output to zero
Quick Start
1. Install Locally
- Open Chrome or Edge.
- Go to
chrome://extensions. - Enable Developer mode.
- Click Load unpacked.
- Select the cloned
vibetab-chrome-extensionfolder.
Some official Google Chrome builds may ignore command-line extension loading flags. Use the chrome://extensions flow above for local testing.
2. Sync A Toy
- Open a tab that is playing audio or video.
- Click the VibeTab extension button.
- In the VibeTab control tab, confirm or change the target tab.
- Choose a device driver.
- Click the main connect and vibe button.
- Pick the device in the browser chooser, or connect through Intiface when using the WebSocket bridge.
- Keep the VibeTab control tab open while using it.
Connecting starts RMS linkage automatically. Press Stop to stop linkage and disconnect the device.
Device Compatibility
| Device path | Transport | Output mapping | Notes |
|---|---|---|---|
| Hudou GK03 | Native Web Bluetooth | L0-L6 payloads | Choose GK03 in the browser Bluetooth chooser. |
| Lovense | Native Web Bluetooth | Vibrate:0..20 | Choose a nearby LVS-* / LOVE-* device. |
| Buttplug / Intiface | Local WebSocket | ScalarCmd 0.0..1.0 | Start Intiface Central, keep the default ws://127.0.0.1:12345, then connect from VibeTab. |
Advanced actions are folded under Advanced settings:
- Reconnect last reconnects a previously authorized native BLE device and starts linkage.
- Scan all shows all nearby BLE devices, then verifies that the selected device exposes the expected service.
After the first browser authorization, Reconnect last can reconnect to a previously authorized native BLE device without opening the Bluetooth chooser again.
Safety Defaults
- Output is limited to 70% by default.
- Output ramps between GK03 levels instead of jumping instantly.
- Closing the control tab or pressing Stop sends a zero output.
- The extension does not expose arbitrary raw BLE writes.
Pair Another GK03
- Put the other GK03 into BLE waiting/pairing mode.
- Click the main GK03 connect button and choose that GK03 in the browser Bluetooth chooser.
- If it does not appear, disconnect it from its phone or original app first, then reopen the chooser.
Browser and Device Notes
- Desktop Chrome or Edge is the primary target.
- Web Bluetooth must be available and enabled.
- VibeTab opens its control page in a regular extension tab. Web Bluetooth device choosers may fail from Chrome extension popup windows.
- The operating system Bluetooth adapter must be on.
- Some protected pages and browser internal pages cannot be captured.
- If a BLE device is already connected to a phone, disconnect it there before connecting from desktop.
- Buttplug / Intiface support currently targets the v3 JSON message flow (
RequestServerInfo,StartScanning,RequestDeviceList,ScalarCmd) for compatibility with Intiface-style servers.
Local Tests
Serve the project folder and open the test pages:
python3 -m http.server 8766
http://127.0.0.1:8766/test/ble-smoke.htmlverifies Web Bluetooth, GK03 service discovery, and the seven haptic payloads.http://127.0.0.1:8766/test/tab-audio.htmlplays a pulsing oscillator for RMS capture tests.
Documentation
Roadmap
- Buttplug v4
OutputCmdadapter - Driver manifest format
- English/Chinese UI toggle
- Optional local calibration profile
- Chrome Web Store packaging checklist