Analysis updated 2026-05-18
Listen to the same song in sync with a partner or friend from different locations.
Ask an AI companion about a specific lyric line while a song plays.
Build up a shared memory of what songs mean to you and a listening partner over time.
Self-host a private two-person music room protected by a PIN.
| avisforevelyn/duetto | 0xsufi/fable-jailbreak | akitaonrails/frank_scanlation | |
|---|---|---|---|
| Stars | 47 | 47 | 47 |
| Language | JavaScript | JavaScript | JavaScript |
| Setup difficulty | moderate | easy | moderate |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | developer | general |
Figures from each repo's GitHub metadata at analysis time.
Requires Node 24+ and your own AI provider API key to enable the listening companion.
Duetto is a self-hosted music player built for two people to listen together, with an AI companion attached to the room. When one person opens the app and shares a room link with the other, play, pause, and seek actions stay in sync between both listeners in real time. Songs can be shared into the room as chat cards, and status updates announce who played, paused, or liked a track. What makes it different from a typical listen-together app is that the AI companion actually processes the audio of the song being played, using a multimodal model you connect yourself, rather than just reading song titles. It builds up a memory of what each song means to the two people over time, based on their conversation about it, and that memory gets included the next time they discuss the same song. Users can long-press a lyric line to quote it in chat or ask questions about that specific line, and the AI can also take actions in the room, such as playing, queueing, or pausing a song, through inline chat commands. The app also integrates with NetEase Cloud Music for search, playlists, and daily recommendations, supports adding your own songs by pasting a direct audio link, and can be installed as a progressive web app with lock-screen playback controls. On the technical side, the frontend is built in React without a build step, and the backend runs on Express with WebSocket for syncing, storing long-term data like song archives and chat memory in SQLite. Running it requires Node 24 or newer, installing dependencies, and starting the server, after which you configure your own AI provider's endpoint and API key inside the app. A PIN-based access gate protects the deployment once set up. This project is aimed at developers comfortable self-hosting a small app for themselves and one other person, such as a partner or close friend, rather than a public multi-user service.
A self-hosted listen-together music player for two people with an AI companion that hears the songs and remembers your conversations about them.
Mainly JavaScript. The stack also includes JavaScript, React, Express.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.