The CLI.
Any machine with a terminal becomes a Jam speaker — a laptop, a headless Linux box, a Raspberry Pi wired to the living-room amp. Same sync engine, same membership, no browser.
Install
Node 20+ required. The speaker module builds native audio bindings during install; on machines without a sound device the CLI automatically runs as a sync monitor instead.
# npm (or pnpm add -g / yarn global add / bun add -g) npm install -g syncwave-cli # no install — run it straight npx syncwave-cli # from source git clone https://github.com/hexx69/syncwave.git cd syncwave && pnpm install && node apps/cli/bin/syncwave.mjs
Use it
# interactive — pick from your Jams, create, or join syncwave # join straight in (a full invite link works too) syncwave BLUE42 --server wss://your-sync-server/ws # create a Jam from the terminal syncwave --create "Kitchen speakers"
The server URL and your name are remembered after the first run (~/.config/syncwave/session.json), and so is every Jam you join — one-time code entry, exactly like the web app.
Be the server
Every Jam lives on a sync server, and the server ships inside this CLI — one person (you, a friend, a home server, a Pi) runs serve; everyone else just opens the web app or CLI pointed at it: ?server=wss://… on the web, --server in the terminal.
syncwave serve --port 4001 # jams persist in ~/.config/syncwave/server-data # Spotify Connect devices work when librespot is installed # run it as a login service — starts at boot, restarts on crash syncwave service install # (uninstall / status too)
On a laptop, note that closing the lid sleeps the machine and the server with it — always-on hosting wants a desktop, home server, or a Mac set to stay awake while plugged in.