- 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
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,STOPPOWER,MUTEVOLUME_UP,VOLUME_DOWNPRESET_1throughPRESET_6NEXT_TRACK,PREV_TRACKTHUMBS_UP,THUMBS_DOWNSHUFFLE_ON,SHUFFLE_OFFREPEAT_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 streamingBLUETOOTH- Bluetooth inputAUX- AUX inputAIRPLAY- AirPlaySTORED_MUSIC- Local music libraryINTERNET_RADIO- Internet radioPRODUCT- 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
- Getting Started Guide - Basic setup and usage
- WebSocket Events - Real-time monitoring
- Zone Management - Multi-room setup
- API Endpoints - Complete API reference