myx 0.1.3

A lean, beautiful terminal Spotify player
Documentation

myx

A lean, beautiful terminal Spotify player โ€” built in Rust with ratatui and librespot. Streams natively as a Spotify Connect device, with album-art-reactive theming, a live FFT visualizer, synced lyrics, and full library browsing โ€” all in the terminal.

Requires Spotify Premium (Spotify Connect streaming is Premium-only).

Features

  • ๐ŸŽจ Album-art-reactive theming โ€” the whole UI recolors to the current cover, cross-fading on every track change
  • ๐ŸŒŠ Live FFT visualizer โ€” a smooth, color-graded spectrum driven by the actual audio
  • ๐ŸŽค Time-synced lyrics โ€” karaoke scroll via lrclib
  • ๐Ÿ“š Full library โ€” Home feed, Recently Played, Playlists, Liked Songs, Albums, Artists
  • ๐Ÿ” Search the whole catalog โ€” songs, artists, albums, playlists
  • ๐Ÿ“ป Song radio โ€” start a station from any track (via librespot's internal protocol)
  • ๐ŸŽฏ Drill-in navigation โ€” open an artist โ†’ popular tracks + albums; open albums/playlists
  • โšก Context actions (a) โ€” like, add to queue/playlist, follow, go to artist/album, copy link
  • ๐Ÿ”€ Shuffle, repeat, volume, and a live queue view
  • ๐Ÿ’พ Session resume โ€” reopens on your last track, at your position, in the same context

Install

cargo install --path .    # or: cargo build --release

You'll need your own Spotify app client ID โ€” free, and takes a minute:

  1. Go to the Spotify developer dashboard โ†’ Create app
  2. Add the redirect URI http://127.0.0.1:8989/login
  3. Copy the Client ID, then either:
    export MYX_CLIENT_ID=<your-client-id>
    # or:
    mkdir -p ~/.config/myx && echo -n "<your-client-id>" > ~/.config/myx/client_id
    

No secret is needed (myx uses OAuth PKCE). Requires Spotify Premium.

Keybinds

โ‡ฅ / [ ]      switch library section        โ† โ†’        switch view (Now Playing / Lyrics / Queue)
โ†‘โ†“ / j k     move selection                โŽ          play / open
/            search                        a          actions menu
space / p    play ยท pause                  n / b      next ยท prev
+ / -        volume                        s          shuffle
Esc          back                          q          quit

Credits

Built on the shoulders of open source โ€” see NOTICE. In short: the streaming engine adapts pieces of spotify-player (MIT, ยฉ Thang Pham), the visual language reinterprets noodle, and it all rides on librespot.

License

MIT โ€” see LICENSE.