____ ____ ____ __________
/ __ \/ __ \/ __ )/ _/_ __/
/ / / / /_/ / __ |/ / / /
/ /_/ / _, _/ /_/ // / / /
\____/_/ |_/_____/___/ /_/
A beautiful music player for your terminal that makes a local library feel alive. Only the good stuff from streaming services, but the music is yours. Organise tracks into buckets you dump into the queue, sculpt the sound with a real 10-band equalizer, drift off in a full-screen zen mode, and let Orbit spin up a radio of similar songs — recommendations from listening to the audio itself, fully offline, no accounts, nothing leaves your machine. Plays MP3, FLAC, WAV, OGG, M4A/MP4, and AAC.
Built in Rust with ratatui and rodio. Runs on macOS, Linux, and Windows, with hardware media-key and system Now Playing integration.
From the repo (any Rust toolchain):
cargo install --git https://github.com/sihooleebd/orbitOr from a local clone — re-run with --force to update:
cargo install --path . --root ~/.localLinux also needs ALSA + D-Bus development packages:
sudo apt install libasound2-dev libdbus-1-dev pkg-config # Debian/Ubuntu
sudo dnf install alsa-lib-devel dbus-devel pkgconf-pkg-config # Fedoracargo run --releaseOn first launch Orbit adopts your Music folder if it exists; press A to manage
library folders and R to rescan. Config, buckets, and the library cache live under
your platform data dir (~/Library/Application Support/orbit on macOS).
The three-pane overview — library, buckets, and the queue:
Zen mode (z) — full-screen player with two visualizers you flip between with v:
The equalizer (e) and the About card (i):
Ten built-in palettes — open Settings (,) → Theme for a live picker:
| Synthwave | Nord | Matrix | Solarized | Ember | Dracula | Tokyo Night | Catppuccin | Gruvbox | Rosé Pine |
Navigate — Tab panes · ↑↓/j k move · Enter open folder / play · ⌫ up · / search · g/G top/bottom
Playback — Space pause · n/p next/prev · ←→ seek · +/- volume · s shuffle · r repeat
Buckets — b new · S save queue · a add track · o open/edit · m radio (similar) · d dump · x delete/remove · c clear queue
Player & more — A folders · R rescan · D download (yt-dlp) · e EQ · E EQ on/off · z zen · v visualizer · , settings · i about · ? help · q quit
-
Buckets — name playlists and
d-dump them into the queue.oopens one to play, remove, reorder, or rename tracks;Ssaves the current queue as a bucket; each gets its own accent colour. -
Smart buckets — auto-filled Recently Added, Most Played, and Recently Played, built from play stats Orbit keeps as you listen.
-
Radio / recommendations — Orbit analyses your library in the background (MFCC timbre fingerprints + spectral features) and suggests acoustically similar music — 100% offline, no accounts. A
≈ Radiosmart bucket fills itself from what you've been playing, andmstarts a radio queue from the selected track. Settings let you scope it to your whole library or just the current folder. -
Folder browsing — the library navigates by folder (
Enter/⌫);/searches everything;Aopens a built-in folder picker to add or remove roots. -
Download (
D) — paste a URL, pick a download root and folder name, and Orbit fetches the audio as mp3 in the background via yt-dlp (with embedded metadata + cover art), then auto-tracks the folder and rescans. Requiresyt-dlpon yourPATH; the key is inert without it. -
Equalizer (
e) — a real RBJ-biquad 10-band EQ drawn FabFilter-style: a response line over a live spectrum, with five presets and a pre-amp. Turns on the moment you touch it; settings persist. -
Zen mode (
z) — full-screen player with synced.lrclyrics and two visualizers (v): a live audio spectrum or an animated cassette deck. -
Settings (
,) — one hub for the equalizer, the theme picker (ten palettes, live preview, saved), the zen visualizer, a sleep timer (15/30/45/60 min or end-of-track, with a fade-out), the radio scope, and a footer-hints toggle. -
OS integration — hardware media keys and the system Now Playing panel (Control Center / MPRIS / SMTC).
-
Safe & resilient — confirmation prompts before destructive actions, and event-driven recovery if the audio output device disappears or changes mid-song (cross-platform, with a Linux-specific fallback for silent reroutes).
MIT © 2026 Benjamin Lee