Files
Bose-SoundTouch/docs/CLI-REFERENCE.md
T
Tobias Gesellchen 9ecdd7af47 Update CLI documentation to reflect current subcommand structure
- Update README.md CLI examples from old flag-based format to current subcommand structure
- Fix GETTING-STARTED.md CLI examples to use proper syntax
- Add comprehensive CLI-REFERENCE.md with complete command documentation
- All examples now use correct format: soundtouch-cli --host <device> <command> <subcommand>
- Document all available commands: discover, info, play, volume, source, bass, balance, clock, network, zone
- Include usage patterns, examples, and troubleshooting guidance
- Replace outdated flat flag format (-info, -volume) with hierarchical commands (info, volume get)

Breaking: CLI syntax has changed from flags to subcommands for better organization
2026-01-10 00:11:20 +01:00

13 KiB

SoundTouch CLI Reference

Complete command reference for the soundtouch-cli tool

This document provides comprehensive documentation for all available commands and options in the soundtouch-cli tool.

Overview

The SoundTouch CLI uses a hierarchical command structure with subcommands for different operations:

soundtouch-cli [global-flags] <command> [command-flags] [subcommand] [subcommand-flags]

Global Flags

These flags can be used with any command:

Flag Short Description Default
--host -h Device IP address or hostname Required for most commands
--port -p Device port number 8090
--timeout -t Request timeout duration 10s
--help Show command help
--version -v Show CLI version

Commands

Discovery

Discover SoundTouch devices on the network.

discover devices

Discover and list all SoundTouch devices.

soundtouch-cli discover devices [flags]

Flags:

  • --all, -a: Show detailed information for all devices
  • --timeout: Discovery timeout (default: 10s)

Examples:

# Basic discovery
soundtouch-cli discover devices

# Show detailed info for all discovered devices
soundtouch-cli discover devices --all

# Discovery with custom timeout
soundtouch-cli discover devices --timeout 15s

Device Information

Get information about your SoundTouch device.

info

Get basic device information.

soundtouch-cli --host <device> info

Example:

soundtouch-cli --host 192.168.1.10 info

name get|set

Get or set the device name.

# Get current name
soundtouch-cli --host <device> name get

# Set new name
soundtouch-cli --host <device> name set --value "My SoundTouch"

capabilities

Get device capabilities and features.

soundtouch-cli --host <device> capabilities

presets

Get configured presets.

soundtouch-cli --host <device> presets

Playback Control

Control music playback on your device.

play <subcommand>

Playback control commands.

# Get current playback status
soundtouch-cli --host <device> play now

# Start playback
soundtouch-cli --host <device> play start

# Pause playback
soundtouch-cli --host <device> play pause

# Stop playback
soundtouch-cli --host <device> play stop

# Next track
soundtouch-cli --host <device> play next

# Previous track
soundtouch-cli --host <device> play prev

preset

Select a preset by number.

soundtouch-cli --host <device> preset --preset <1-6>

Examples:

# Select preset 1
soundtouch-cli --host 192.168.1.10 preset --preset 1

# Select preset 6
soundtouch-cli --host 192.168.1.10 preset --preset 6

track

Get current track information.

soundtouch-cli --host <device> track

Key Commands

Send key commands to the device (simulates remote control).

key <subcommand>

Send various key commands.

# Send generic key command
soundtouch-cli --host <device> key send --key <KEY_NAME>

# Specific key commands
soundtouch-cli --host <device> key power
soundtouch-cli --host <device> key mute
soundtouch-cli --host <device> key thumbs-up
soundtouch-cli --host <device> key thumbs-down
soundtouch-cli --host <device> key volume-up
soundtouch-cli --host <device> key volume-down

Available Key Names:

  • PLAY, PAUSE, STOP
  • POWER, MUTE
  • VOLUME_UP, VOLUME_DOWN
  • PRESET_1 through PRESET_6
  • NEXT_TRACK, PREV_TRACK
  • THUMBS_UP, THUMBS_DOWN
  • SHUFFLE_ON, SHUFFLE_OFF
  • REPEAT_ON, REPEAT_OFF

Volume Control

Manage device volume.

volume <subcommand>

Volume control commands.

# Get current volume
soundtouch-cli --host <device> volume get

# Set specific volume level (0-100)
soundtouch-cli --host <device> volume set --level <0-100>

# Increase volume
soundtouch-cli --host <device> volume up [--amount <1-10>]

# Decrease volume
soundtouch-cli --host <device> volume down [--amount <1-10>]

Examples:

