Play Spotify from your terminal, on Linux, macOS and Windows.
spotatui is a keyboard-driven Spotify TUI (terminal client) written in Rust. It streams natively with no spotifyd and no desktop app, shows synced lyrics and a real-time visualizer, and automates from the CLI. And it is no longer just Spotify: the same player streams YouTube, Navidrome/Subsonic servers, live internet radio and your local files.
Native playback, no daemon
Streams Spotify directly through its own audio engine. No spotifyd, no desktop client, no Connect device to keep alive in the background.
Synced lyrics and visualizer
Line-by-line lyrics that follow the track and a real-time FFT visualizer, in the same pane as your queue. No browser tab, no overlay.
CLI automation
Search, control playback and export recaps from scripts, or go further with Lua plugins that react to playback events.
Everything in one shell-native surface.
Keyboard-driven browsing across tracks, albums, artists and playlists. Themes (Dracula, Nord and more), Discord Rich Presence, and local listening history that powers recap exports without forcing cloud sync — all in about 78 MB of RAM.
Free sources need no Premium at all.
Spotify Premium is only required for the Spotify source. YouTube, Navidrome/Subsonic, internet radio and local files work with no Spotify account, so spotatui is fully usable as a general terminal music player. See all music sources.
Common questions
Do I need spotifyd or the Spotify desktop app?
No. spotatui streams natively through its own audio engine, so there is no daemon or desktop client to run alongside it. Log in once and press play.
Does spotatui only play Spotify?
No. The same terminal player also streams YouTube (via yt-dlp), Navidrome and other Subsonic-compatible servers, live internet radio, and your local files. Those sources are free and need no Spotify account.
Does it run on Windows?
Yes. spotatui ships prebuilt binaries for Windows, macOS and Linux, and installs with winget, Homebrew, Cargo, the AUR or Nix.