Verse is a local music player for your own files. It scans a folder, reads the tags, and plays what it finds. No accounts, no streaming, no network.
Its interface is built from panes you arrange yourself. Rather than a fixed
window with a fixed sidebar, the layout is a tree you split, resize, lock, and
drag into whatever shape suits you, then save as a named preset. In normal mode
the chrome disappears entirely and only content remains; press e and the
handles, split buttons, and locks fade in over it.
Alpha. The playback core and the layout system work. Several pane kinds are still placeholders. See Panes for what is and isn't implemented.
- Playback: play, pause, seek, volume, and loop modes (off, queue, single)
- Library: recursive folder scan, indexed in parallel with Rayon and cached in SQLite
- Metadata: ID3, Vorbis, and other tag formats via Lofty, with embedded cover art
- Queue: reorderable, with play-next and add-to-queue on any selection
- Playlists: stored in the local database
- Ratings: per-track, persisted
- Search: filters the library as you type
- Pane layout: split, resize, lock, drag-and-drop, and named presets
- Artwork cache: covers decoded once and reused for the session
| Format | Extension |
|---|---|
| AAC | .aac |
| ALAC / AAC (MP4) | .m4a |
| FLAC | .flac |
| MP3 | .mp3 |
| Vorbis | .ogg |
| WAV | .wav |
Panes are chosen per-slot from a picker in edit mode. Placeholder panes are selectable and render their name; they hold their slot in the layout but have no content yet.
| Implemented | Placeholder |
|---|---|
| Library, Search, Queue, Controls, Timeline, Volume, Artwork, Collections | Albums, Artists, Playlists, Folders, Now Playing, History, Lyrics, Track Info, Visualizer, Equalizer, Settings |
Every key below is rebindable in Preferences → Keybindings. These are the defaults.
| Key | Action |
|---|---|
| Space | Play / pause |
| ← / → | Previous / next track |
| ↑ / ↓ | Volume up / down |
| m | Mute |
| r | Cycle loop mode |
| h | Shuffle queue |
| e | Toggle edit mode |
| s | Toggle preferences |
| 1 to 9, 0 | Switch to layout preset (ten slots) |
Prebuilt binaries are on the releases page.
| Download | Platform |
|---|---|
verse-windows-x86_64.zip |
Windows 10 or newer |
verse-linux-x86_64.tar.gz |
Linux (glibc, ALSA) |
Extract and run. There is no installer.
Requires Rust 1.88 or newer.
cargo build --release
cargo run -p verse-guiOn Linux, ALSA development headers are needed to build the audio backend:
sudo apt install libasound2-dev # Debian/Ubuntu
sudo dnf install alsa-lib-devel # Fedora
sudo pacman -S alsa-lib # ArchThe workspace is two crates. verse-core holds the audio backend, library
scanning and database, queue, and playlists, and depends on nothing in the
frontend. verse-gui is the iced interface and pane system,
and builds the verse binary.
Design notes for the larger subsystems live in docs/:
panes.md for the layout system,
overlay-cursor.md for the iced overlay hit-testing
problem, and layout.md for the pane_grid approach it
replaced.
| Windows | Linux | |
|---|---|---|
| Config | %APPDATA%\verse\config.toml | ~/.config/verse/config.toml |
| Library | %APPDATA%\verse\data\library.db | ~/.local/share/verse/library.db |
Verse is entirely local. No telemetry, no analytics, no network requests. Your library stays on your machine.
