A+BQuestions

FAQ

Short answers. A DJ's questions first, then an engineer's.

ADeck A / A DJ asks

Before you load a track.

Is it free?

Yes. Nothing is behind a paywall, and the code is Apache-2.0 licensed. The project's rule for any future paid feature, in Alex Foster's words:

“a paid feature must be one that needs a server you run, and then it enforces itself with no DRM at all.”

In a prompt to the build agents, Mon 31 Aug 2026. In plain terms: anything that might one day cost money will be something that needs a server, like cloud sync; nothing in the app on your Mac will be locked.

Will it change my rekordbox library?

No. The installed Mac app clears the write switch before its engine starts, so it will not write to your rekordbox library, a Pioneer share or a USB export; its one library write is a djay playlist write-back, which runs only after you confirm it and backs up the playlist first. It copies rekordbox's database file and reads only the copy. From a source checkout, writes are off by default; the one exception is undo of an earlier write you allowed. rekordbox encrypts that file, so the copy is decrypted with pyrekordbox, the open-source library Open DJ uses to read it. Cues you set in Open DJ stay in Open DJ, and saving new ones is built but not yet tested on a real library: nothing goes back to rekordbox or to a USB stick in this alpha, so you cannot prepare club USBs with it yet.

Developers running from source have command-line writers. Their rekordbox and djay writes go through these rails, so no single mistake can corrupt a library. The Traktor writer has only the dry run and two explicit flags, with no running-app check, backup, atomic write or read-back, and the Serato and Traktor writers are tested on synthetic files only, so do not run them against your real library. More on the Migrate page.

  1. You type a non-trivial confirmation string.
  2. It refuses to write while the target app is running. In rare setups this check can miss, so quit the other app yourself before any write.
  3. It makes a timestamped backup of every file it will change.
  4. Dry run is the default. A live write needs two explicit flags.
  5. The write is atomic, one database transaction or a temp file renamed into place, never half-written.
  6. It reads the result back to verify it, and emits a script that reverses the change.

Back up your libraries before a first run anyway.

Can I play a gig on it?

Not yet. It is an alpha, the first public test release. Try the four-deck screen on your own library at home, use it to find missing files, and keep rekordbox for paid gigs for now. The features page lists what works and what does not.

What happens if it crashes mid-set?

A crash can stop the music. While anything plays, Open DJ saves where your decks are to disk, at most every 2 seconds. Reopen it within 10 minutes and the decks come back and play on from where the track would be by now, on the beat, with one Undo. After longer than that, up to 24 hours, it restores your decks, cues, EQ and faders without playing anything. While a deck is playing, Cmd-Q asks before it quits.

Where do I start?

Download the app once the launch build is verified, open it, and setup finds your rekordbox library and imports it, with progress on screen. Quit rekordbox first so the import has your latest changes. No rekordbox? Point it at a music folder. Then load a track from the library onto a deck. The download page has the details.

Which operating systems?

macOS on Apple silicon. It is the only build. Windows and Linux get a download button only when a tested build exists. See Platforms.

Which controllers work?

MIDI controllers are not supported in the Mac app in this alpha: it runs in macOS's own web view, which has no WebMIDI, so it works with mouse and keyboard. They work in Chrome or Edge only when you run Open DJ from a source checkout; the steps are on the download page.

The Pioneer DDJ-400 has been played live that way. A DDJ-FLX4 map passed a first hardware round. Maps for the DDJ-FLX10 and Reloop Mixtour exist, and the project has no record of them being played in a set. Other controllers need a map; a learn log shows what each control sends. Controller status

How is it different from Mixxx?

Mixxx is the established open-source DJ app and has been developed since 2001. Open DJ is a much younger project. What it focuses on: a four-deck screen laid out like rekordbox, importing the rekordbox library you already have without changing it, a library view that shows missing files, stems and lyrics inside the deck, and a command surface that scripts and agents can drive.

Is it a rekordbox replacement?

Not today. rekordbox is the AlphaTheta (Pioneer DJ) app. Open DJ keeps a screen layout working DJs already know and imports the rekordbox library you already have, without changing it, so you can run both. It is local-first and independent, and it is not affiliated with AlphaTheta.

Why "alpha"?

It is early software, and 1.0 alpha means the first public test release, not a finished one. It runs on one platform, the Mac app cannot use a MIDI controller yet, stems are made outside the app, several features are partial, and some controller maps have not been played live. The app's own audio output pickers do not work in this build, so set the output in macOS Sound settings. There are no effects beyond the channel filter and no sampler; both are planned controls that show as not built. A REC control exists in the code but has not been checked in the Mac app. The features page lists what works and what does not.

How do I report a bug?

There is no public issue tracker at launch. The security route opens with the public mirror (Security), and hello@open-dj.com works once its forwarding is verified (Press). If you accept the test-user terms, the app sends error reports and a recording of the session with all text masked, no audio and no artwork; track names and file paths are stripped out. See Privacy.

Is this the OpenDJ LDAP server?

No. Open DJ is DJ software. OpenDJ is an unrelated LDAP directory server, and the two projects have no connection.

BDeck B / An engineer asks

Before you read the code.

What do "typed commands" and "agent-drivable" mean?

The deck and mixer controls each send a small typed message through one dispatcher, whether you click them, turn a MIDI knob, or an agent sends the message. Because the same messages are reachable from code, over HTTP and through the opendj command line and opendj mcp server, an agent can operate the rig, test it and extend it. Most deck and mixer controls are typed commands, master volume and master mute among them; a few top-bar controls, such as drawer and overlay open-state, are not yet.

command shapesperformance-ipc.svelte.ts
{ type: 'fader', deck: 1, value: 0.8 }
{ type: 'play', deck: 2, playing: true }
{ type: 'crossfader', value: 0.5 }
What is the open-dj format?

A vendor-neutral library format that records where each analyzed value came from, so a disagreement between two apps is visible in the data instead of silently overwritten. It has a JSON Schema, a reference parser, a canonicalizer and a conformance corpus. The spec and schemas are CC BY 4.0; the reference code is Apache-2.0. It is at v0.2 and expected to change before 1.0. More

Does it need an account or the internet?

No account is required. Google sign-in asks only for the standard identity scopes. Sign-in is optional and the app works without it; it is required for the stems relay route and to enroll a machine in a CloudSync hub. The library lives on your machine. A few things reach the network on their own: lyrics for your library from LRCLIB (artist, title and duration), missing cover art from MusicBrainz and the Cover Art Archive when a track loads (title and first artist), and a check for a newer version at every start. The privacy page lists what goes where.

Where is the source?

It is not public yet. It is planned to open on Mon 5 Oct 2026, as a public mirror of the repository; the source link appears after the public mirror is verified (Contributing). The build-from-source steps are on the download page.

How did one person build it?

With a build system where issues in the private repository are the queue, agent workers build in parallel, and changes merge through automated test and review gates: a model review at each pull request head, then a merge queue that runs the designated test lane on the exact tree that lands. The library layer came first, in April; the performance rig was built mostly in August and September. How it was built, with the numbers

A / Parity
Beyond / B { type: 'crossfader', value: 0.50 }