Skip to content

Latest commit

 

History

History
253 lines (206 loc) · 33.5 KB

README.md

File metadata and controls

253 lines (206 loc) · 33.5 KB

spotatui logo
spotatui

A fast music player for the terminal and the desktop, written in Rust.
Spotify through its own built-in client, plus local files, Subsonic/Navidrome, internet radio, YouTube and Qobuz, and Apple Music on macOS.

Install · Docs · Desktop app · Contributing · Discord

Crates.io Discord Songs played using spotatui spotatui Contributors

Demo

Table of Contents

About

spotatui is a music player for the terminal, with a desktop app in preview. Spotify is optional: it is one of seven sources.

  • Synced lyrics, and a real-time audio visualizer.
  • A play queue that mixes tracks from different sources.
  • Playlist sync: mirror one playlist onto Spotify, Qobuz, Subsonic or YouTube.
  • Lua plugins for commands, keys, popups and themes.
  • An AI DJ inside the app, or your coding agent as the DJ over MCP.
  • A local listening history with stats and a shareable recap.
  • A CLI for playback, search and playlists.

Spotify needs Premium. spotatui logs in with its own built-in client, so you need no developer app and no client ID.

spotatui started as a fork of spotify-tui and has since grown its own player, sources and desktop app.

Installation

Spotify is optional: every other source works without an account.

System Command
macOS, Linux, WSL curl -fsSL https://spotatui.com/install.sh | bash
Windows irm https://spotatui.com/install.ps1 | iex or winget install spotatui
Arch Linux yay -S spotatui-bin
With Rust cargo install --locked spotatui

Homebrew, Nix, Void, .deb packages and building from source are in the installation guide.

  • Desktop app: download the installer for your system from the latest release. See Desktop app.
  • Features per build: the prebuilt terminal binaries include every source, the MCP server and the AI DJ. cargo install builds Spotify only unless you add the features, and the Nix flake builds Spotify only.
  • Updates: the terminal app updates itself. If a package manager installed it, set behavior.disable_auto_update: true. See Updating.

Quickstart

Run spotatui. The first launch asks which sources you want. Pick Spotify to log in: spotatui shows a code and opens Spotify's pairing page, where you confirm it.

Then:

  • ? lists every key.
  • / searches. Choose the Songs panel with the arrow keys, press Enter to go into it, and Enter again to play a track.
  • d switches the source and the device.
  • z queues a track, and Shift+Q opens the queue.
  • spotatui --help shows the CLI.

Sources

Source You need
Spotify A Premium account
Local Files A music folder
Subsonic / Navidrome A server account
Internet Radio Nothing (30k+ stations from radio-browser.info)
YouTube yt-dlp on your PATH
Qobuz A paid Qobuz account
Apple Music macOS and the Music app

Local Files, Subsonic, Internet Radio, YouTube and Qobuz play through spotatui's own audio engine. Apple Music plays in the Music app, and spotatui is its remote. The setup of each source is in Configuration.

Spotify plays in spotatui itself, on any Spotify Connect device, or on Cast and Connect speakers on your network. See Where Spotify plays.

Learn more

You want to Read
Install another way, or build from source Installation
Change settings, keys or the theme Configuration, Keybindings, Themes
Control spotatui from your shell CLI
Write or install a Lua plugin PLUGINS.md, Scripting API
Let an AI pick the music AI DJ, MCP setup
Report a bug New issue, with a spotatui --debug log
Everything else All docs

Contributing

spotatui is built by a small team and a growing group of contributors, and you do not need to write code to help. Start with CONTRIBUTING.md, or pick a good first issue.

Native playback and Spotify Connect run on our librespot fork, spotatui-librespot. It is part of the project: a merged PR there counts as a spotatui contribution. See Contributing to the librespot fork.

Song History

Song History

Star History

Star History Chart

Maintainers

Originally forked from spotify-tui by Alexander Keliris. The spotify-tui contributors and the libraries spotatui uses are in CREDITS.md.

Code signing policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation.

The Windows release files are built from this repository by the release workflow on GitHub-hosted runners. Each signing request is approved by hand.

Privacy: see the privacy policy for the data spotatui sends and how to turn each part off.

spotatui Contributors

Everyone who helped, with code or without. To get on this list, see Recognition.

LargeModGames
LargeModGames

💻 📖 🚧 🤔 🚇 ⚠️
shilicioo
shilicioo

💻 🚧
2570165831
2570165831

💻 🚧
Oud
Oud

💻 🚧
MysteriousWolf
MysteriousWolf

💻
rawcode1337
rawcode1337

💻 🐛
copeison
copeison

📦
jacklorusso
jacklorusso

📖
H41L33
H41L33

📖
LordMZTE
LordMZTE

💻 📦
Sebastian Sarco
Sebastian Sarco

💻
Sergio Tabernero Hernández
Sergio Tabernero Hernández

💻 📦
David Novakovic
David Novakovic

💻
Paul
Paul

🎨 💻
Arun Felix
Arun Felix

💻 🐛
MaySeikatsu
MaySeikatsu

💻 📖 📦
Lorenzo Bodini
Lorenzo Bodini

💻 🎨
Vi1i Petal
Vi1i Petal

💻 🐛
Will Sturgeon
Will Sturgeon

💻 🐛
wfinken
wfinken

💻 🐛
Jacob
Jacob

📦
Dominick Lee
Dominick Lee

💻
Higor Prado
Higor Prado

💻
Vitali Kaplich
Vitali Kaplich

📖
knth
knth

💻
Lorelei Noble
Lorelei Noble

💻
Ben Allen
Ben Allen

💻
Thomas Allan
Thomas Allan

💻
Pratyoosh Prakash
Pratyoosh Prakash

💻 🐛
Tahmid Ahmed
Tahmid Ahmed

💻
Ritze
Ritze

💻 🐛
Hansen
Hansen

📖
Yusuke Hayashi
Yusuke Hayashi

💻 📖
Felix
Felix

💻
Dino Leung
Dino Leung

📦
Szabó István
Szabó István

📖
Alessandro Zanni
Alessandro Zanni

💻
nohint404
nohint404

💻
TongTong0828
TongTong0828

💻
Hi-1mYara
Hi-1mYara

💻 📖
Yvoo
Yvoo

💻
Maurice Schmicking
Maurice Schmicking

💻
Tayfur Yıldız
Tayfur Yıldız

💻
Vladimir Babin
Vladimir Babin

💻
Kratos
Kratos

💻
niukanen1
niukanen1

💻
Trevor Satori
Trevor Satori

💻 🐛
Y.B.
Y.B.

💻
Ufuk Emre Yücetürk
Ufuk Emre Yücetürk

💻
WaterWhisperer
WaterWhisperer

📖
Marc Bauer
Marc Bauer

💻 💵
RohithPariki
RohithPariki

💻
Muaaz Bhyat
Muaaz Bhyat

💻
점[dot]
점[dot]

💻
Samuel
Samuel

📖
TastyHeadphones
TastyHeadphones

📖
Michael
Michael

💻
Battlelamb
Battlelamb

📖 💻
markus
markus

📖
Drying
Drying

📖
Gaurav Vijay Jadhav
Gaurav Vijay Jadhav

💻
Anand B
Anand B

💻
AAA
AAA

📖 💻
Arnar
Arnar

📦

This project follows the all-contributors specification. Contributions of any kind welcome!