First run
Launch
Section titled “Launch”mixrFirst launch opens a WebView to log into Beatport. Sign in — mixr never sees your password. After auth, you land on the dashboard.
Useful launch flags:
mixr --play "Melodic House & Techno" --shuffle # queue a genre + smart-shufflemixr --genre "Techno" --dashboard # set default genre, jump to dashboardmixr --search "ARTBAT" # jump to searchmixr --browse "Genres/Techno/Top 100" # navigate browse-tree by pathmixr --quality flac|256k|128k # set audio qualitymixr --claude-dj "peak hour" # enable Claude DJ with a vibe promptmixr --status # print state, no TUIThe dashboard
Section titled “The dashboard”The default view is the dashboard. Two decks side by side, crossfader between them, status line below, log scrollback at the bottom. Tab cycles focus across the 13 sections (Controller / Queue / History / Browse / Log / etc.); ↑↓ move within a section, ←→ adjust.
Switch screens any time:
| Key | Screen |
|---|---|
d | Dashboard (default) |
b | Browse Beatport’s catalog |
q | Current queue |
h | Play history |
/ or s | Search |
c | Full Claude DJ screen (log scrollback) |
, | Settings |
? | Help |
Transport + mixing
Section titled “Transport + mixing”| Key | Action |
|---|---|
p | Play / pause focused deck |
n | Skip to next queued track |
t | Teleport to mix-in point |
T | Rewind last mix |
m | Trigger crossfade immediately |
< / > | Jump ±N bars (cycle 4/8/16/32 on dashboard) |
[ / ] | Nudge incoming deck (hold) |
; / ' | Shift beat grid ±2 ms |
( / ) | Shift beat grid ±1 beat |
: | Command prompt (e.g. :transition echoout) |
M | Metronome overlay |
G | Re-analyze + regrid current deck |
| Key | Action |
|---|---|
Enter | Queue focused track |
a | Queue everything on current screen |
X | Clear queue (Y/N confirm) |
x | Smart shuffle (BPM + Camelot key compatible) |
{ / } | Reorder queue item up / down |
L | Load next page of results |
Space | Preview the focused track |
Hot cues, loops, EQ
Section titled “Hot cues, loops, EQ”| Key | Action |
|---|---|
1–4 | Jump to hot cue |
!@#$ | Set hot cue (shift-1..4) |
u / U / i / I / O | Loop 1 / 2 / 4 / 8 / 16 beats (press again to release) |
z / Z | Open Virtual Mixer overlay (EQ / filter / volume / loop) |
Claude DJ
Section titled “Claude DJ”mixr --claude-key sk-ant-... # one-time, stores at ~/.mixr/claude.tomlThen:
| Key | Action |
|---|---|
C | Toggle Claude DJ on/off |
c | Full Claude DJ screen (conversation log) |
/ | Ask DJ a one-off prompt (from dashboard) |
+ / = | Rate last mix good (teaches DJ) |
- / _ | Rate last mix bad |
Modes (Settings → DJ Mode):
- Auto — Claude runs the whole set unattended
- Assist — Claude suggests, you confirm
- Manual — Claude operates virtual mixer tools (load/play/EQ/crossfader) while you steer
MIDI controllers
Section titled “MIDI controllers”Plug a controller in. If it matches a bundled preset (Numark Mixstream Pro Go Plus, or the generic 2-channel layout), it auto-binds.
For unsupported controllers:
- Press
Kfrom the dashboard → MIDI Learn mode - Waggle each control to bind it
- Saves to
~/.mixr/midi/<device>.toml
Or write the TOML mapping by hand — see docs/midi-controllers.md (in progress) for the format.
IPC — script the rig
Section titled “IPC — script the rig”mixr reads JSON commands from ~/.mixr/command. Useful from any language:
echo '{"skip":1}' > ~/.mixr/command # next trackecho '{"crossfader":-0.5}' > ~/.mixr/command # fader toward deck Aecho '{"transition":"echoout"}' > ~/.mixr/command # force the next mix typeecho '{"eq":{"deck":"a","low":-12}}' > ~/.mixr/command # cut deck A bassEvery key binding above has an IPC equivalent — full list in FEATURES.md.
Cart + buy
Section titled “Cart + buy”If a track moves you mid-set, hit & on the dashboard — adds the currently-playing track to your Beatport cart. Buy them later from beatport.com.