# Get volume
soundtouch-cli --host 192.168.1.10 volume get

# Set volume to 50
soundtouch-cli --host 192.168.1.10 volume set --level 50

# Increase volume by 5
soundtouch-cli --host 192.168.1.10 volume up --amount 5

# Decrease volume by 3 (default amount is 2)
soundtouch-cli --host 192.168.1.10 volume down --amount 3

Audio Sources

Manage audio input sources.

source <subcommand>

Audio source commands.

# List available sources
soundtouch-cli --host <device> source list

# Select specific source
soundtouch-cli --host <device> source select --source <SOURCE> [--account <ACCOUNT>]

# Quick source selection
soundtouch-cli --host <device> source spotify
soundtouch-cli --host <device> source bluetooth
soundtouch-cli --host <device> source aux

Source Names:

  • SPOTIFY - Spotify streaming
  • BLUETOOTH - Bluetooth input
  • AUX - AUX input
  • AIRPLAY - AirPlay
  • STORED_MUSIC - Local music library
  • INTERNET_RADIO - Internet radio
  • PRODUCT - Product-specific sources

Examples:

# List all sources
soundtouch-cli --host 192.168.1.10 source list

# Select Spotify
soundtouch-cli --host 192.168.1.10 source spotify

# Select Spotify with specific account
soundtouch-cli --host 192.168.1.10 source select --source SPOTIFY --account user@example.com

# Select Bluetooth
soundtouch-cli --host 192.168.1.10 source bluetooth

Bass Control

Adjust bass levels (equalizer).

bass <subcommand>

Bass control commands.

# Get current bass level
soundtouch-cli --host <device> bass get

# Set bass level (-9 to 9)
soundtouch-cli --host <device> bass set --level <-9 to 9>

# Increase bass
soundtouch-cli --host <device> bass up [--amount <1-5>]

# Decrease bass
soundtouch-cli --host <device> bass down [--amount <1-5>]

# Get bass capabilities
soundtouch-cli --host <device> bass capabilities

Examples:

# Get current bass
soundtouch-cli --host 192.168.1.10 bass get

# Set bass to +3
soundtouch-cli --host 192.168.1.10 bass set --level 3

# Increase bass by 2
soundtouch-cli --host 192.168.1.10 bass up --amount 2

# Decrease bass by 1 (default)
soundtouch-cli --host 192.168.1.10 bass down

Balance Control

Adjust left/right balance.

balance <subcommand>

Balance control commands.

# Get current balance
soundtouch-cli --host <device> balance get

# Set balance (-50 to 50, negative=left, positive=right)
soundtouch-cli --host <device> balance set --level <-50 to 50>

# Shift balance left
soundtouch-cli --host <device> balance left [--amount <1-10>]

# Shift balance right
soundtouch-cli --host <device> balance right [--amount <1-10>]

# Center balance
soundtouch-cli --host <device> balance center

Examples:

# Get balance
soundtouch-cli --host 192.168.1.10 balance get

# Set balance 10 units to the right
soundtouch-cli --host 192.168.1.10 balance set --level 10

# Shift left by 5 units (default)
soundtouch-cli --host 192.168.1.10 balance left

# Center the balance
soundtouch-cli --host 192.168.1.10 balance center

Clock and Time

Manage device clock settings.

clock <subcommand>

Clock control commands.

# Get current time
soundtouch-cli --host <device> clock get

# Set time manually (HH:MM format)
soundtouch-cli --host <device> clock set --time "14:30"

# Set to current system time
soundtouch-cli --host <device> clock now

# Display settings
soundtouch-cli --host <device> clock display get
soundtouch-cli --host <device> clock display enable
soundtouch-cli --host <device> clock display disable
soundtouch-cli --host <device> clock display brightness --brightness <low|medium|high|off>
soundtouch-cli --host <device> clock display format --format <12|24>

Examples:

# Get current time
soundtouch-cli --host 192.168.1.10 clock get

# Set time to 2:30 PM
soundtouch-cli --host 192.168.1.10 clock set --time "14:30"

# Sync with system time
soundtouch-cli --host 192.168.1.10 clock now

# Enable clock display
soundtouch-cli --host 192.168.1.10 clock display enable

# Set 24-hour format
soundtouch-cli --host 192.168.1.10 clock display format --format 24

# Set high brightness
soundtouch-cli --host 192.168.1.10 clock display brightness --brightness high

Network Information

Get network and connectivity information.

network <subcommand>

Network information commands.

# Get network information
soundtouch-cli --host <device> network info

# Ping the device
soundtouch-cli --host <device> network ping

