spotatui
> A Spotify client for the terminal written in Rust, powered by Ratatui.
>
> A community-maintained fork of spotify-tui, actively developed with new features like native streaming, synced lyrics, and real-time audio visualization.


Song History

Table of Contents
Help Wanted
spotatui is currently maintained by a solo developer. More contributors would be hugely appreciated! Here's how you can help:
- Star the repo to help others discover the project
- Report bugs or request features in Issues
- Join the community in Discussions
- Submit a PR for code, docs, or themes
See CONTRIBUTING.md for more details!
Performance
spotatui is extremely lightweight compared to the official Electron client.
| Mode | RAM Usage |
|---|
| Native Streaming (Base) | ~48 MB |
| With Synced Lyrics | ~48 MB |
| With System-Wide Visualizer | ~56 MB |
Tested on Arch Linux (Hyprland).
Privacy Notice
Anonymous Global Counter: spotatui includes an opt-in feature that contributes to a global counter showing how many songs have been played by all users worldwide. This feature:
- Is completely anonymous - no personal information, song names, artists, or listening history is collected
- Only sends a simple increment when a new song starts playing
- Is enabled by default but can be opted out at any time
- Can be disabled by setting
enable_global_song_count: false in ~/.config/spotatui/config.yml
We respect your privacy. This is purely a fun community metric with zero tracking of individual users.
Migrating from spotify-tui
If you used the original spotify-tui before:
- The binary name changed from
spt to spotatui.
- Config paths changed:
- Old:
~/.config/spotify-tui/
- New:
~/.config/spotatui/
You can copy your existing config:
mkdir -p ~/.config/spotatui
cp -r ~/.config/spotify-tui/* ~/.config/spotatui/
You may be asked to re-authenticate with Spotify the first time.
Installation
# Homebrew (macOS/Linux)
brew tap LargeModGames/spotatui
brew install spotatui
# Winget (Windows)
winget install spotatui
# Cargo
cargo install spotatui
# Arch Linux (AUR) - pre-built binary (faster)
yay -S spotatui-bin
# Arch Linux (AUR) - build from source
yay -S spotatui
Or download pre-built binaries from GitHub Releases.
See the Installation Wiki for platform-specific requirements and building from source.
Connecting to Spotify
Run spotatui and follow the on-screen instructions to connect your Spotify account.
You'll need to create a Spotify Developer app at the Spotify Dashboard.
See the Installation Wiki for step-by-step setup.
Usage
The binary is named spotatui.
Running spotatui with no arguments will bring up the UI. Press ? to bring up a help menu that shows currently implemented key events and their actions.
There is also a CLI that is able to do most of the stuff the UI does. Use spotatui --help to learn more.
See Keybindings Wiki for the full list of keyboard shortcuts.
Here are some example to get you excited.
spotatui --completions zsh # Prints shell completions for zsh to stdout (bash, power-shell and more are supported)
spotatui play --name "Your Playlist" --playlist --random # Plays a random song from "Your Playlist"
spotatui play --name "A cool song" --track # Plays 'A cool song'
spotatui playback --like --shuffle # Likes the current song and toggles shuffle mode
spotatui playback --toggle # Plays/pauses the current playback
spotatui list --liked --limit 50 # See your liked songs (50 is the max limit)
# Looks for 'An even cooler song' and gives you the '{name} from {album}' of up to 30 matches
spotatui search "An even cooler song" --tracks --format "%t from %b" --limit 30
Native Streaming
spotatui can play audio directly without needing spotifyd or the official Spotify app. Just run spotatui and it will appear as a Spotify Connect device.
- Works with media keys, MPRIS (Linux), and macOS Now Playing
- Premium account required
See the Native Streaming Wiki for setup details.
Configuration
A configuration file is located at ${HOME}/.config/spotatui/config.yml.
See the Configuration Wiki for the full config file reference.
You can also configure spotatui in-app by pressing Alt-, to open Settings.
See Themes Wiki for built-in presets (Spotify, Dracula, Nord, etc.).
Discord Rich Presence
Discord Rich Presence is enabled by default and uses the built-in spotatui application ID, so no extra setup is required.
Overrides (optional):
behavior:
enable_discord_rpc: true
discord_rpc_client_id: "your_client_id"
You can also override via SPOTATUI_DISCORD_APP_ID or disable in the setting or by setting behavior.enable_discord_rpc: false in ~/.config/spotatui/config.yml.
Limitations
This app uses the Web API from Spotify, which doesn't handle streaming itself. You have three options for audio playback:
- Native Streaming (NEW!) - spotatui can now play audio directly using its built-in streaming feature. See Native Streaming below.
- Official Spotify Client - Have the official Spotify app open on your computer
- Spotifyd - Use a lightweight alternative like spotifyd
If you want to play tracks, Spotify requires that you have a Premium account.
Deprecated Spotify API Features
Note: As of November 2024, Spotify deprecated and removed access to certain API endpoints for new applications. The following features are included in this app but will only work if your Spotify Developer application was created before November 27, 2024:
-
Audio Visualization (press v): Now uses local real-time FFT analysis of your system audio. The visualization no longer depends on Spotify's deprecated Audio Analysis API.
Platform Support:
| Platform | Status | Notes |
|---|
| Windows | Works out of the box | Uses WASAPI loopback |
| Linux | Works out of the box | Uses PipeWire/PulseAudio monitor devices |
| macOS | Requires setup | Needs a virtual audio device (see below) |
> macOS Users: macOS doesn't natively expose system audio loopback. To use audio visualization, install a virtual audio device like BlackHole (free) or Loopback (paid). Configure it to capture system audio and set it as your default input device.
> Note: The audio visualization is system-wide - it captures all audio playing on your system, not just Spotify. This means it will also react to YouTube videos, games, or any other audio source!
-
Related Artists: When viewing an artist page, the "Related Artists" section shows similar artists based on Spotify's recommendation algorithm. This feature only works if your Spotify Developer application was created before November 27, 2024.
For more information, see Spotify's announcement about API changes.
> Note: If you're using native streaming, you don't need spotifyd!
Follow the spotifyd documentation to get set up.
After that there is not much to it.
- Start running the spotifyd daemon.
- Start up
spotatui
- Press
d to go to the device selection menu and the spotifyd "device" should be there - if not check these docs
Libraries used
Development
- Install OpenSSL
- Install Rust
- Install
xorg-dev (required for clipboard support)
- Linux only: Install PipeWire development libraries (required for audio visualization)
# Debian/Ubuntu
sudo apt-get install libpipewire-0.3-dev libspa-0.2-dev
# Arch Linux
sudo pacman -S pipewire
# Fedora
sudo dnf install pipewire-devel
- Clone or fork this repo and
cd to it
- And then
cargo run
See CONTRIBUTING.md for pull request guidelines.
Windows Subsystem for Linux
You might get a linking error. If so, you'll probably need to install additional dependencies required by the clipboard package
sudo apt-get install -y -qq pkg-config libssl-dev libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
Maintainer
Maintained by LargeModGames.
Originally forked from spotify-tui by Alexander Keliris.
spotatui Contributors
Looking for contributors! spotatui is actively maintained but could use your help. Whether it's bug fixes, new features, documentation, or testing - all contributions are welcome!
<a href="https://github.com/LargeModGames"><img src="https://avatars.githubusercontent.com/u/84450916?v=4?s=100" width="100px;" /><b>LargeModGames</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=LargeModGames">π»</a> <a href="https://github.com/LargeModGames/spotatui/commits?author=LargeModGames">π</a> <a href="#maintenance-LargeModGames">π§</a> <a href="#ideas-LargeModGames">π€</a> <a href="#infra-LargeModGames">π</a> <a href="https://github.com/LargeModGames/spotatui/commits?author=LargeModGames">β οΈ</a>
<a href="https://github.com/MysteriousWolf"><img src="https://avatars.githubusercontent.com/u/5306409?v=4?s=100" width="100px;" /><b>MysteriousWolf</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=MysteriousWolf">π»</a>
<a href="https://github.com/rawcode1337"><img src="https://avatars.githubusercontent.com/u/80097670?v=4?s=100" width="100px;" /><b>rawcode1337</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=rawcode1337">π»</a> <a href="https://github.com/LargeModGames/spotatui/issues?q=author%3Arawcode1337">π</a>
<a href="https://github.com/copeison"><img src="https://avatars.githubusercontent.com/u/184175589?v=4?s=100" width="100px;" /><b>copeison</b></a><a href="#platform-copeison">π¦</a>
<a href="https://github.com/jacklorusso"><img src="https://avatars.githubusercontent.com/u/19835679?v=4?s=100" width="100px;" /><b>jacklorusso</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=jacklorusso">π</a>
<a href="https://github.com/H41L33"><img src="https://avatars.githubusercontent.com/u/140116782?v=4?s=100" width="100px;" /><b>H41L33</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=H41L33">π</a>
<a href="https://mzte.de"><img src="https://avatars.githubusercontent.com/u/28735087?v=4?s=100" width="100px;" /><b>LordMZTE</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=LordMZTE">π»</a>
<a href="https://github.com/bodoque-01"><img src="https://avatars.githubusercontent.com/u/63447579?v=4?s=100" width="100px;" /><b>Sebastian Sarco</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=bodoque-01">π»</a>
<a href="https://github.com/El-Mundos"><img src="https://avatars.githubusercontent.com/u/70759168?v=4?s=100" width="100px;" /><b>Sergio Tabernero HernΓ‘ndez</b></a><a href="https://github.com/LargeModGames/spotatui/commits?author=El-Mundos">π»</a>
Want to see your name here? Check out our open issues or the Roadmap below!
Upstream Contributors (spotify-tui)
Thanks to all the contributors who built the original spotify-tui that this project is forked from:
<a href="https://keliris.dev/"><img src="https://avatars2.githubusercontent.com/u/12150276?v=4?s=100" width="100px;" /><b>Alexander Keliris</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Rigellute">π»</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=Rigellute">π</a> <a href="#design-Rigellute">π¨</a> <a href="#blog-Rigellute">π</a> <a href="#ideas-Rigellute">π€</a> <a href="#infra-Rigellute">π</a> <a href="#platform-Rigellute">π¦</a> <a href="https://github.com/Rigellute/spotify-tui/pulls?q=is%3Apr+reviewed-by%3ARigellute">π</a>
<a href="https://github.com/mikepombal"><img src="https://avatars3.githubusercontent.com/u/6864231?v=4?s=100" width="100px;" /><b>Mickael Marques</b></a><a href="#financial-mikepombal">π΅</a>
<a href="https://github.com/HakierGrzonzo"><img src="https://avatars0.githubusercontent.com/u/36668331?v=4?s=100" width="100px;" /><b>Grzegorz Koperwas</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=HakierGrzonzo">π</a>
<a href="https://github.com/amgassert"><img src="https://avatars2.githubusercontent.com/u/22896005?v=4?s=100" width="100px;" /><b>Austin Gassert</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=amgassert">π»</a>
<a href="https://robinette.dev"><img src="https://avatars2.githubusercontent.com/u/30757528?v=4?s=100" width="100px;" /><b>Calen Robinette</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=calenrobinette">π»</a>
<a href="https://mcofficer.me"><img src="https://avatars0.githubusercontent.com/u/22377202?v=4?s=100" width="100px;" /><b>M*C*O</b></a><a href="#infra-MCOfficer">π</a>
<a href="https://github.com/eminence"><img src="https://avatars0.githubusercontent.com/u/402454?v=4?s=100" width="100px;" /><b>Andrew Chin</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=eminence">π»</a>
<a href="https://www.samnaser.com/"><img src="https://avatars0.githubusercontent.com/u/4377348?v=4?s=100" width="100px;" /><b>Sam Naser</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Monkeyanator">π»</a>
<a href="https://github.com/radogost"><img src="https://avatars0.githubusercontent.com/u/15713820?v=4?s=100" width="100px;" /><b>Micha</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=radogost">π»</a>
<a href="https://github.com/neriglissar"><img src="https://avatars2.githubusercontent.com/u/53038761?v=4?s=100" width="100px;" /><b>neriglissar</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=neriglissar">π»</a>
<a href="https://github.com/TimonPost"><img src="https://avatars3.githubusercontent.com/u/19969910?v=4?s=100" width="100px;" /><b>Timon</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=TimonPost">π»</a>
<a href="https://github.com/echoSayonara"><img src="https://avatars2.githubusercontent.com/u/54503126?v=4?s=100" width="100px;" /><b>echoSayonara</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=echoSayonara">π»</a>
<a href="https://github.com/D-Nice"><img src="https://avatars1.githubusercontent.com/u/2888248?v=4?s=100" width="100px;" /><b>D-Nice</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=D-Nice">π</a> <a href="#infra-D-Nice">π</a>
<a href="http://gpawlik.com"><img src="https://avatars3.githubusercontent.com/u/6296883?v=4?s=100" width="100px;" /><b>Grzegorz Pawlik</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=gpawlik">π»</a>
<a href="http://lenny.ninja"><img src="https://avatars1.githubusercontent.com/u/4027243?v=4?s=100" width="100px;" /><b>Lennart Bernhardt</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=LennyPenny">π»</a>
<a href="https://github.com/BlackYoup"><img src="https://avatars3.githubusercontent.com/u/6098160?v=4?s=100" width="100px;" /><b>Arnaud Lefebvre</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=BlackYoup">π»</a>
<a href="https://github.com/tem1029"><img src="https://avatars3.githubusercontent.com/u/57712713?v=4?s=100" width="100px;" /><b>tem1029</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=tem1029">π»</a>
<a href="http://peter.moss.dk"><img src="https://avatars2.githubusercontent.com/u/12544579?v=4?s=100" width="100px;" /><b>Peter K. Moss</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Peterkmoss">π»</a>
<a href="http://www.zephyrizing.net/"><img src="https://avatars1.githubusercontent.com/u/113102?v=4?s=100" width="100px;" /><b>Geoff Shannon</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=RadicalZephyr">π»</a>
<a href="http://zacklukem.info"><img src="https://avatars0.githubusercontent.com/u/8787486?v=4?s=100" width="100px;" /><b>Zachary Mayhew</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=zacklukem">π»</a>
<a href="http://jfaltis.de"><img src="https://avatars2.githubusercontent.com/u/45465572?v=4?s=100" width="100px;" /><b>jfaltis</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jfaltis">π»</a>
<a href="https://marcelschr.me"><img src="https://avatars3.githubusercontent.com/u/19377618?v=4?s=100" width="100px;" /><b>Marcel Schramm</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Bios-Marcel">π</a>
<a href="https://github.com/fangyi-zhou"><img src="https://avatars3.githubusercontent.com/u/7815439?v=4?s=100" width="100px;" /><b>Fangyi Zhou</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=fangyi-zhou">π»</a>
<a href="https://github.com/synth-ruiner"><img src="https://avatars1.githubusercontent.com/u/8642013?v=4?s=100" width="100px;" /><b>Max</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=synth-ruiner">π»</a>
<a href="https://github.com/svenvNL"><img src="https://avatars1.githubusercontent.com/u/13982006?v=4?s=100" width="100px;" /><b>Sven van der Vlist</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=svenvNL">π»</a>
<a href="https://github.com/jacobchrismarsh"><img src="https://avatars2.githubusercontent.com/u/15932179?v=4?s=100" width="100px;" /><b>jacobchrismarsh</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jacobchrismarsh">π»</a>
<a href="https://github.com/TheWalkingLeek"><img src="https://avatars2.githubusercontent.com/u/36076343?v=4?s=100" width="100px;" /><b>Nils Rauch</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=TheWalkingLeek">π»</a>
<a href="https://github.com/sputnick1124"><img src="https://avatars1.githubusercontent.com/u/8843309?v=4?s=100" width="100px;" /><b>Nick Stockton</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=sputnick1124">π»</a> <a href="https://github.com/Rigellute/spotify-tui/issues?q=author%3Asputnick1124">π</a> <a href="#maintenance-sputnick1124">π§</a> <a href="#question-sputnick1124">π¬</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=sputnick1124">π</a>
<a href="http://stuarth.github.io"><img src="https://avatars3.githubusercontent.com/u/7055?v=4?s=100" width="100px;" /><b>Stuart Hinson</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=stuarth">π»</a>
<a href="https://github.com/samcal"><img src="https://avatars3.githubusercontent.com/u/2117940?v=4?s=100" width="100px;" /><b>Sam Calvert</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=samcal">π»</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=samcal">π</a>
<a href="https://github.com/jwijenbergh"><img src="https://avatars0.githubusercontent.com/u/46386452?v=4?s=100" width="100px;" /><b>Jeroen Wijenbergh</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jwijenbergh">π</a>
<a href="https://twitter.com/KimberleyCook91"><img src="https://avatars3.githubusercontent.com/u/2683270?v=4?s=100" width="100px;" /><b>Kimberley Cook</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=KimberleyCook">π</a>
<a href="https://github.com/baxtea"><img src="https://avatars0.githubusercontent.com/u/22502477?v=4?s=100" width="100px;" /><b>Audrey Baxter</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=baxtea">π»</a>
<a href="https://koehr.in"><img src="https://avatars2.githubusercontent.com/u/246402?v=4?s=100" width="100px;" /><b>Norman</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=nkoehring">π</a>
<a href="https://github.com/blackwolf12333"><img src="https://avatars0.githubusercontent.com/u/1572975?v=4?s=100" width="100px;" /><b>Peter Maatman</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=blackwolf12333">π»</a>
<a href="https://github.com/AlexandreSi"><img src="https://avatars1.githubusercontent.com/u/32449369?v=4?s=100" width="100px;" /><b>AlexandreS</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=AlexandreSi">π»</a>
<a href="https://github.com/fiinnnn"><img src="https://avatars2.githubusercontent.com/u/5011796?v=4?s=100" width="100px;" /><b>Finn Vos</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=fiinnnn">π»</a>
<a href="https://github.com/hurricanehrndz"><img src="https://avatars0.githubusercontent.com/u/5804237?v=4?s=100" width="100px;" /><b>Carlos Hernandez</b></a><a href="#platform-hurricanehrndz">π¦</a>
<a href="https://github.com/pedrohva"><img src="https://avatars3.githubusercontent.com/u/33297928?v=4?s=100" width="100px;" /><b>Pedro Alves</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=pedrohva">π»</a>
<a href="https://gitlab.com/jtagcat/"><img src="https://avatars1.githubusercontent.com/u/38327267?v=4?s=100" width="100px;" /><b>jtagcat</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jtagcat">π</a>
<a href="https://github.com/BKitor"><img src="https://avatars0.githubusercontent.com/u/16880850?v=4?s=100" width="100px;" /><b>Benjamin Kitor</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=BKitor">π»</a>
<a href="https://ales.rocks"><img src="https://avatars0.githubusercontent.com/u/544082?v=4?s=100" width="100px;" /><b>AleΕ‘ Najmann</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=littleli">π</a> <a href="#platform-littleli">π¦</a>
<a href="https://github.com/jeremystucki"><img src="https://avatars3.githubusercontent.com/u/7629727?v=4?s=100" width="100px;" /><b>Jeremy Stucki</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jeremystucki">π»</a>
<a href="http://pt2121.github.io"><img src="https://avatars0.githubusercontent.com/u/616399?v=4?s=100" width="100px;" /><b>(Β΄β£`ΚΖͺ)</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=pt2121">π»</a>
<a href="https://github.com/tim77"><img src="https://avatars0.githubusercontent.com/u/5614476?v=4?s=100" width="100px;" /><b>Artem Polishchuk</b></a><a href="#platform-tim77">π¦</a>
<a href="https://github.com/slumber"><img src="https://avatars2.githubusercontent.com/u/48099298?v=4?s=100" width="100px;" /><b>Chris Sosnin</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=slumber">π»</a>
<a href="http://www.benbuhse.com"><img src="https://avatars1.githubusercontent.com/u/21225303?v=4?s=100" width="100px;" /><b>Ben Buhse</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=bwbuhse">π</a>
<a href="https://github.com/ilnaes"><img src="https://avatars1.githubusercontent.com/u/20805499?v=4?s=100" width="100px;" /><b>Sean Li</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=ilnaes">π»</a>
<a href="https://github.com/TimotheeGerber"><img src="https://avatars3.githubusercontent.com/u/37541513?v=4?s=100" width="100px;" /><b>TimotheeGerber</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=TimotheeGerber">π»</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=TimotheeGerber">π</a>
<a href="https://github.com/fratajczak"><img src="https://avatars2.githubusercontent.com/u/33835579?v=4?s=100" width="100px;" /><b>Ferdinand Ratajczak</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=fratajczak">π»</a>
<a href="https://github.com/sheelc"><img src="https://avatars0.githubusercontent.com/u/1355710?v=4?s=100" width="100px;" /><b>Sheel Choksi</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=sheelc">π»</a>
<a href="http://fnanp.in-ulm.de/microblog/"><img src="https://avatars1.githubusercontent.com/u/414112?v=4?s=100" width="100px;" /><b>Michael Hellwig</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=mhellwig">π</a>
<a href="https://github.com/oliver-daniel"><img src="https://avatars2.githubusercontent.com/u/17235417?v=4?s=100" width="100px;" /><b>Oliver Daniel</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=oliver-daniel">π»</a>
<a href="https://github.com/Drewsapple"><img src="https://avatars2.githubusercontent.com/u/4532572?v=4?s=100" width="100px;" /><b>Drew Fisher</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Drewsapple">π»</a>
<a href="https://github.com/ncoder-1"><img src="https://avatars0.githubusercontent.com/u/7622286?v=4?s=100" width="100px;" /><b>ncoder-1</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=ncoder-1">π</a>
<a href="http://macguire.me"><img src="https://avatars3.githubusercontent.com/u/18323154?v=4?s=100" width="100px;" /><b>Macguire Rintoul</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=macguirerintoul">π</a>
<a href="http://ricardohe97.github.io"><img src="https://avatars3.githubusercontent.com/u/28399979?v=4?s=100" width="100px;" /><b>Ricardo Holguin</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=RicardoHE97">π»</a>
<a href="https://ksk.netlify.com"><img src="https://avatars3.githubusercontent.com/u/13160198?v=4?s=100" width="100px;" /><b>Keisuke Toyota</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=ksk001100">π»</a>
<a href="https://jackson15j.github.io"><img src="https://avatars1.githubusercontent.com/u/3226988?v=4?s=100" width="100px;" /><b>Craig Astill</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=jackson15j">π»</a>
<a href="https://github.com/onielfa"><img src="https://avatars0.githubusercontent.com/u/4358172?v=4?s=100" width="100px;" /><b>Onielfa</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=onielfa">π»</a>
<a href="https://usrme.xyz"><img src="https://avatars3.githubusercontent.com/u/5902545?v=4?s=100" width="100px;" /><b>usrme</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=usrme">π</a>
<a href="https://github.com/murlakatamenka"><img src="https://avatars2.githubusercontent.com/u/7361274?v=4?s=100" width="100px;" /><b>Sergey A.</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=murlakatamenka">π»</a>
<a href="https://github.com/elcih17"><img src="https://avatars3.githubusercontent.com/u/17084445?v=4?s=100" width="100px;" /><b>Hideyuki Okada</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=elcih17">π»</a>
<a href="https://github.com/kepae"><img src="https://avatars2.githubusercontent.com/u/4238598?v=4?s=100" width="100px;" /><b>kepae</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=kepae">π»</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=kepae">π</a>
<a href="https://github.com/ericonr"><img src="https://avatars0.githubusercontent.com/u/34201958?v=4?s=100" width="100px;" /><b>Γrico Nogueira Rolim</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=ericonr">π»</a>
<a href="https://github.com/BeneCollyridam"><img src="https://avatars2.githubusercontent.com/u/15802915?v=4?s=100" width="100px;" /><b>Alexander Meinhardt Scheurer</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=BeneCollyridam">π»</a>
<a href="https://github.com/Toaster192"><img src="https://avatars0.githubusercontent.com/u/14369229?v=4?s=100" width="100px;" /><b>OndΕej KinΕ‘t</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Toaster192">π»</a>
<a href="https://github.com/Kryan90"><img src="https://avatars3.githubusercontent.com/u/18740821?v=4?s=100" width="100px;" /><b>Kryan90</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Kryan90">π</a>
<a href="https://github.com/n-ivanov"><img src="https://avatars3.githubusercontent.com/u/11470871?v=4?s=100" width="100px;" /><b>n-ivanov</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=n-ivanov">π»</a>
<a href="http://matthewbilyeu.com/resume/"><img src="https://avatars3.githubusercontent.com/u/1185129?v=4?s=100" width="100px;" /><b>bi1yeu</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=bi1yeu">π»</a> <a href="https://github.com/Rigellute/spotify-tui/commits?author=bi1yeu">π</a>
<a href="https://github.com/Utagai"><img src="https://avatars2.githubusercontent.com/u/10730394?v=4?s=100" width="100px;" /><b>May</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Utagai">π»</a>
<a href="https://mucinoab.github.io/"><img src="https://avatars1.githubusercontent.com/u/28630268?v=4?s=100" width="100px;" /><b>Bruno A. MuciΓ±o</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=mucinoab">π»</a>
<a href="https://github.com/OrangeFran"><img src="https://avatars2.githubusercontent.com/u/55061632?v=4?s=100" width="100px;" /><b>Finn Hediger</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=OrangeFran">π»</a>
<a href="https://github.com/dp304"><img src="https://avatars1.githubusercontent.com/u/34493835?v=4?s=100" width="100px;" /><b>dp304</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=dp304">π»</a>
<a href="http://marcomicera.github.io"><img src="https://avatars0.githubusercontent.com/u/13918587?v=4?s=100" width="100px;" /><b>Marco Micera</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=marcomicera">π</a>
<a href="http://marcoieni.com"><img src="https://avatars3.githubusercontent.com/u/11428655?v=4?s=100" width="100px;" /><b>Marco Ieni</b></a><a href="#infra-MarcoIeni">π</a>
<a href="https://github.com/ArturKovacs"><img src="https://avatars3.githubusercontent.com/u/8320264?v=4?s=100" width="100px;" /><b>ArtΓΊr KovΓ‘cs</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=ArturKovacs">π»</a>
<a href="https://github.com/aokellermann"><img src="https://avatars.githubusercontent.com/u/26678747?v=4?s=100" width="100px;" /><b>Antony Kellermann</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=aokellermann">π»</a>
<a href="https://github.com/rasmuspeders1"><img src="https://avatars.githubusercontent.com/u/1898960?v=4?s=100" width="100px;" /><b>Rasmus Pedersen</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=rasmuspeders1">π»</a>
<a href="https://github.com/noir-Z"><img src="https://avatars.githubusercontent.com/u/45096516?v=4?s=100" width="100px;" /><b>noir-Z</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=noir-Z">π</a>
<a href="https://davidbailey.codes/"><img src="https://avatars.githubusercontent.com/u/4248177?v=4?s=100" width="100px;" /><b>David Bailey</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=davidbailey00">π</a>
<a href="https://github.com/sheepwall"><img src="https://avatars.githubusercontent.com/u/22132993?v=4?s=100" width="100px;" /><b>sheepwall</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=sheepwall">π»</a>
<a href="https://github.com/Hwatwasthat"><img src="https://avatars.githubusercontent.com/u/29790143?v=4?s=100" width="100px;" /><b>Hwatwasthat</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Hwatwasthat">π»</a>
<a href="https://github.com/Jesse-Bakker"><img src="https://avatars.githubusercontent.com/u/22473248?v=4?s=100" width="100px;" /><b>Jesse</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=Jesse-Bakker">π»</a>
<a href="https://github.com/hantatsang"><img src="https://avatars.githubusercontent.com/u/11912225?v=4?s=100" width="100px;" /><b>Sang</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=hantatsang">π</a>
<a href="https://yktakaha4.github.io/"><img src="https://avatars.githubusercontent.com/u/20282867?v=4?s=100" width="100px;" /><b>Yuuki Takahashi</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=yktakaha4">π</a>
<a href="https://alejandr0angul0.dev/"><img src="https://avatars.githubusercontent.com/u/5242883?v=4?s=100" width="100px;" /><b>Alejandro Angulo</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=alejandro-angulo">π»</a>
<a href="http://t.me/lego1as"><img src="https://avatars.githubusercontent.com/u/11005780?v=4?s=100" width="100px;" /><b>Anton Kostin</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=masguit42">π</a>
<a href="https://justinsexton.net"><img src="https://avatars.githubusercontent.com/u/20236003?v=4?s=100" width="100px;" /><b>Justin Sexton</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=JSextonn">π»</a>
<a href="https://github.com/lejiati"><img src="https://avatars.githubusercontent.com/u/6442124?v=4?s=100" width="100px;" /><b>Jiati Le</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=lejiati">π</a>
<a href="https://github.com/cobbinma"><img src="https://avatars.githubusercontent.com/u/578718?v=4?s=100" width="100px;" /><b>Matthew Cobbing</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=cobbinma">π»</a>
<a href="https://milo123459.vercel.app"><img src="https://avatars.githubusercontent.com/u/50248166?v=4?s=100" width="100px;" /><b>Milo</b></a><a href="#infra-Milo123459">π</a>
<a href="https://www.diegoveralli.com"><img src="https://avatars.githubusercontent.com/u/297206?v=4?s=100" width="100px;" /><b>Diego Veralli</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=diegov">π»</a>
<a href="https://github.com/majabojarska"><img src="https://avatars.githubusercontent.com/u/33836570?v=4?s=100" width="100px;" /><b>Maja Bojarska</b></a><a href="https://github.com/Rigellute/spotify-tui/commits?author=majabojarska">π»</a>
This project follows the all-contributors specification. Contributions of any kind welcome!
Star History

Roadmap
The goal is to eventually implement almost every Spotify feature.
High-priority features:
- Add songs to a playlist
- Scroll through result pages in every view
See the Roadmap Wiki for the full API coverage table.