Skip to content

CLI Commands

Without arguments, the binary starts the MCP server. With a subcommand, it runs as a standalone CLI tool for batch operations.

Terminal window
# MCP server mode (default, launched by your MCP host)
reklawdbox
# CLI mode
reklawdbox <command> [options]

CLI commands load env vars from .mcp.json automatically — same config as the MCP server.


Batch enrichment + audio analysis. The recommended way to warm caches before classification or set building.

Terminal window
reklawdbox hydrate [options]
FlagShortTypeDefaultDescription
--providerslistdiscogs,beatport,analysisComma-separated provider list
--playliststringFilter by playlist ID
--artiststringFilter by artist (partial match)
--genrestringFilter by genre (partial match)
--bpm-minnumberMinimum BPM
--bpm-maxnumberMaximum BPM
--keystringFilter by musical key
--labelstringFilter by label (partial match)
--pathstringFilter by file path (partial match)
--querystringSearch query matching title or artist
--added-afterdateISO date — tracks added on or after
--added-beforedateISO date — tracks added on or before
--rating-min1-5Minimum star rating
--max-tracksintegerunlimitedCap number of tracks to process
--no-retry-errorsflagDon’t retry previously-errored enrichments
--cpupresetbackgroundCPU scheduling: background (~50% cores, niced) or overnight (cores - 2)
--concurrency-jinteger4Enrichment concurrency (min 1, max 16)
--yes-yflagSkip confirmation prompt

Discovers tracks, shows a summary with cache/pending/error counts, prompts for confirmation, then runs all three providers concurrently with progress bars and graceful Ctrl+C. If Discogs auth is needed, it opens the browser flow automatically.

Terminal window
# Hydrate everything (Discogs + Beatport + audio analysis)
reklawdbox hydrate
# Just audio analysis, 8 concurrent
reklawdbox hydrate --providers analysis -j 8
# Hydrate a specific playlist, skip confirmation
reklawdbox hydrate --playlist "Weekend Set" -y
# Only Discogs, only tracks added this year
reklawdbox hydrate --providers discogs --added-after 2026-01-01
# Only Discogs for a specific genre
reklawdbox hydrate --providers discogs --genre "Techno"
# Overnight run — max CPU, skip confirmation
reklawdbox hydrate --cpu overnight -y

Batch audio analysis. A focused alternative to hydrate --providers analysis with additional backend control.

Terminal window
reklawdbox analyze [options]
FlagShortTypeDefaultDescription
--playliststringFilter by playlist ID
--artiststringFilter by artist (partial match)
--genrestringFilter by genre (partial match)
--bpm-minnumberMinimum BPM
--bpm-maxnumberMaximum BPM
--keystringFilter by musical key
--labelstringFilter by label (partial match)
--pathstringFilter by file path (partial match)
--querystringSearch query matching title or artist
--added-afterdateISO date
--added-beforedateISO date
--rating-min1-5Minimum star rating
--max-tracksinteger200Max tracks to process
--no-skip-cachedflagRe-analyze already-cached tracks
--stratum-onlyflagSkip Essentia, run stratum-dsp only
--cpupresetbackgroundCPU scheduling: background (~50% cores, niced) or overnight (cores - 2)
--concurrency-jintegerautoOverride analysis concurrency (overrides --cpu preset, min 1, max 16)

Concurrency set by --cpu preset: background (~50% cores, nice 10), overnight (cores - 2). Cache is invalidated when the analysis schema version changes.

Terminal window
# Analyze all techno tracks, stratum-dsp only, 4 concurrent
reklawdbox analyze --genre Techno --stratum-only -j 4
# Overnight run — max CPU
reklawdbox analyze --cpu overnight

Read native metadata tags from audio files.

Terminal window
reklawdbox read-tags <paths...> [options]
FlagShortTypeDefaultDescription
<paths>string[]requiredAudio files or directories
--fieldslistallComma-separated field filter
--recursive-rflagRecursively scan directories for audio files
--cover-artflagInclude cover art metadata
--jsonflagOutput as JSON (JSONL for multiple files)

Without --recursive, directories are scanned one level deep. WAV files show both ID3v2 and RIFF INFO layers.

Terminal window
# Read all tags from a file
reklawdbox read-tags ~/Music/track.flac
# JSON output, only artist and title
reklawdbox read-tags ~/Music/*.flac --fields artist,title --json

Write or delete metadata tags on audio files.

Terminal window
reklawdbox write-tags <path> [options]
FlagTypeDefaultDescription
<path>stringrequiredAudio file to write to
--artiststringSet artist
--titlestringSet title
--albumstringSet album
--album-artiststringSet album artist
--genrestringSet genre
--yearstringSet year
--trackstringSet track number
--discstringSet disc number
--commentstringSet comment
--publisherstringSet publisher
--bpmstringSet BPM
--keystringSet musical key
--composerstringSet composer
--remixerstringSet remixer
--dry-runflagPreview changes without writing
--wav-targetslistbothWAV targets: id3v2, riff_info
--json-inputflagRead tags from stdin as JSON
--jsonflagOutput as JSON

Set a field to "" to delete it. Use --dry-run to preview.

Terminal window
# Set genre and preview
reklawdbox write-tags track.flac --genre "Techno" --dry-run
# Delete the comment field
reklawdbox write-tags track.flac --comment ""
# Batch update via JSON stdin
echo '{"artist": "Artist", "genre": "House"}' | reklawdbox write-tags track.flac --json-input
# Write to specific WAV layers
reklawdbox write-tags track.wav --artist "Artist" --wav-targets riff_info

Extract embedded cover art from an audio file.

Terminal window
reklawdbox extract-art <path> [options]
FlagTypeDefaultDescription
<path>stringrequiredAudio file
--outputstringcover.{ext}Output path
--picture-typestringfront_coverPicture type to extract
--jsonflagOutput as JSON
Terminal window
reklawdbox extract-art track.flac --output artwork.jpg

Embed cover art into one or more audio files.

Terminal window
reklawdbox embed-art <image> <targets...> [options]
FlagTypeDefaultDescription
<image>stringrequiredImage file (JPEG or PNG)
<targets>string[]requiredAudio files to embed into
--picture-typestringfront_coverPicture type
--jsonflagOutput as JSON
Terminal window
# Embed cover art into multiple files
reklawdbox embed-art cover.jpg track1.flac track2.flac track3.flac

Installs Essentia into a managed Python venv for audio analysis. Finds Python 3.9+, creates a venv at ~/.local/share/reklawdbox/essentia-venv, and installs Essentia via pip.

Terminal window
reklawdbox setup [options]
FlagShortDescription
--brokerConfigure a custom Discogs broker URL and token (self-hosted brokers only)
--yes-yAccept defaults without prompting (only applies to --broker)

The --broker flag opens an interactive prompt for custom Discogs broker configuration, writing settings to ~/Library/Application Support/reklawdbox/config.toml. The default broker is preconfigured and needs no setup.


Clear the stored Discogs broker session, forcing a fresh OAuth device auth flow on the next lookup_discogs call. Removes the session token from both Keychain and the local SQLite store. Idempotent — safe to run when no session exists.

Terminal window
reklawdbox disconnect-broker