# Get device base URL
soundtouch-cli --host <device> network url

Zone Management

Manage multi-room zones (multiple speakers playing together).

zone <subcommand>

Zone management commands.

# Get current zone configuration
soundtouch-cli --host <device> zone get

# Get zone status
soundtouch-cli --host <device> zone status

# List zone members
soundtouch-cli --host <device> zone members

# Create new zone
soundtouch-cli --host <device> zone create --members <ip1,ip2,ip3>

# Add device to zone
soundtouch-cli --host <device> zone add --member <ip>

# Remove device from zone
soundtouch-cli --host <device> zone remove --member <ip>

# Dissolve current zone
soundtouch-cli --host <device> zone dissolve

# Set zone configuration
soundtouch-cli --host <device> zone set --master <ip> --members <ip1,ip2>

Examples:

# Get current zone info
soundtouch-cli --host 192.168.1.10 zone get

# Create zone with three speakers
soundtouch-cli --host 192.168.1.10 zone create --members 192.168.1.11,192.168.1.12

# Add speaker to existing zone
soundtouch-cli --host 192.168.1.10 zone add --member 192.168.1.13

# Remove speaker from zone
soundtouch-cli --host 192.168.1.10 zone remove --member 192.168.1.12

# Dissolve the zone (make all speakers independent)
soundtouch-cli --host 192.168.1.10 zone dissolve

Common Usage Patterns

Quick Device Setup

# Discover devices
soundtouch-cli discover devices

# Get device info
soundtouch-cli --host 192.168.1.10 info

# Set comfortable volume and start playing
soundtouch-cli --host 192.168.1.10 volume set --level 30
soundtouch-cli --host 192.168.1.10 source spotify
soundtouch-cli --host 192.168.1.10 play start

Daily Usage

# Morning routine
soundtouch-cli --host 192.168.1.10 preset --preset 1  # Morning playlist
soundtouch-cli --host 192.168.1.10 volume set --level 25

# Pause for a call
soundtouch-cli --host 192.168.1.10 play pause

# Resume
soundtouch-cli --host 192.168.1.10 play start

# Evening routine
soundtouch-cli --host 192.168.1.10 preset --preset 3  # Evening playlist
soundtouch-cli --host 192.168.1.10 volume set --level 15

Multi-room Setup

# Create a zone with living room as master
soundtouch-cli --host 192.168.1.10 zone create --members 192.168.1.11,192.168.1.12

# Control the whole zone from master
soundtouch-cli --host 192.168.1.10 volume set --level 40
soundtouch-cli --host 192.168.1.10 source spotify
soundtouch-cli --host 192.168.1.10 preset --preset 2

# Later, dissolve the zone
soundtouch-cli --host 192.168.1.10 zone dissolve

Audio Tuning

# Get current audio settings
soundtouch-cli --host 192.168.1.10 volume get
soundtouch-cli --host 192.168.1.10 bass get
soundtouch-cli --host 192.168.1.10 balance get

# Adjust for better sound
soundtouch-cli --host 192.168.1.10 bass set --level 2      # Slight bass boost
soundtouch-cli --host 192.168.1.10 balance set --level -5  # Slightly left
soundtouch-cli --host 192.168.1.10 volume set --level 35   # Good listening level

Error Handling

The CLI provides clear error messages for common issues:

Device Not Found

Error: Failed to connect to device: connection refused

Solutions:

  • Check IP address is correct
  • Ensure device is powered on
  • Verify network connectivity with soundtouch-cli --host <device> network ping

Invalid Commands

Error: unknown command "volumee" for "soundtouch-cli"

Solution: Check command spelling and structure using --help

Missing Required Flags

Error: required flag "host" not set

Solution: Provide required flags: --host <device>

Getting Help

# General help
soundtouch-cli --help

# Command-specific help
soundtouch-cli volume --help
soundtouch-cli zone --help

# Subcommand help
soundtouch-cli volume set --help
soundtouch-cli zone create --help

Configuration

Environment Variables

You can set default values using environment variables:

export SOUNDTOUCH_HOST=192.168.1.10
export SOUNDTOUCH_PORT=8090
export SOUNDTOUCH_TIMEOUT=15s

# Now you can omit these flags
soundtouch-cli info
soundtouch-cli volume get

Configuration File

Create ~/.soundtouch.env:

SOUNDTOUCH_HOST=192.168.1.10
SOUNDTOUCH_PORT=8090
SOUNDTOUCH_TIMEOUT=15s
SOUNDTOUCH_DISCOVERY_TIMEOUT=10s

See Also