VibeTab

June 5, 2026 · View on GitHub

中文说明

VibeTab overview

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 syncToy-ready controlPrivacy-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

VibeTab architecture

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..20 mapping
  • 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

VibeTab quick start

1. Install Locally

  1. Open Chrome or Edge.
  2. Go to chrome://extensions.
  3. Enable Developer mode.
  4. Click Load unpacked.
  5. Select the cloned vibetab-chrome-extension folder.

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

  1. Open a tab that is playing audio or video.
  2. Click the VibeTab extension button.
  3. In the VibeTab control tab, confirm or change the target tab.
  4. Choose a device driver.
  5. Click the main connect and vibe button.
  6. Pick the device in the browser chooser, or connect through Intiface when using the WebSocket bridge.
  7. 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 pathTransportOutput mappingNotes
Hudou GK03Native Web BluetoothL0-L6 payloadsChoose GK03 in the browser Bluetooth chooser.
LovenseNative Web BluetoothVibrate:0..20Choose a nearby LVS-* / LOVE-* device.
Buttplug / IntifaceLocal WebSocketScalarCmd 0.0..1.0Start 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

  1. Put the other GK03 into BLE waiting/pairing mode.
  2. Click the main GK03 connect button and choose that GK03 in the browser Bluetooth chooser.
  3. 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.html verifies Web Bluetooth, GK03 service discovery, and the seven haptic payloads.
  • http://127.0.0.1:8766/test/tab-audio.html plays a pulsing oscillator for RMS capture tests.

Documentation

Roadmap

  • Buttplug v4 OutputCmd adapter
  • Driver manifest format
  • English/Chinese UI toggle
  • Optional local calibration profile
  • Chrome Web Store packaging checklist