Skip to content

Logan-Fouts/DAWPilot

Repository files navigation

DAWPilot

DAWPilot is a free, open-source configurable remote control surface for any DAW. It runs on your studio PC, opens a clean mobile-friendly deck on your local network, and triggers DAW shortcuts and workflow macros on the host machine.

Control transport, editing, mixing, and more from any phone, tablet, or browser while recording, comping, or mixing.

Features

  • Runs as a simple local Node.js server on Windows
  • Access the control deck from any browser on the same network
  • Supports multiple DAWs: REAPER, Ableton Live, FL Studio, Cubase, Pro Tools, Studio One
  • Supports button pages, pinned controls, color groups, and visual icons
  • Sends DAW hotkeys and macro chains through AutoHotkey v2
  • Includes a built-in JSON editor for quick deck customization
  • Supports optional password protection for LAN access
  • Fully configurable — open-source and MIT licensed
  • Designed to stay lightweight for low-latency studio use

Requirements

  • Windows host computer
  • Node.js 18+
  • AutoHotkey v2 on the host machine for hotkey sending

AutoHotkey download: https://www.autohotkey.com/

Simple Use Guide (EXE)

  1. Go to GitHub Releases and download DAWPilot.exe from the latest release.
  2. Install AutoHotkey v2 on the same Windows PC running your DAW.
  3. Run DAWPilot.exe.
  4. Open DAWPilot from another device on the same network, select your DAW, and start using the controls.

Quick Start

  1. Install dependencies.
npm install
  1. Create a local password config.
copy config\auth.example.json config\auth.json
  1. Edit config/auth.json and set your own password.

  2. Start the server.

npm start
  1. Open the printed LAN URL from a device on the same network.

Example URLs:

Build Windows EXE

Create a standalone executable so end users do not need Node.js installed.

  1. Build the executable.
npm run build:win
  1. The output will be:
  • dist/DAWPilot.exe
  1. On first launch, the app creates a local config folder next to the EXE with:
  • config/buttons.json
  • config/auth.example.json
  1. To enable password protection on the EXE build:
  • Copy config/auth.example.json to config/auth.json
  • Set your password in config/auth.json
  1. Distribute DAWPilot.exe and the generated config folder together.

GitHub Auto Release

When you push to main (or master), GitHub Actions will:

  • Build dist/DAWPilot.exe on Windows
  • Use assets/reaperpilot.ico as the EXE logo source when present
  • Publish or update a GitHub Release tagged latest
  • Attach the EXE as a release asset

Workflow file:

  • .github/workflows/release.yml

Important:

  • In your GitHub repo settings, keep Actions > Workflow permissions set to Read and write permissions so the workflow can create or update Releases.

EXE Tray Mode

  • On Windows EXE builds, DAWPilot starts a tray icon automatically when AutoHotkey v2 is installed.
  • The tray menu includes:
    • Open DAWPilot (opens http://localhost:4219)
    • Exit DAWPilot (stops the server)
  • The console window is hidden in tray mode.

Disable tray mode if needed:

$env:DAWPILOT_DISABLE_TRAY="1"; .\DAWPilot.exe

Configuration

Main files:

  • config/buttons.json
  • config/daws/*.json
  • config/auth.json (local only, ignored by git)
  • config/auth.example.json (committed template)

You can edit the deck in two ways:

  • Edit a DAW file in config/daws/ directly
  • Use the in-app config editor from the browser UI (saves to the currently selected DAW)

Button Config Model

  • Root object: title, subtitle, theme, pages
  • Optional root object: globalButtons for pinned controls shown on every tab
  • Each page: id, name, rows, columns, buttons
  • Each button supports:
    • icon: short visual marker like REC, >>, MX
    • combo: simple hotkey string like Ctrl+V
    • actions: macro array

Supported action types:

  • hotkey
  • text
  • delay
  • command

Security

Password protection can be configured in two ways:

  • Local file: config/auth.json
  • Environment variables: HOTKEYS_AUTH_PASS, optional HOTKEYS_AUTH_REALM

Environment variables override the local file.

This project is intended for trusted LAN environments. Password protection is useful, but you should still avoid exposing it directly to the public internet.

Publishing Notes

  • config/auth.json is ignored by git so local passwords do not get committed
  • Use config/auth.example.json as the public template
  • node_modules is ignored and should never be committed

Development

Run in watch mode:

npm run dev

License

MIT

About

ReaperPilot is a lightweight LAN remote for REAPER on Windows, including REAPER’s built-in web interface and expanded controls.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors