Terminal UI for Subsonic-compatible music servers.
- A running Subsonic-compatible server (Navidrome, Airsonic, etc.)
- Go 1.21+
- A Nerd Font in your terminal emulator
go install github.com/Flipez/subtonic@latest
Or build from source:
git clone https://github.com/Flipez/subsonic-tui
cd subsonic-tui
go build -o subtonic .
On first run a config file is created at ~/.config/subtonic/config.toml:
[server]
url = "https://my-server.com"
username = "user"
password = "pass"
[player]
volume = 80subtonic
| Key | Action |
|---|---|
1–6 |
Switch tab (Home / Discover / Browse / Playlists / Podcasts / Search) |
enter |
Open / play |
esc |
Go back |
/ |
Filter current list |
R |
Refresh |
? |
Show all keybindings |
q |
Quit |
| Key | Action |
|---|---|
space |
Play / pause |
> . |
Next track |
< , |
Previous track |
= |
Volume +1% |
+ |
Volume +5% |
- |
Volume -1% |
_ |
Volume -5% |
s |
Toggle shuffle |
r |
Cycle repeat (off / all / one) |
Q |
Open queue |
Press ? to see all keybindings in the app.
Press o to discover and connect to a Sonos speaker or group. Playback routes directly from the server to the speaker — the TUI controls what plays. Press o again to switch back to local audio.
Optional. Add to config to enable trending tracks, fresh releases, and personalised recommendations:
[listenbrainz]
username = "your-lb-username"
token = "your-lb-token" # only needed for recommendations




