Orpheus is a terminal music player with a background playback daemon, vim-like keybindings, playlist support, and MPRIS/media-key integration on Linux.
- Native playback with
rodio - Interactive TUI (
ratatui+crossterm) - Background daemon controlled from TUI and CLI
- M3U playlist management
- MPRIS metadata + media keys (
play/pause/next/previous) on Linux - Vim-like navigation and command mode in TUI (
:q,ZZ)
cargo build --releaseLaunch TUI:
orpheus
# or
orpheus tuiScan library:
orpheus scanForeground playback:
orpheus play ~/Music/song.flac
orpheus play ~/Music/Albums
orpheus play my-playlist
orpheus playBackground daemon playback (start or update current daemon):
orpheus play --background ~/Music/song.flac
orpheus play --background my-playlistStop daemon playback:
orpheus stop- Use
h/j/k/l,gg,G,Ctrl-d,Ctrl-uto navigate - Press
pin the left pane to toggle Library / Playlists view - Press
Enteron a library track to play that single track immediately (does not replace queue) - Press
Enteron a playlist to load it as the active queue and start playback from item 1 - Press
ato append selected library track to the active playlist-backed queue - Press
ddto remove selected queue entry - Press
dj/dkto delete selected+next / selected+previous queue entries - Press
J/Kto move selected queue entry down/up - Press
/to search in active pane (Library or Queue) - Press
Escto clear active search filter - Press
Sto save current queue to the active playlist - Press
vto edit the active playlist in$EDITOR(defaults tonvim) and return to TUI - In Playlists view:
copens command mode withplnew,dddeletes selected playlist - Use
:qorZZto quit
h/j/k/l pane + movement
gg, G first / last
Ctrl-d / Ctrl-u page down / page up
Tab switch Library / Queue pane
Enter library: play single track; playlists: activate playlist; queue: play selected item
p toggle left pane: Library / Playlists
a append selected library track to active queue
dd queue: remove selected item; playlists: delete selected playlist
dj / dk queue: delete selected+next / selected+previous
J / K move selected queue item down / up
/ search active pane
Esc clear search filter
S save queue to active playlist
v edit active playlist in editor, then return
c in Playlists view: open command mode with `plnew `
: command mode
:plnew <name> create playlist
:q quit
ZZ quit
Check player:
playerctl -lRead metadata:
playerctl --player=orpheus metadataControl playback:
playerctl --player=orpheus play-pause
playerctl --player=orpheus next
playerctl --player=orpheus previousorpheus playlist list
orpheus playlist create favorites
orpheus playlist add favorites ~/Music/a.flac ~/Music/b.mp3
orpheus playlist show favorites
orpheus playlist delete favoritesTUI queue model:
- The queue is backed by the currently active playlist (default:
tui-queue). - Queue edits in TUI (
a,dd,dj,dk,J,K,S, editor save) update playlist content on disk. - The queue pane title shows the active playlist name.
Config file:
$XDG_CONFIG_HOME/orpheus/config.conf
Supported option:
music_dir=$HOME/Music
Data directory:
$XDG_DATA_HOME/orpheus
Playlists directory:
$XDG_DATA_HOME/orpheus/playlists
- The daemon state is cached under the data directory and restored in TUI.
- If
playerctlis used with multiple players running, use--player=orpheusexplicitly.