Install dependencies
bun install
Control NSM Music and TouchTunes jukeboxes from your terminal. Search songs, queue tracks, and manage venues — all from a fast TUI or scriptable CLI.
Switch between NSM and TouchTunes on the fly. Stay logged into both simultaneously.
Save locations, search for nearby jukeboxes, and check in — all from the keyboard.
Search by artist or song title. Browse artist catalogs with paginated results.
Play songs normally or use Play Next / Bump to skip ahead in the queue.
Install dependencies
bun install
Launch the TUI
bun src/index.tsx
Pick your platform, log in, find a venue, and start playing
The TUI is fully keyboard-driven. Here are the key bindings:
| Key | Context | Action |
|---|---|---|
| 1–5 | Home | Jump to menu item |
| p | Home | Switch platform (NSM / TouchTunes) |
| q / Esc | Home | Quit |
| j k / arrows | Lists | Navigate up/down |
| Enter | Lists | Select / confirm / check in |
| Tab | Search | Toggle artists / songs tab |
| p | Search (songs) | Play song |
| n | Search (songs) | Play Next (bump to front of queue) |
| m | Artist detail | Load more songs |
| a | Locations | Add a new saved location |
| d | Locations | Delete selected location |
Every command outputs JSON to stdout on success (exit 0) or
{"error": "..."} to stderr on failure (exit 1).
Pipe through jq for easy parsing.
Locations are shared across both platforms — they're just lat/lng coordinates.
audiobully location-add "Running Horse" 51.294 -0.332
audiobully locations
audiobully location-activate 0
# Auth
audiobully login --email user@example.com --password secret --save
audiobully whoami
audiobully status
# Venues
audiobully venues --lat 51.5 --lng -0.1
audiobully checkin 12345
# Music
audiobully search "blue october"
audiobully artist 42
audiobully play 99999
audiobully play 99999 --bump
# Playlists
audiobully playlists
audiobully playlist-create "Friday Night"
audiobully playlist-add 5 99999
All TouchTunes commands are prefixed with tt-.
# Auth
audiobully tt-login --email user@example.com --password secret --save
audiobully tt-status
# Venues
audiobully tt-venues --lat 51.5 --lng -0.1
audiobully tt-checkin 887302
# Music
audiobully tt-search "oasis"
audiobully tt-artist 1322
audiobully tt-play 70075418
audiobully tt-play 70075418 --next
audiobully communicates directly with the NSM Music and TouchTunes mobile APIs — the same ones their official Android/iOS apps use. It's built with Bun, React 19, and OpenTUI for the terminal interface.
The same codebase serves both the interactive TUI and the headless CLI. When you pass command-line arguments, it runs headless and outputs JSON. With no arguments, it launches the full terminal UI.