Blutui is a terminal user interface (TUI) application for controlling Bluesound devices and browsing music libraries (Local and Tidal) from your terminal. It provides a fast, keyboard-driven interface for playback control, browsing artists and albums, and managing your listening experience—all without leaving your shell.
- Bluesound Integration: Control playback, volume, mute, repeat modes, and more on Bluesound devices via HTTP API.
- Music Library Browsing: Browse and search your local and Tidal music libraries, view artists, albums, and tracks.
- Fast TUI: Built with tcell and tview for responsive, mouse-enabled terminal UI.
- Keyboard Shortcuts: Efficient navigation and control with comprehensive keybindings.
- Status Bar: Real-time player status and feedback.
- Help Screen: In-app help for all keybindings.
- Caching: Local caching for faster library browsing.
- Go 1.22.2 or newer
- A Bluesound device accessible on your network
git clone https://github.com/mkozjak/blutui.git
cd blutui
makeThis will build the blutui binary in the bin/ directory.
Run the application from your terminal:
./bin/blutuiBy default, Blutui will attempt to connect to your Bluesound device at http://bluesound.lan:11000. You may need to adjust your device's hostname or network settings if this does not work.
--version: Display the application version.
| Key / Combo | Action |
|---|---|
1 |
Show local library |
2 |
Show Tidal library |
↵ (Enter) |
Start playback |
x |
Play selected song only |
p |
Play/Pause |
s |
Stop |
> |
Next song |
< |
Previous song |
+ |
Volume up |
- |
Volume down |
m |
Toggle mute |
r |
Toggle repeat mode (none, all, one) |
Ctrl+f |
Page down |
Ctrl+b |
Page up |
Ctrl+d |
Half page down |
Ctrl+u |
Half page up |
o |
Jump to currently playing artist |
f |
Search artists |
u |
Update library |
h |
Show help screen |
q |
Quit app |
Press h at any time to view the help screen with all keybindings.
Contributions are welcome! Please open issues or submit pull requests on GitHub.
- Code is organized in
internal/modules for app logic, player, library, keyboard, and UI components. - Use
maketo build and test. - Please follow idiomatic Go practices and document your code.
This project is licensed under the GNU Affero General Public License v3.0. See the LICENSE file for details.
Maintained by mkozjak.