spotify-tui
Properties
- logseq-entity
- Logseq/Entity/Software/Project
- tags
- Spotify/Tool/TUI
spotify-tui
A Spotify client for the terminal written in Rust.
- GitHub/Star count: 19,244 as of 2026-06-27 Sat
- Historically important predecessor to later Spotify terminal user interfaces, but it needs an external playback client such as the official Spotify app or spotifyd.
- Latest release is much older than spotify-player and ncspot, so it is best treated as reference material rather than the first client to adopt.
Technical Aspects
- Built with Rust 2018.
- Binary name:
spt. - Uses Spotify's Web API. The Web API is Spotify's HTTP-based application programming interface for searching, playback control, library actions, and account data.
- Does not stream audio by itself. It controls another Spotify playback device, such as the official Spotify app or spotifyd.
- Uses OAuth for login. OAuth is the sign-in delegation protocol that lets the app ask Spotify for limited account access without storing the user's Spotify password.
- Stores Spotify client credentials in
${HOME}/.config/spotify-tui/client.yml. - Stores interface configuration in
${HOME}/.config/spotify-tui/config.yml. - Notable direct Rust libraries:
rspotify0.10 for Spotify Web API access.tui0.16 with thecrosstermbackend for terminal layout and rendering.crossterm0.20 for terminal input, screen control, and styling.tokio0.2 for asynchronous work.clap2 for command-line argument parsing.serde,serde_json, andserde_yamlfor reading and writing structured data.arboardfor clipboard support.unicode-widthfor measuring terminal text width.
Features
- Terminal user interface plus a command-line interface. A command-line interface is a set of commands that can be run directly from the shell.
- Search for tracks, albums, artists, and playlists.
- Browse saved tracks, saved albums, followed artists, playlists, and recently played tracks.
- Control playback on an available Spotify device.
- Like and unlike tracks.
- Configure theme colors, keybindings, playback step sizes, icons, and window-title behavior.
- Copy song or album web addresses to the clipboard.
Supply Chain Notes
- Cargo.lock shows about 255 locked package entries, 224 unique Rust/crate names, 14 direct dependencies, and an approximate longest dependency chain of 13 edges.
- The tree is smaller than ncspot because spotify-tui mostly controls Spotify through the Web API instead of implementing audio playback.
- The most security-relevant parts are network authentication, token storage, clipboard access, and the local callback server used during OAuth login.
- The older stack is the main concern:
tokio0.2,clap2,tui0.16,crossterm0.20, andrspotify0.10 are all old by 2026 standards. rspotifybrings in HTTP and TLS (Transport Layer Security) dependencies throughreqwestandnative-tls. On Linux, source builds also need OpenSSL development files andpkg-config.- The lockfile has multiple versions of some foundational crates, including
bytes,mio,rand,url,idna,proc-macro2,quote, andsyn. Duplicate versions are common in older Rust projects, but they increase review work. - For security-sensitive use, prefer spotify-player or ncspot over this project unless there is a specific reason to use
spt.