A minimal, reliable music player using Vim keybinds built in Rust.
  • Rust 98.9%
  • Shell 0.8%
  • Nix 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-10 14:51:00 +02:00
examples add examples 2026-10-09 19:52:38 +02:00
src fix clippy warnings in app.rs 2026-10-10 14:51:00 +02:00
.gitignore Add Makefile, update README with install instructions, fix .gitignore 2026-10-09 20:09:56 +02:00
Cargo.lock Add source code 2026-10-09 16:52:03 +02:00
Cargo.toml Add Makefile, update README with install instructions, fix .gitignore 2026-10-09 20:09:56 +02:00
CONTRIBUTING.md (add): CONTRIBUTING.md 2026-10-10 11:39:26 +02:00
LICENSE Initial commit 2026-10-09 16:03:10 +02:00
README.md (update): README 2026-10-10 11:41:42 +02:00

Drift

Stars License

A music streaming client using Vim keybinds built in Rust.

Stream your favourite music from YouTube Music — all in one client, in your terminal.


Drift showcase

Features

  • YouTube Music streaming — search and stream tracks directly from YouTube Music via yt-dlp and mpv
  • Vim-style keybinds — navigate with j/k, enter commands with :, quit with q
  • Queue management — add, remove, reorder, and clear tracks in your queue
  • Playlists — save, load, append, and delete named playlists; import from YouTube/YouTube Music URLs
  • Shuffle & repeat — toggle shuffle and cycle through off / repeat-all / repeat-one modes
  • Volume & seek control — adjust volume and seek with configurable step sizes
  • Session restore — automatically restores your queue and playback position on next launch
  • Artist search — drill into an artist's discography from the results view
  • Command palette — full :command interface (:search, :play, :volume, :seek, :save, :load, :import, and more)
  • Autoplay — optionally keep playing through results when the queue ends
  • TOML config — persistent config at ~/.local/share/drift/config.toml; comments are preserved across restarts

Installation

Dependencies

  • mpv — audio playback
  • yt-dlp — YouTube stream extraction
  • Rust (build only)

Install them with your package manager, e.g. on Arch:

sudo pacman -S mpv yt-dlp

Build & install

git clone https://github.com/socatlolmeow/drift.git
cd drift
cargo build --release

Then copy the binary to somewhere on your $PATH:

sudo cp target/release/drift /usr/local/bin/

Or install directly with cargo:

cargo install --path .

This installs drift to ~/.cargo/bin/, which is on your $PATH if you installed Rust via rustup.


Star History

Star History Chart


License

Drift is FOSS, released under the GNU General Public License version 3 or later.