audiobully

Control NSM Music and TouchTunes jukeboxes from your terminal. Search songs, queue tracks, and manage venues — all from a fast TUI or scriptable CLI.

NSM Music TouchTunes CLI + TUI

What it does

>>

Dual platform

Switch between NSM and TouchTunes on the fly. Stay logged into both simultaneously.

@@

Venue discovery

Save locations, search for nearby jukeboxes, and check in — all from the keyboard.

??

Music search

Search by artist or song title. Browse artist catalogs with paginated results.

##

Queue songs

Play songs normally or use Play Next / Bump to skip ahead in the queue.

Supported platforms

NSM Music

Full support
  • Login & session management
  • Venue search & check-in
  • Song search & artist browse
  • Play songs (normal & bump)
  • Playlist management
  • Now playing status
  • Spotify playlist import

TouchTunes

Play support
  • Login & auto-login
  • Venue search & check-in
  • Song search & artist browse
  • Play songs (normal & Play Next)
  • Credit balance display
  • Shared saved locations with NSM

Getting started

1

Install dependencies

bun install
2

Launch the TUI

bun src/index.tsx
3

Pick your platform, log in, find a venue, and start playing

TUI keyboard shortcuts

The TUI is fully keyboard-driven. Here are the key bindings:

Key Context Action
15HomeJump to menu item
pHomeSwitch platform (NSM / TouchTunes)
q / EscHomeQuit
j k / arrowsListsNavigate up/down
EnterListsSelect / confirm / check in
TabSearchToggle artists / songs tab
pSearch (songs)Play song
nSearch (songs)Play Next (bump to front of queue)
mArtist detailLoad more songs
aLocationsAdd a new saved location
dLocationsDelete selected location

CLI usage

Every command outputs JSON to stdout on success (exit 0) or {"error": "..."} to stderr on failure (exit 1). Pipe through jq for easy parsing.

Shared: Saved Locations

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

NSM Commands

# 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

TouchTunes Commands

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

How it works

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.