whatisgithub

What is catunes?

r0madev/catunes — explained in plain English

Analysis updated 2026-05-18

26TypeScriptAudience · developerComplexity · 2/5LicenseSetup · moderate

In one sentence

Catunes is a terminal music player with a retro visualizer that streams from YouTube, radio, or local files, and lets friends listen together in synced rooms.

Mindmap

mindmap
  root((catunes))
    What it does
      Terminal music player
      Retro visualizer
      Synced listening rooms
    Tech stack
      TypeScript
      mpv
      yt-dlp
      Docker
    Use cases
      Stream YouTube or radio
      Watch visualizer
      Host shared room
    Audience
      Developers
      Music listeners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Play music from YouTube, radio stations, or local files directly in the terminal

USE CASE 2

Watch a retro-style audio visualizer while listening to music

USE CASE 3

Host a shared listening room where friends take turns picking the next track

USE CASE 4

Control a running player session from a separate terminal tab

What is it built with?

TypeScriptmpvyt-dlpDockerWebSocket

How does it compare?

r0madev/catunesantonp29/sylvasignerdevagrawal09/specter
Stars262626
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderatemoderatemoderate
Complexity2/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires installing mpv and optionally yt-dlp before the npm package works.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

Catunes is a terminal-based music player that lets you stream audio from YouTube, internet radio stations, other streaming URLs, or local files, all from the command line. It has a retro visual style and includes a live audio visualizer with several display modes including bars, mirror, oscilloscope, and a plasma effect. Basic controls like play, pause, seek, and volume adjust use single-key shortcuts, and the current track name appears in the terminal title bar. Beyond solo listening, the project includes a room mode where multiple people can join a shared session using a code and listen to the same music in sync. Rooms follow a round-robin DJ rotation, so each participant takes a turn choosing what plays next. The room feature requires a relay server that can be self-hosted using Docker. The client itself runs natively on your machine, since audio playback needs access to your speakers and cannot run inside Docker. Installation requires two external tools: mpv, which handles audio playback, and yt-dlp, which is only needed when playing YouTube or similar sites. Once both are installed, you can install catunes from npm and start playing a URL with a single command. A built-in doctor command checks whether the required tools are present. You can also control a running player from a separate terminal tab without needing any terminal multiplexer. The project is split into two packages: a client that handles the player interface and audio, and a server that acts as the WebSocket relay for rooms. Themes are customizable by editing a JSON config file. The roadmap shows that synced rooms and DJ rotation are still in progress as of the current release. Catunes does not download or store music files, it only streams content. The project is MIT-licensed and available in English and Spanish documentation.

Copy-paste prompts

Prompt 1
Show me how to install catunes along with mpv and yt-dlp and play my first track.
Prompt 2
Explain how the room mode and DJ rotation work in catunes.
Prompt 3
Help me self-host the catunes relay server with Docker for a listening room.
Prompt 4
How do I customize the terminal visualizer theme using the JSON config file?

Frequently asked questions

What is catunes?

Catunes is a terminal music player with a retro visualizer that streams from YouTube, radio, or local files, and lets friends listen together in synced rooms.

What language is catunes written in?

Mainly TypeScript. The stack also includes TypeScript, mpv, yt-dlp.

What license does catunes use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is catunes to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is catunes for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.