Overview

Your TV is the stage. Everybody’s phone is the remote. Nobody installs anything.

KaraokeArcade runs the whole night from a browser. Guests scan a QR code, search your library, queue a song and watch their place in line from the couch. You self-host it on a laptop, a Mac mini, a Raspberry Pi or a NAS - no accounts to make, no subscription, no ads, nothing phoning home.

App in mobile browser (top) controlling player in desktop browser (bottom)

One queue, three kinds of turn

There is one rotation and everything takes its turn in it. A trivia round and a singer battle sit in the queue exactly like a song does - they come round when they come round, and each costs a turn.

Trivia and battles are off until a host turns them on for a room, so a night that is only songs is only songs.

Karaoke

The part everybody came for. See the app for how each screen works.

Trivia

Music trivia that takes the gap between two singers, so the room has something to do - and the guests who would rather not sing get a way to play. See Trivia.

Singer Battle

One turn, two singers, and each of them picks the other’s song. It runs on the TV as an arcade cabinet: fighters, a VS slam, two-minute rounds and a verdict. See Battle.

Create your own fighters with CharacterAssetGenerator .

Good to know

Microphones are not required since the player itself only outputs music - this allows your audio setup to be as simple or complex as you like. See the F.A.Q. for more information.

How KaraokeArcade compares

KaraokeArcade is a fork of Karaoke Eternal , and tracks it for the media, scanning and server side. Where it differs is what the night feels like for the people in the room.

KaraokeArcade Karaoke Eternal
Queue from your phone Yes Yes
MP3+G, MP4, visualizer Yes Yes
QR-code joining, guest accounts Yes Yes
Fair round-robin rotation Yes Yes
Reorder your own songs Drag them on your Me tab Host only
See how long until your turn Counts down in the header Guess from the list
Step away without losing your spot Pause and resume Remove and re-queue
Between songs Intermission names the next singer Songs run back-to-back
Music trivia rounds Built in, takes its own turn
Head-to-head singer battles Built in, with fighters and a room vote
Make your own fighters A written brief becomes sprite sheets, via an AI pipeline
What you’ve sung Kept per singer, across parties
Change key ±6 semitones, same tempo, remembered next time you queue it
Look and feel DECK — dark, mixing-desk The original Karaoke Eternal UI
Self-hosted, ad-free, no telemetry Yes Yes

Both are free and ISC-licensed. If you want the original’s simplicity, it’s an excellent piece of software and you should use it.

Getting Started

KaraokeArcade has three parts. See Getting Started to get up and running step-by-step, or jump to the documentation for each part below:

Installation

There are several installation methods available for KaraokeArcade Server.

Discord & Support

For bugs and requests specific to KaraokeArcade, open an issue . For general karaoke-system support and development chat, there’s the Karaoke Eternal Discord Server , home of the project KaraokeArcade is forked from .

Contributing & Development

Contributions are welcome - please open an issue before starting on anything major, since the project’s scope is deliberately narrow.

You’ll need Node.js v24 or later and Bun v1.2 or later:

  1. Fork and clone the repo
  2. bun install
  3. npm run dev, then look for “Web server running at” for the server URL

Other useful scripts: npm test (vitest), npm run lint, npm run typecheck, and npm run build followed by npm run serve for a production run.

Acknowledgements