--- name: "cli-anything-rekordbox" description: >- Command-line interface for Pioneer Rekordbox 6/7 - DJ library and live-deck control via guarded SQLCipher master.db access (pyrekordbox) + virtual MIDI mapping. Provides library inspection, playlist creation/add/clear, and live-deck mixing (play/sync/crossfade/EQ). Pioneer ships no playback REST API; this harness combines the only two real surfaces (encrypted DB + MIDI) into one agent-native CLI. --- # cli-anything-rekordbox Agent-native CLI for Pioneer Rekordbox 6/7. Drives the DJ library and live decks programmatically. ## Installation ```bash pip install cli-anything-rekordbox ``` **Prerequisites:** - Python 3.10+ - Rekordbox 6 or 7 installed (`master.db` must exist) - Virtual MIDI driver for live-deck control: - Windows: loopMIDI / LoopBe / teVirtualMIDI - macOS: IAC Driver - Linux: ALSA virtual MIDI (`snd-virmidi`) ## Usage ```bash # Status check cli-anything-rekordbox status # REPL mode cli-anything-rekordbox # JSON output for agents cli-anything-rekordbox --json library search "Daft Punk" ``` ## Command Groups ### Library | Command | Description | |---------|-------------| | `count` | Total track count | | `search QUERY` | Find tracks by title/artist substring | | `info TRACK_ID` | Full track metadata | | `dump --out FILE.json` | Export full library as JSON | ### Playlist | Command | Description | |---------|-------------| | `list` | All playlists | | `create NAME [--force] [--no-backup]` | New playlist | | `add NAME --track-title T [--force] [--no-backup]` | Add track | | `clear NAME [--force] [--no-backup]` | Empty a playlist | Playlist writes create a `master.db` backup before mutation. They refuse to run while Rekordbox is open unless `--force` is supplied; forced writes still require a backup. `--no-backup` is only accepted when Rekordbox is closed. ### Deck (live MIDI) | Command | Description | |---------|-------------| | `play --deck N` | Play/pause | | `sync --deck N` | Tempo sync | | `crossfade FROM TO --secs S` | Smooth crossfade | | `eq --deck N --hi --mid --lo` | EQ control | | `hot-cue --deck N --slot 1-8` | Trigger hot cue | ### Top-level | Command | Description | |---------|-------------| | `status` | Runtime / DB / MIDI state | | `install-mapping` | Drop Bunker.midi.csv into rekordbox's MidiMappings folder | | `mix A B --secs S` | High-level: search + load + sync + crossfade | ## How it works ``` +------------------+ | Your Agent | +--------+---------+ | v +------------------+ | cli-anything- | | rekordbox CLI | +--------+---------+ | | v v +----------+ +----------+ |pyrekord- | | mido + | |box DB | | virtual | |writes | | MIDI | +----------+ +----------+ | | v v +----------+ +-----------+ | master.db| | Rekordbox | |SQLCipher | | live decks| +----------+ +-----------+ ``` - **master.db** is encrypted with a static AES-256 key shared by all rekordbox 6/7 installs (auto-extracted by pyrekordbox) - **Virtual MIDI** mapping uses Pioneer's standard `.midi.csv` format; this CLI ships `Bunker.midi.csv` and an `install-mapping` command to drop it into rekordbox's `MidiMappings/` folder ## JSON output Every command supports `--json`: ```bash $ cli-anything-rekordbox --json library count {"track_count": 30344} ``` ## License MIT