Skip to content

spotify-tui

A terminal Spotify client written in Rust, controlled by keyboard or command line.

Stars
19.4k
Forks
585
Licence
MIT
Language
Rust
Last update
2.6 years ago
Type
App

No commits in over a year — check for forks or alternatives before adopting.

What it is

spotify-tui is a text-based Spotify player that runs inside a terminal window. You sign in with your own Spotify developer app credentials, then browse and search your music and control playback with the keyboard. It also has a command-line mode (the binary is named spt) for scripted actions like playing a playlist or liking the current song.

  • Search for a track and play it from the terminal
  • Start a random song from a named playlist with a single command
  • Like the current song or toggle shuffle from a shell script
  • List your liked songs in the terminal with a set limit
  • Print search results in a custom format such as '{name} from {album}'

Great for

  • People who live in the terminal and want to control Spotify without a browser or GUI
  • Linux or macOS users who prefer keyboard-driven tools
  • Developers who want to script Spotify actions from the shell
  • Users comfortable creating a Spotify developer app to get API credentials

Not ideal for

  • Users who want to stream audio inside the app itself: the README describes it as a client that controls Spotify through its API, so you still need Spotify running for playback
  • People who are not comfortable setting up API keys and editing a config file
  • Users who need a graphical interface with album art and mouse-driven controls
Step-by-step guide: how to use spotify-tuiInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Homebrew, Snap, AUR helper, Nix, Scoop, or Rust with cargo (depending on chosen method) · OpenSSL development packages and pkg-config on Linux when building with Cargo

    Install with Homebrew (macOS and Linux)

    brew install spotify-tui

    Install with Cargo (build from source)

    cargo install spotify-tui
  2. 2

    Run it

    • Create a Spotify developer app at the Spotify dashboard and add http://localhost:8888/callback as a Redirect URI
    • Run spt in your terminal
    • Enter your Client ID and Client Secret when prompted
    • Accept the permissions in the browser page and let the redirect complete
    • Press ? inside the app to see the key bindings
  3. 3

    Get the most out of it

    • Use spt --help to see the full command-line options
    • Generate shell completions with spt --completions zsh (bash and PowerShell are also mentioned)
    • Edit ${HOME}/.config/spotify-tui/config.yml to change theme colours and behaviour settings such as seek_milliseconds and volume_increment
    • Combine CLI commands like spt playback --toggle in shell scripts or keybindings
    • The README mentions pairing with spotifyd, though details were not reviewed in the truncated text

Downloads

Strengths

  • Keyboard-driven interface with a help menu opened by pressing ?
  • Offers both an interactive UI and a CLI for most of the same actions
  • Themes and behaviour can be customised in a YAML config file

Trade-offs

  • Requires creating your own Spotify developer app and entering Client ID and Client Secret during setup
  • Linux builds from Cargo need OpenSSL development packages and pkg-config
  • README includes a Limitations section and a Roadmap listing features not yet implemented, and the README was truncated so the full list was not reviewed

How it compares

ProjectStarsTypeLevelUpdatedBest for
spotify-tui (this)19.4kAppintermediate2.6 years agoPeople who live in the terminal and want to control Spotify without a browser or GUI
Terminal.Gui11.3kLibraryintermediate7 days agoC# / .NET developers building terminal tools with forms, tables or menus
FTXUI10.9kLibraryintermediate5 days agoC++ developers who want interactive text-based tools in the terminal
terminal105kAppbeginner6 days agoWindows users who work in the command line every day and want tabs and rich text
hyper44.8kAppbeginner3 months agoDevelopers who want a terminal they can customize with extensions or themes
yazi43.2kAppintermediate4 days agoPeople who already spend time in a terminal and want a faster way to browse folders

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.