Introduction
spotify-tui (spt) brings a full Spotify experience to the terminal. Built in Rust with the tui-rs library, it provides a keyboard-driven interface for browsing your library, searching tracks, and controlling playback without leaving the command line.
What spotify-tui Does
- Browse saved albums, playlists, podcasts, and recently played tracks
- Search for artists, albums, tracks, and playlists within the terminal
- Control playback: play, pause, skip, seek, shuffle, and repeat
- Manage your library by saving or removing tracks and albums
- Display current playback with track progress and device info
Architecture Overview
spotify-tui communicates with the Spotify Web API using OAuth 2.0 PKCE authorization. It renders the interface using tui-rs (now ratatui) with a crossterm backend. Audio playback is handled by an active Spotify client on any device; spt acts as a remote controller rather than a local audio player.
Self-Hosting & Configuration
- Requires a Spotify Premium account for playback control
- Create a Spotify Developer app at developer.spotify.com for API credentials
- Set client ID via the interactive first-run setup or config file
- Config lives at
~/.config/spotify-tui/client.yml - Customize keybindings and theme in the config file
Key Features
- Vim-style keybindings for fast navigation
- Device switching to transfer playback between speakers and devices
- Lyrics display integration via the Genius API
- Album art rendering in terminals that support images (e.g. kitty, iTerm2)
- Low resource usage compared to the official Electron-based desktop app
Comparison with Similar Tools
- ncspot — Another Rust Spotify TUI; plays audio natively without needing another client
- Spotify Desktop — Full GUI app built on Electron; heavier on resources
- cmus — General-purpose terminal music player; no Spotify integration
- playerctl — CLI playback controller; no browsing or search UI
FAQ
Q: Does spotify-tui play audio directly? A: No. It controls playback on an active Spotify client. You need Spotify running on a device.
Q: Do I need Spotify Premium? A: Yes. The Spotify Web API requires Premium for playback control features.
Q: Can I use it with a tiling window manager? A: Yes. It is a terminal app, so it integrates naturally with i3, sway, and similar setups.
Q: Is the project still maintained? A: Development has slowed, but the app remains functional with the current Spotify API.