ConfigsJul 3, 2026·2 min read

spotify-tui — Spotify Client for Your Terminal in Rust

A fast terminal user interface for Spotify written in Rust, letting you browse, search, and control playback from the command line.

Agent ready

Safe staging for this asset

This asset is staged first. The copied prompt tells the agent to inspect the staged files and ask before activating scripts, MCP config, or global config.

Stage only · 29/100Policy: stage
Agent surface
Any MCP/CLI agent
Kind
CLI Tool
Install
Single
Trust
Trust: Established
Entrypoint
spotify-tui
Safe staging command
npx -y tokrepo@latest install e26730bc-76da-11f1-9bc6-00163e2b0d79 --target codex

Stages files first; activation requires review of the staged README and plan.

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.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets