Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
myx
A lean, beautiful terminal Spotify player in Rust. Streams natively as a Spotify Connect device, with album-art-reactive theming, a live audio visualizer, and synced lyrics.
Requires Spotify Premium. Works on Linux, macOS, and Windows. Album art is crispest on kitty, WezTerm, or foot.
Install
# Arch (AUR)
# macOS / Linux (Homebrew)
# Cargo (all platforms — Linux, macOS, Windows)
# Prebuilt binary (Linux x86_64, macOS)
|
On Windows, install Rust first, then cargo install myx in
PowerShell. Set MYX_CLIENT_ID as an environment variable or place your client ID in
%USERPROFILE%\.config\myx\client_id.
Or grab a .deb / archive from Releases,
or build from source: cargo install --path ..
Get started
You need a free Spotify app client ID (one minute):
- Spotify developer dashboard, then Create app
- Add the redirect URI
http://127.0.0.1:8989/login - Copy the Client ID and set it:
Then run:
First launch opens your browser to log in (OAuth PKCE, no secret needed). Then
browse with ↑↓ and hit ⏎ to play. After that, just myx.
Keys
⇥ / [ ] switch section ← → switch view
↑↓ / j k move ⏎ play / open
⇧ ⏎ play the highlighted album, playlist or artist
/ search a actions
space play · pause n / b next · prev
⇧ ← → seek s shuffle
+ / - volume R repeat
o sort r reload
z hide sidebar q quit
Media keys (Play/Pause, Stop, Next, Prev, Volume) work when the terminal is focused. Mouse works too: click tabs, click a track, double-click to play.
Holding ⇧ ← / ⇧ → scrubs continuously and commits one seek when you let go.
⇧ ⏎ needs a terminal that reports modified Enter (kitty, WezTerm, foot); P
does the same everywhere.
Inside tmux, add set -g focus-events on to ~/.tmux.conf so album art is
re-sent the moment you switch back to myx's window.
Config
Optional, at ~/.config/myx/config.toml. Every key has a default, so you only
write the ones you want to change:
# Rows kept visible above and below the cursor before the list scrolls.
= 3
# Spotify app client id. MYX_CLIENT_ID overrides this if it is set.
= "your-client-id"
Credits
Streaming adapts pieces of spotify-player (MIT, © Thang Pham); visual language after noodle; built on ratatui and librespot. See NOTICE.
License
MIT, see LICENSE.