Prerequisites
- BeatOps desktop app installed and running
The CLI (beatops) is included with the desktop app - no extra installation needed.
Verify it works:
beatops --help
Getting Started
Make sure the BeatOps desktop app is running. The CLI connects to it automatically on localhost:7410.
List your beats:
beatops list
Show details for a specific beat:
beatops show "beat name"
Check which platforms are connected:
beatops status
Commands
list
List all beats in your library.
beatops list [--format json]
Flags:
--format json- Output as JSON
Example:
beatops list
beatops list --format json
show
Show detailed information about a specific beat.
beatops show <name> [--format json]
Flags:
--format json- Output as JSON
Example:
beatops show "Midnight"
analyze
Analyze a beat's audio to detect BPM, key, genre, and mood.
beatops analyze <name> [--format json]
Flags:
--format json- Output as JSON
Example:
beatops analyze "Midnight"
status
Check the connection status of all platforms (YouTube, SoundCloud).
beatops status [--format json]
Flags:
--format json- Output as JSON
Example:
beatops status
config get
Show all current configuration values.
beatops config get [--format json]
Flags:
--format json- Output as JSON
Example:
beatops config get
config set
Set a configuration value.
beatops config set <key> <value>
Available keys:
beats_folder- Path to your beats folderdefault_template_set- Default template set name
Example:
beatops config set beats_folder "/path/to/beats"
connect
Connect a platform account via OAuth.
beatops connect <platform> [--shorts] [--yes] [--format json]
Flags:
--shorts- Connect YouTube Shorts account--yes- Skip confirmation prompts--format json- Output as JSON
Example:
beatops connect youtube
beatops connect soundcloud
beatops connect youtube --shorts
scan
Scan a folder for beats and import them into BeatOps.
beatops scan [<path>] [--format json]
Flags:
--format json- Output as JSON
Example:
beatops scan
beatops scan "/path/to/new-beats"
check
Pre-validate a beat before uploading. Checks that all required metadata, images, and platform connections are in place.
beatops check <name> [--format json]
Flags:
--format json- Output as JSON
Example:
beatops check "Midnight"
upload
Upload a beat to one or more platforms.
beatops upload <name> --to <platforms> [--dry-run] [--yes] [--format json]
Flags:
--to- Target platforms (youtube, soundcloud)--dry-run- Preview without uploading--yes- Skip confirmation prompts--format json- Output as JSON
Example:
beatops upload "Midnight" --to youtube soundcloud
beatops upload "Midnight" --to youtube --dry-run
pipeline
Run the full pipeline: analyze audio, generate images and video, then upload.
beatops pipeline <name> --to <platforms> [--dry-run] [--yes] [--format json]
Flags:
--to- Target platforms (youtube, soundcloud)--dry-run- Preview without uploading--yes- Skip confirmation prompts--format json- Output as JSON
Example:
beatops pipeline "Midnight" --to youtube soundcloud --yes
batch
Batch process multiple beats at once.
beatops batch [<names>...] --to <platforms> [--all] [--upload-only] [--yes] [--format json]
Flags:
--to- Target platforms (youtube, soundcloud)--all- Process all unuploaded beats--upload-only- Skip analysis and generation, upload only--yes- Skip confirmation prompts--format json- Output as JSON
Example:
beatops batch "Midnight" "Sunrise" --to youtube --yes
beatops batch --all --to youtube soundcloud --yes
analytics
View analytics for a beat (views, likes, comments across platforms).
beatops analytics <name> [--format json]
Flags:
--format json- Output as JSON
Example:
beatops analytics "Midnight"
JSON Output for Scripting
All commands support --format json for machine-readable output. Data goes to stdout and errors go to stderr, so you can pipe output safely.
beatops list --format json | jq '.[] | .name'
beatops show "Midnight" --format json | jq '.bpm'
This makes it easy to integrate BeatOps into shell scripts, CI pipelines, or any automation workflow.
Troubleshooting
Connection refused
If you see a "connection refused" error, make sure the BeatOps desktop app is running. The CLI connects to the app's local API on port 7410.
Command not found
If beatops is not recognized after installation:
- Make sure the BeatOps desktop app is installed
- Check that the app's CLI directory is in your system PATH
- Try restarting the desktop app