isi-music

> isi-music_

Terminal audio player, built in Rust. Blazing fast, memory safe, and designed for keyboard-centric workflows.

isi-music --play
Now Playing: Lie To Me by Lil Peep [=======>.......] 1:12 / 2:19

Core Features

// Built for Power Users

speaker

Spotify Streaming

Stream via librespot, no official Spotify app required. Seamless authentication with PKCE flow.

audio_file

Local Playback

Lightning-fast playback for FLAC, WAV, MP3, OGG, and AIFF with automatic metadata extraction. Works standalone: no Spotify account required in local-only mode.

equalizer

Audio Visualizer

Real-time spectrum analyzer using braille characters. Works for both Spotify and local files.

lyrics

Synchronized Lyrics

Auto-fetched multi-source lyrics with synced support from LRCLIB and Musixmatch.

search

Full-text Search

Search across tracks, albums, artists, playlists, and podcasts with instant results.

queue_music

Queue Management

Cross-player queue mixing Spotify and local tracks. Shuffle and repeat modes included.

image

Album Art

Cover art rendered via Kitty, Sixel, or half-block with automatic terminal detection.

cast

MPRIS2 Integration

Full Linux desktop integration: media keys, Waybar widget, and playerctl support.

dns

Daemon Mode

Run in the background and control via CLI. Persist playback after closing the terminal.

music_video

Windows Media Controls

Native SMTC overlay and global media hotkeys on Windows. Play, pause, and skip from anywhere.

radio

Radio Mode

Continuous playback seeded by the current track, powered by Spotify recommendations. Press one key and let it flow.

palette

Reactive Theme

UI colors adapt to the album art palette on every track change. Eight presets and full theme.toml customization.

Installation

// Linux • Windows

terminal

Linux

bash
$ curl -L https://github.com/glrmrissi/isi_music/releases/latest/download/isi-music-linux-x86_64 -o isi-music
$ chmod +x isi-music
$ sudo mv isi-music /usr/local/bin/

Dependencies: sudo apt install libasound2t64 libpulse0
Or via Homebrew: brew tap glrmrissi/isi-music && brew install isi-music (x86_64 and ARM64)

desktop_windows

Windows

powershell
PS> irm https://raw.githubusercontent.com/glrmrissi/isi_music/master/scripts/install.ps1 | iex

No dependencies needed. Windows Terminal recommended for true color and mouse support.

Or build from source: git clone https://github.com/glrmrissi/isi_music.git && cd isi_music && cargo build --release

Vim-Inspired Keybindings

// Keep your hands on the keyboard

Shortcut Action
Tab / Shift+Tab Next / Previous panel
Space Play / Pause
n / p Next / Previous track. With shuffle, previous goes back through play history.
s Toggle shuffle
r Cycle repeat (off → queue → track)
= / - Volume up / down
/ Search
a Add to queue
A Add to playlist
z Fullscreen player
v Visualizer
y Lyrics
l Like current track
t Settings panel
d Debug overlay (CPU, memory, logs)
1 / 2 / 3 / 4 Focus library / playlists / tracks / queue
q Quit

Integrations

// Desktop • Scrobble • Social

cast

MPRIS2

Registers as org.mpris.MediaPlayer2.isi_music. Media keys, Waybar widgets, and playerctl support in both TUI and daemon mode.

json
"player-icons": { "isi_music": "" }
music_note

Last.fm

Automatic scrobbling. "Now playing" on track start, scrobbles at 50% or 4 minutes. Configure via isi-music setup-lastfm.

group

Discord

Rich Presence showing current track. Enable in config.toml with [discord] enabled = true.

Spotify Setup

// Client ID Required

The February 2026 Spotify Web API changes require a Client ID for all API requests.

  1. Go to the Spotify Developer Dashboard and click "Create app"
  2. Set the Redirect URI to http://127.0.0.1:8888/callback
  3. Copy the Client ID and run isi-music setup-spotify

The setup command performs a single unified authentication that chains the Web API OAuth (PKCE) and the streaming OAuth (librespot) in one flow. You only need to authorize once through the browser.