Full key list for advanced users: docs_tech/docs_parameters/README_CONFIG_PARAMETERS.md.
Boolean values (in the file and on the command line, case-insensitive): true|1|yes|y|on and
false|0|no|n|off. Anything else falls back to the built-in default.
Chapter 1: Files And Priority
| OS | Shipped template (first-run seed) | Effective file (edited) |
|---|---|---|
| Windows | <exe-dir>\config.json |
%AppData%/DjMirror/DjMirrorPulse/config.json |
| macOS | DjMirrorPulse.app/Contents/Resources/config.json |
~/Library/Application Support/DjMirror/DjMirrorPulse/config.json |
Missing effective file → template copied there on first run. Rule: CLI flags always override config.json;
missing in both → built-in default. Edit the effective file — the template is only re-seed.
Edit config.json safely
- Close DjMirror Pulse (several keys are read once at startup).
- Copy the effective file (for example to
config.json.bak) so you can roll back. - Edit the effective file in your user-data folder, not the copy next to the executable.
- Keep the file valid JSON: double quotes, commas between entries, no trailing comma.
- Start the app. If it misbehaves, put the backup back — see Backup & Restore.
A minimal example that sets a media folder, a fixed port and an API key (all other keys keep their defaults):
{
"documentsPath": "D:/ShowFiles",
"port": 8080,
"apiKey": "change-me",
"language": "en"
}
Chapter 2: Keys By Task
Server and client
| Key | Default | Meaning |
|---|---|---|
server |
true |
Run the HTTP/WebSocket server |
port |
8080 |
HTTP port; WebSocket uses port + 1 |
apiKey |
off (open API) | Require this key on every request |
client |
off | URL of a server to follow (multi-screen) |
clientApiKey |
off | Key used when connecting to that server |
announce |
true |
UDP broadcast used for phone pairing (config-only) |
Paths and language (config-only, read once at startup)
| Key | Default | Meaning |
|---|---|---|
documentsPath |
OS Documents folder | Root that contains Visuals/ |
traktorPath |
<documentsPath>/Native Instruments/Traktor 4.5.0 |
Traktor data folder (restart needed) |
geminiApiKey |
off | Key for AI image generation |
language |
auto |
auto, en, es, de, fr, fi, zh_CN… |
Windows, GPU and integrations
| Key | Default | Meaning |
|---|---|---|
settingsWindow, mainMaximized, separateMaximized |
false |
Window layout options |
console |
false |
Show a console window with the log (Windows) |
backend |
auto | Graphics backend |
gpu, gpuName |
auto | Pick a specific graphics adapter |
gpuInfo, highPerf, lowPower |
off | GPU information and power preference |
mcp |
false |
Auto-launch the MCP companion (inherits DJMIRROR_API_TOKEN) |
What is not in config.json
- Audio devices and sample rates are runtime settings of the audio analyzer.
- Live visual state is stored in the operating-system settings (Windows registry
HKCU\Software\DjMirror\DjMirrorPulse, macOS preferences). - Ableton Link settings are stored there too, so they survive a
config.jsonreset.
Chapter 3: CLI Flags
| Flag | Overrides | Default |
|---|---|---|
--d3d11\|--d3d12\|--opengl\|--vulkan\|--software, --backend <n> |
backend |
auto |
--gpu <i> / --no-gpu, --gpu-name <n> / --no-gpu-name, --gpu-info, --high-perf, --low-power (+ --no-…) |
GPU keys | auto/off |
--console / --no-console (Windows) |
console |
off |
-s,--settings-window <bool>, --main-maximized, --separate-maximized |
window keys | off |
--server / --no-server |
server |
on |
--port <n> |
port |
8080 (0 → 8080) |
--client <url> / --no-client |
client |
off |
--client-key <key> |
clientApiKey (falls back to own apiKey/DJMIRROR_API_TOKEN) |
— |
--spout / --spout-layout (Windows) |
per-run start, no config change | — |
--mcp-stdin |
MCP over stdio | — |
--help, --version, --help-all |
— | — |
Launch examples (Windows PowerShell)
# Show a console window with the log (useful when something does not start)
.\DjMirrorPulse.exe --console
# Run as the server for a second screen, on port 9000, and require a key
$env:DJMIRROR_API_TOKEN = "choose-a-long-key"
.\DjMirrorPulse.exe --server --port 9000
# Run as a client that follows that server (no server of its own)
.\DjMirrorPulse.exe --no-server --client http://192.168.1.50:9000 --client-key choose-a-long-key
# List the graphics adapters, then force one
.\DjMirrorPulse.exe --gpu-info
.\DjMirrorPulse.exe --gpu 1 --d3d11
--help lists every flag. A flag is applied only for that run; to make it permanent, set the matching key in the
effective config.json (see §1 and §2).
DJMIRROR_API_TOKEN env beats apiKey in file. Prefer config.json over --client-key on shared machines
(process lists leak arguments).
Chapter 4: Layouts And Other State
Visuals/underdocumentsPath:Videos|Images|Avatars|Logos|Styles(seeded fromVisuals.zipnext to the exe when empty). Styles:Visuals/Styles/*.json; playlists:*.txtbeside media.- DMX fixture profiles file:
dmx_fixtures_profiles/dmx_fixture_profiles.json(CWD/appDir-resolved). - NDI saved path: OS-settings group
DMX/savedNdiConfigPath. - Paired phones:
<AppDataLocation>/mobile_devices.json. License key: OS-settingsLicense/ActivationKey. - MCP proxy config:
%AppData%/DjMirror/DjMirrorPulse/config_mcp.json(see MCP guide).
Chapter 5: Quick Recipe Card
- Edit the effective
config.json(AppData, not exe dir). CLI wins over file over default. - Server:
--server --port 8080; client:--client URL [--client-key]; debug:--console. documentsPath= media root; audio/visual live state = OS settings, not the file.- Secrets via env (
DJMIRROR_API_TOKEN), never on shared command lines.
Chapter 6: Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| My edit has no effect | Edited the template next to the exe, not the effective file | Edit the file under AppData / Application Support |
| Edit has no effect (path keys) | documentsPath/traktorPath are read once |
Restart the app |
| App starts with default settings | config.json is invalid JSON |
Restore your copy, or fix commas and quotes |
| Port flag ignored | Another instance already holds the port | Use a different --port or start with --no-server |
Phone or client rejected after setting apiKey |
Clients still send no key | Send X-API-Key; see HTTP API |
| Want to see what the app logs | No console | Start with --console (Windows) |
More: Troubleshooting.