A lightweight Subsonic TUI music player built in Go with scrobbling support.
  • Go 98.9%
  • Nix 1.1%
Find a file
2026-03-29 22:15:43 +02:00
.github Add Ko-fi funding link to FUNDING.yml 2026-03-29 22:15:43 +02:00
internal style(config): updating indentation of nav keybinds 2026-03-26 10:35:51 +01:00
screenshots docs: update README to include the wiki 2026-03-09 11:15:16 +01:00
.gitignore feat(flake): added support for the Nix Package manager (#10) 2026-01-20 10:43:39 +01:00
.goreleaser.yaml feat: add APK package generation to goreleaser 2026-02-10 21:29:51 +01:00
flake.lock feat(flake): added support for the Nix Package manager (#10) 2026-01-20 10:43:39 +01:00
flake.nix Update flake.nix to lowercase subtui (#92) 2026-03-22 20:34:24 +01:00
go.mod fix(build): downgrade Go toolchain to 1.25 2026-03-08 15:52:06 +01:00
go.sum feat(ui): display album art in player footer (#63) 2026-03-08 15:15:58 +01:00
LICENSE Initial commit 2025-12-26 16:17:54 +01:00
main.go fix(config): tilda treated literal 2026-03-10 15:23:41 +01:00
README.md docs: update README to include the wiki 2026-03-09 11:15:16 +01:00

SubTUI

SubTUI is your next favorite lightweight, terminal-based music player for Subsonic-compatible servers like Navidrome, Gonic, and Airsonic. Built with Go and the Bubble Tea framework, it provides a clean terminal interface to listen to your favorite high-quality audio.

Key Features

  • Subsonic-compatible: Connect and stream from any Subsonic-compatible server
  • Format Compatibility: Uses mpv to support various audio codecs and reliable playback
  • Fully Customizable: Configure keybinds, color themes, and settings via a simple TOML file
  • ReplayGain Support: Built-in support for Track and Album volume normalization
  • Scrobbling: Automatically updates your play counts on your server and external services like Last.FM or ListenBrainz
  • Gapless Playback: Enjoy your favorite albums exactly as intended with smooth, uninterrupted transitions
  • MPRIS Support: Control SubTUI from any media widget on Linux/FreeBSD
  • Discord Integration: Show off what you're listening to with built-in Discord Rich Presence

Main View

Installation

You must have mpv installed and available in your system PATH. You can verify with mpv --version.

Pre-compiled binaries for Linux and macOS are available on the Releases page.

Method Command / Instructions
Debian / Ubuntu Download the .deb and run sudo dpkg -i subtui_*.deb
Fedora / RHEL Download the .rpm and run sudo rpm -i subtui_*.rpm
Alpine Download the .apk and run sudo apk add --allow-untrusted ./subtui_*.apk
Arch Linux (AUR) yay -S subtui-git
macOS (Homebrew) brew install MattiaPun/subtui/subtui
FreeBSD pkg install subtui
Nix nix profile install github:MattiaPun/SubTUI
Go Toolchain go install github.com/MattiaPun/SubTUI@latest
From Source git clone https://github.com/MattiaPun/SubTUI.git && cd SubTUI && go build .

Documentation

For setup, configuration, keybinds, and more, check out the Wiki.

Screenshots

Login Queue

Contributing

Contributions are welcome! There are several ways to help:

  • Feature Requests — Open an issue to suggest new features or improvements
  • Code Contributions — Fork the repo, make your changes, and submit a pull request. Please use Conventional Commit Messages

Sponsor

If you enjoy using SubTUI, please consider sponsoring the project to support its development.

License

Distributed under the MIT License. See LICENSE for more information.