Download
Open DJ is free alpha software for macOS on Apple silicon. This page says exactly what you get, and marks what is not ready yet.
Open DJ for macOS.
A desktop app for Apple silicon Macs. Your library and settings live on your own machine.
Open DJ 1.0 alpha
Available after the launch build is verified- Platform
- macOS on Apple silicon (arm64) only. No Intel build.
- Version
- Open DJ 1.0 alpha, the first public release of the DJ app. Earlier version numbers are explained on the Changelog.
- Stage
- Alpha: the first public test release. Try it at home on your own library, and keep rekordbox for paid gigs for now.
- Not in this alpha
- USB export: cues you set stay in Open DJ, and nothing goes back to rekordbox or to a USB stick, so you cannot prepare club USBs with it yet.
MIDI controllers: not supported in the Mac app in this alpha, which works with mouse and keyboard. They work in Chrome or Edge only when you run Open DJ from a source checkout (below).
Audio outputs: the app's own output pickers do not work in this build; it plays to the macOS default output, so set the output in macOS Sound settings.
Effects, sampler, recording: no effects beyond the channel filter and no sampler; a REC control exists in the code but has not been checked in the Mac app.
Making stems: not in the app; today that needs the developer setup.
Hot cues: your rekordbox hot cues come across and jump; saving new ones is built but not yet tested on a real library, and not yet possible on tracks imported from a folder.
Cue on a second audio output: not in the Mac app yet; headphone cue works in practice mode or with a split cable.
Windows, Linux and Intel Macs. - Price
- Free. No paid feature exists.
- License
- Apache-2.0. License page
- Source
- The source link appears after the public mirror is verified. The build-from-source steps are below.
- Bugs
- There is no public issue tracker at launch. The security route opens with the public mirror, and
hello@open-dj.comworks once its forwarding is verified (contact). Error reports and masked session recordings reach the project only if you accept the test-user terms (Privacy).
- The file name and its size.
- Its SHA-256 checksum, to check your download.
- Whether it is signed and notarized by Apple, and if not, how to open it.
- The minimum macOS version.
Open the app 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? Pick a music folder instead; those tracks are analyzed after the import and labeled unanalyzed until then.
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 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 and djay writes go through the safety rails, and the FAQ covers the Serato and Traktor writers. Back up your libraries before the first run anyway, the way you would before trying any new DJ software.
# compare with the SHA-256 listed above shasum -a 256 <downloaded file> # check the signature once installed codesign --verify --deep --strict --verbose=2 <path to the app> spctl --assess --verbose <path to the app>
One platform, said plainly.
A platform gets a download button only when a tested build exists for it.
| Platform | Status | From |
|---|---|---|
| macOS, Apple silicon | Alpha, build pending | INSTALL-05 |
| macOS, Intel | Not built | INSTALL-05 |
| Windows | Not yet | CROSS-02 |
| Linux | Not yet | CROSS-01 |
Build it yourself.
For developers: one verified path, from the project README and justfile, that runs Open DJ from source in your browser. It is also the only way to use a controller today, and it needs some comfort with Terminal. You need macOS, git, just, uv and Node.js 22.14 or newer with pnpm. uv fetches Python 3.11.15 for you.
# the clone URL is filled in after the public mirror is verified git clone <public repository URL> opendj cd opendj # Python environment (.venv), reproducible from uv.lock uv sync --frozen --extra dev --python 3.11.15 # frontend: pnpm only, no package-lock.json corepack enable cd apps/webui/frontend pnpm install --frozen-lockfile
# daemon first; it claims this checkout's own # port pair and listens on this Mac only make webui.dev # then the SvelteKit dev server cd apps/webui/frontend && pnpm dev # open the frontend address this prints, plus /performance just webui-ports
From source: your rekordbox data
rekordbox's master.db is SQLCipher-encrypted. A source checkout reads a static decrypted working copy at data/master.plain.db; python -m apps.audit.rekordbox_vs_music first copies the live database to data/master.db.copy, then python -m apps.shared.state.cli init creates the state database and python -m apps.shared.state.cli ingest-rb --write decrypts that copy with the key from pyrekordbox and imports it (without --write it is a dry run). If you copy the database by hand, copy master.db, master.db-wal and master.db-shm together, or recent changes are missed.
From source: if the rig looks empty
Run just webui-ports and check that the backend address it prints belongs to this checkout's daemon (lsof -ti :<backend port>). A daemon from another checkout serves a different library, so the rig can look broken when it is not.
More, including tests and conventions: Contributing.