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-09 20:09:56 +02:00
examples add examples 2026-10-09 19:52:38 +02:00
src Add source code 2026-10-09 16:52:03 +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
LICENSE Initial commit 2026-10-09 16:03:10 +02:00
Makefile Add Makefile, update README with install instructions, fix .gitignore 2026-10-09 20:09:56 +02:00
README.md Add Makefile, update README with install instructions, fix .gitignore 2026-10-09 20:09:56 +02:00

Drift

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
sudo make install

This installs drift to /usr/local/bin. To install to /usr/bin instead:

sudo make install PREFIX=/usr

Other make targets

Command Description
make Build (debug skipped, release only)
make build Same as above
sudo make install Build and install to $PREFIX/bin
sudo make uninstall Remove the installed binary
make clean Remove build artifacts

Star History

Star History Chart


License

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