Build the extension.
The source is public and buildable now. Chrome Web Store distribution, account-backed timer sync, saved profiles, and hosted audio are not released yet.
Three layers. One sphere. Drag the faders.
A custom WebGL shader paints each fader as a color band on the orb. This page previews the three mixer controls in the source; it does not prove public audio delivery.
This is the extension, visualized. Every fader drives a shader uniform. The same three layers power your actual session — ambient, music, voice — in each listener's ears, never broadcast.
Four inspectable parts.
Local faders.
Timer engine.
Optional recap.
Content script.
Never reads page content. Ever.
Audio mixing stays in Web Audio. The current extension stores its own settings locally. A recap request leaves the browser only after the disclosure and opt-in. Hosted timer sync and profile saving are not wired in the public build.
Open source so you can verify — read the source.
Shortcuts on any page.
- ⌘J·Show / hide overlay
- ⌘K·Start / pause pomodoro
- ⌘⇧M·Mute all layers
MIT, Plasmo, zero lock-in.
The mixer, timer, recap prompt, and card renderer live as workspace packages in the public repo. They are not published to npm yet.
git clone https://github.com/frankxai/vibeclubs
cd vibeclubs
pnpm install
pnpm dev:extensionimport { createMixer } from '@vibeclubs/vibe-mix'
const mixer = createMixer({
ambientBaseUrl: yourAudioBaseUrl,
})
await mixer.loadAmbient('lofi')
mixer.setLevel('ambient', 0.4)