Skip to content

First run

Terminal window
mixr

First 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:

Terminal window
mixr --play "Melodic House & Techno" --shuffle # queue a genre + smart-shuffle
mixr --genre "Techno" --dashboard # set default genre, jump to dashboard
mixr --search "ARTBAT" # jump to search
mixr --browse "Genres/Techno/Top 100" # navigate browse-tree by path
mixr --quality flac|256k|128k # set audio quality
mixr --claude-dj "peak hour" # enable Claude DJ with a vibe prompt
mixr --status # print state, no TUI

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:

KeyScreen
dDashboard (default)
bBrowse Beatport’s catalog
qCurrent queue
hPlay history
/ or sSearch
cFull Claude DJ screen (log scrollback)
,Settings
?Help
KeyAction
pPlay / pause focused deck
nSkip to next queued track
tTeleport to mix-in point
TRewind last mix
mTrigger 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)
MMetronome overlay
GRe-analyze + regrid current deck
KeyAction
EnterQueue focused track
aQueue everything on current screen
XClear queue (Y/N confirm)
xSmart shuffle (BPM + Camelot key compatible)
{ / }Reorder queue item up / down
LLoad next page of results
SpacePreview the focused track
KeyAction
14Jump to hot cue
!@#$Set hot cue (shift-1..4)
u / U / i / I / OLoop 1 / 2 / 4 / 8 / 16 beats (press again to release)
z / ZOpen Virtual Mixer overlay (EQ / filter / volume / loop)
Terminal window
mixr --claude-key sk-ant-... # one-time, stores at ~/.mixr/claude.toml

Then:

KeyAction
CToggle Claude DJ on/off
cFull 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

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 K from 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.

mixr reads JSON commands from ~/.mixr/command. Useful from any language:

Terminal window
echo '{"skip":1}' > ~/.mixr/command # next track
echo '{"crossfader":-0.5}' > ~/.mixr/command # fader toward deck A
echo '{"transition":"echoout"}' > ~/.mixr/command # force the next mix type
echo '{"eq":{"deck":"a","low":-12}}' > ~/.mixr/command # cut deck A bass

Every key binding above has an IPC equivalent — full list in FEATURES.md.

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.