Skip to content

sihooleebd/orbit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

   ____  ____  ____  __________
  / __ \/ __ \/ __ )/  _/_  __/
 / / / / /_/ / __  |/ /  / /   
/ /_/ / _, _/ /_/ // /  / /    
\____/_/ |_/_____/___/ /_/     

◈ Orbit

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.

Install

From the repo (any Rust toolchain):

cargo install --git https://github.com/sihooleebd/orbit

Or from a local clone — re-run with --force to update:

cargo install --path . --root ~/.local

Linux 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   # Fedora

Run

cargo run --release

On 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).

Screenshots

The three-pane overview — library, buckets, and the queue:

Overview

Zen mode (z) — full-screen player with two visualizers you flip between with v:

Zen — cassette Zen — spectrum

The equalizer (e) and the About card (i):

Equalizer About

Themes

Ten built-in palettes — open Settings (,) → Theme for a live picker:

Synthwave Nord Matrix Solarized Ember Dracula Tokyo Night Catppuccin Gruvbox Rosé Pine

Keys

NavigateTab panes · ↑↓/j k move · Enter open folder / play · up · / search · g/G top/bottom

PlaybackSpace pause · n/p next/prev · ←→ seek · +/- volume · s shuffle · r repeat

Bucketsb new · S save queue · a add track · o open/edit · m radio (similar) · d dump · x delete/remove · c clear queue

Player & moreA folders · R rescan · D download (yt-dlp) · e EQ · E EQ on/off · z zen · v visualizer · , settings · i about · ? help · q quit

Features

  • Buckets — name playlists and d-dump them into the queue. o opens one to play, remove, reorder, or rename tracks; S saves 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 ≈ Radio smart bucket fills itself from what you've been playing, and m starts 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; A opens 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. Requires yt-dlp on your PATH; 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 .lrc lyrics 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).

License

MIT © 2026 Benjamin Lee

About

Next generational music player TUI coded in Rust

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages