A lightweight Terminal UI (TUI) Subsonic client written in Go.
Note: This project has been exclusively tested with Navidrome. While it uses the standard Subsonic API, compatibility with other servers (e.g., Airsonic, Gonic) is not guaranteed.
- Minimal and focused on playing music in an album-oriented way.
- Browse music by Artist and Album.
- Search and filter your library.
- Simple playlist management.
- Audio playback with volume control and progress tracking.
- Low resource footprint.
The application looks for a config.yaml file in the current directory or at ~/.config/go-subsonic/config.yaml.
server:
url: "https://your-navidrome-instance.com"
username: "your_username"
password: "your_password"
player:
buffer_size: 10Audio playback uses gopxl/beep, which requires ALSA headers on Linux.
Install dependencies (names vary by distro):
- Debian/Ubuntu:
libasound2-dev pkg-config - Fedora:
alsa-lib-devel pkgconf-pkg-config - openSUSE:
alsa-devel pkgconf-pkg-config
brew install rbagd/tap/go-subsonicgo install github.com/rytis/go-subsonic/cmd/go-subsonic@latestOr download the latest release from the Releases page.
To build or test without audio support (e.g., in CI environments):
go test -tags noaudio ./...
go build -tags noaudio ./cmd/go-subsonicThis project was essentially built by Gemini through an interactive agent session.