{"repo":"avisforevelyn/Duetto","free":true,"listed":false,"github":"https://github.com/avisforevelyn/Duetto","clone":"git clone https://github.com/avisforevelyn/Duetto.git","description":"Duetto — self-hostable listen-together player for two, with an AI companion that actually listens. 可自部署的双人一起听歌播放器，AI 真的听过你们的每一首歌。","language":"JavaScript","stars":51,"topics":[],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"Duetto listen together, in tune. Duetto is a self-hostable listen-together music player for two, with a bring-your-own-AI companion that actually listens — it hears the audio of every song you share a room with, remembers the moments you point at a lyric, and grows a memory of what each song means to the two of you. Features - Real audio playback — play/pause, seek, prev/next, live progress, play modes (loop / one / shuffle); the next track's stream URL is prefetched the moment playback starts, so lock-screen/background playback never stalls - Listen together — share a room; play / pause / seek sync in real time over WebSocket; share songs into the room chat as cards; status cards announce who played, paused, hearted, or collected what (system-triggered pauses like screen locks are filtered out) - An AI that actually listens — the companion downloads the very stream you're hearing and listens to it with a multimodal model (falls back to full timed lyrics if your endpoint can't take audio). Analyses are made once per song and cached forever. Every chat request carries: playback position, the exact lyric line playing right now, how many times you've played the song together, the listening analysis, and the rolling memory grown from your conversations about it - Two reply styles , switchable in room settings — split chat bubbles (WeChat-style), or a single full reply with a visible thinking chain you can unfold - Quote a lyric — long-press a line (in the full lyric page or the r","default_branch":null,"files":null,"tree":[],"storefront":"/r/avisforevelyn","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/avisforevelyn/Duetto/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}