Nothing is listening.
A REAPER MCP server and file bridge for AI agents.
Ask Claude to help mix your session, and undo any move it makes.
- 0ports open
- 0sockets
- 0extensions
- 3operating systems
- tick
- 0
- last beat
- 0.0s
- station
- in
- ports open
- 0
One command per tick, forever.
The bridge is a defer loop that never exits. It polls a folder, runs one thing, writes the answer down, and leaves a pulse behind. Four stations, in this order, for as long as REAPER is open.
- Inbox Your agent writes a JSON command file into a folder. Anything that can write a file can drive REAPER.
- Execute A Lua defer loop inside REAPER picks up one command per tick and runs it against the native API. It's the only thing that touches your session.
- Outbox The result comes back as JSON. Every write is atomic, so a reader never catches a half written file.
- Heartbeat The loop drops a heartbeat file on every pass, so you know it's alive without asking it anything.
Every command that changes the project runs inside a REAPER undo
block, so Cmd+Z reverts it like anything else you did
by hand. The bridge ships with no knowledge of any specific synth or
amp sim. Your agent learns what the project contains with
scan_fx, then works by name.
Say it once. It edits every note.
Everything it can touch.
- transport
- tempo
- cursor
- time selection
- render
- add / delete
- rename
- volume / pan
- mute / solo / arm
- colour
- add / remove
- bypass
- reorder
- set parameters
- automation envelopes
- markers
- regions
- media items
- insert MIDI
- audition
- scan_fx
- every FX by name
- every parameter
- offline media
- project state
- profile a stem
- cut the band
- write a riff
- humanize a take
- transcribe drums
- replay a recipe
It reads the guitar before it writes the drums.
Point it at a stem and it walks the take bar by bar, listening for what a drummer listens for: how dense the picking is, how regular, whether notes ring out or die palm muted, where the silence sits, where the feel changes. Then the drums get built against real measurements instead of vibes.
Bars 9 to 12 ring open while everything around them is dead palm mutes. Nobody labelled that, it heard it.
Real output from reaperd.py profile, run on a rendered
test stem.
| bar | hits | dens | ioi | decay | sil | rms | grid |
|---|---|---|---|---|---|---|---|
| 1 | 16 | 10.0 | 0.06 | 0.02 | 0.10 | -27.3 | Xxxx xxxx Xxxx xxxx |
| 2 | 14 | 8.8 | 0.25 | 0.02 | 0.20 | -27.6 | Xxxx xxx. Xxxx Xxx. |
| 3 | 16 | 10.0 | 0.06 | 0.02 | 0.11 | -27.4 | xxxx Xxxx xxxx xxxx |
| 4 | 14 | 8.8 | 0.24 | 0.02 | 0.21 | -27.5 | xxxx Xxx. xxxx Xxx. |
| 5 | 14 | 8.8 | 0.32 | 0.03 | 0.12 | -24.8 | Xxxx Xx.x xxxX xx.x |
| 6 | 14 | 8.8 | 0.31 | 0.03 | 0.12 | -24.0 | xxxx xx.x XxxX Xx.x |
| 7 | 14 | 8.8 | 0.31 | 0.03 | 0.12 | -25.0 | xxxx xx.x xxxx xx.x |
| 8 | 14 | 8.8 | 0.31 | 0.03 | 0.14 | -24.0 | xxxx xx.x xxxX Xx.x |
| 9 | 19 | 11.9 | 0.78 | 0.90 | 0.00 | -17.3 | Xxxx xxx. XxxX xxxx |
| 10 | 21 | 13.1 | 1.21 | 0.99 | 0.00 | -17.2 | XXxx xxx. xxxx xxx. |
| 11 | 17 | 10.6 | 0.96 | 0.87 | 0.00 | -18.0 | X.xx xxx. Xxxx xxx. |
| 12 | 24 | 15.0 | 1.01 | 0.96 | 0.00 | -18.0 | Xxxx xxxx Xxxx xxxx |
| 13 | 14 | 8.8 | 0.32 | 0.21 | 0.09 | -24.5 | xxxx x.xx xxxx X.xx |
| 14 | 14 | 8.8 | 0.31 | 0.02 | 0.24 | -27.3 | xxxx X.xx Xxxx X.xx |
| 15 | 14 | 8.8 | 0.30 | 0.02 | 0.20 | -27.3 | xxxx X.xx xxxx x.xx |
| 16 | 8 | 5.0 | 0.30 | 0.01 | 0.54 | -29.3 | xxxx x.xx x... .... |
A daemon is always the background app.
REAPER can unload your audio the moment it stops being the active window. It's a preference, it saves RAM, and working by hand you'd never notice. A daemon notices, because a daemon is never the active window. Reads come back describing media that isn't loaded, your virtual instruments keep playing while your recorded tracks go quiet, and it looks like a plugin problem instead of a checkbox.
So it tells you. It names the preference, lists which items are offline and which are actually missing, and warns you before it measures anything, so a number never arrives quietly wrong.
Files in. Files out.
Thirty seconds, then restart REAPER.
Free and open source under MIT. macOS, Windows or Linux. REAPER plus Python 3, and nothing else.
git clone https://github.com/wretcher207/reaper-daemon.git && cd reaper-daemon && python3 setup/install.py
- License · MIT, free
- Runtime · REAPER
- In · JSON command files
- Out · JSON results, REAPER project edits
Mix your REAPER session with an AI agent
Reaper Daemon lets Claude, or any MCP-capable agent, read every
plugin and parameter in your open session with scan_fx,
then make real moves. Set an FX value, write automation, adjust a
send. Nothing happens off in a black box. It's your actual REAPER
session, on your actual machine.
verify_change captures the track before and after a
move and reports the loudness change, plus per-band spectrum when
the Post Mortem engine is installed. Every move lives inside a
REAPER undo block. The agent doesn't hand back a finished mix. It
makes a move, shows you the numbers, and you audition it.
- The bass is muddy, pull down the low mids on that track.
- The vocal is sitting on top of the mix, bring it back.
- Tune the bass until its LUFS lands 3 dB lower.
- Read what's on the guitar bus and tell me what's fighting for the same space.
- Carve 2 dB at 300 Hz on the bass and show me what changed.
Turn a recording into drum MIDI.
Separate the drums from an audio item and recreate the hits on your own kit. Analysis runs locally in the background, preserving the source trim and timeline position. Requires the optional Python 3.11 model environment. Exact cymbal types, hat openness and individual tom pitches are estimates.
Install Reaper Daemon
-
Clone and run the installer
Copy the one-line installer at the top of this page, macOS/Linux or Windows, and paste it into your terminal. It clones the repo and runs setup/install.py, which finds REAPER and wires the bridge into its startup script.
-
Restart REAPER
Quit and reopen REAPER once so the startup script loads the bridge. It then runs forever in the background and writes a heartbeat file you can check.
-
Point your agent at the folder
Tell Claude Code, Codex, or your agent of choice where the clone lives. It writes JSON commands into inbox/ and reads results from outbox/.
-
Confirm it's live
Run python3 reaperd.py status from the clone (use python on Windows). A live heartbeat and a JSON description of the open project mean the daemon is in.
Can it turn a recording into drum MIDI?
Yes. Version 3.21.0 adds local drum separation and transcription. Start a background job from an audio item, then insert the notes onto your drum kit with the original trim and timeline position preserved. It needs the optional Python 3.11 model environment. Exact cymbal types, hat openness and individual tom pitches are estimates.
Can AI mix my song in REAPER?
It can make real moves in your REAPER session, set FX parameters, write automation, adjust sends, and measure what changed. It doesn't render a finished mix on its own with a guaranteed result. Every move sits inside an undo block, so you hear it and decide.
Is Reaper Daemon a REAPER MCP server?
Yes. reaper_mcp.py ships in the repo and exposes the bridge as MCP tools over stdio, with no network port. The file bridge underneath also works with any agent that can read and write JSON, MCP or not.
Does it work with Claude Desktop, Claude Code, or ChatGPT?
It works with Claude Desktop and Claude Code, and with any MCP client or agent that runs on your machine and can read and write files. The ChatGPT website can't reach a REAPER session on your computer, so use a local MCP client instead.
How is this different from AI mixing plugins like Neutron?
Those plugins analyze audio and apply a suggestion inside their own window. The mixing bridge controls your installed plugins. Optional drum transcription processes audio locally in a separate worker. It lets an agent read your whole REAPER session, make the same moves you would make by hand with your own plugins, measure what happened, and undo it.
Is this free?
Yes. Reaper Daemon is free and open source under the MIT license. The source is on GitHub. There's nothing to buy.
Do I need a REAPER extension like SWS?
No. The bridge uses the native REAPER API only. No third-party extensions, no plugins, no separate install.
Is there a server or network connection?
Not at runtime. The bridge opens no socket and listens on no port. The agent writes JSON files into a folder and a Lua script inside REAPER reads them; everything stays on your machine. If your agent prefers MCP, an optional stdio MCP server ships in the repo and speaks over the same files, still nothing on the network.
Can the agent break my project?
Every command that changes the project runs inside a REAPER undo block. If an edit is wrong, Cmd+Z reverts it like any other action.
Does it work on Windows?
Yes. The bridge is pure Lua on the native REAPER API and the CLI is a single Python file, so the same install runs on macOS, Windows, and Linux. setup/install.py detects your OS and wires REAPER's startup script automatically.
Do I need Shreddage and the GGD Nolly bass for the guitar side?
Those are the two libraries mapped out of the box, Shreddage 3.5 Argent in E or drop C# and the GGD Nolly bass. The engine writes plain MIDI with keyswitches, so a different library is a new entry in one map file, not a rewrite. The drum side already discovers any kit you've installed.
Which agents work with it?
Anything that can read and write files. Claude Code, Codex CLI, Cursor's terminal agent, or your own scripts. The agent doesn't need to know the REAPER API, it discovers the project with scan_fx and acts on tracks and FX by name.
Keep reading.
How to Use Claude to Mix in REAPER
A plain chat window can't touch your REAPER session. Connect an agent to Reaper Daemon and it can read the project, measure the audio, and make undoable moves.
REAPER MCP Servers Compared, 2026
An honest look at the main REAPER MCP servers in 2026: how each connects, what it measures, what it needs, and where each one wins. Includes our own.
No Server. No MCP. Just Files in a Folder.
Everyone's racing to ship an MCP server. Reaper Daemon gives an AI agent hands in your DAW with nothing but JSON files in a folder. Here's why simple won.
The AI Mix Engineer That's Allowed to Say I Don't Know
Post Mortem reads one REAPER track, separates facts from guesses, and lets you preview one safe fix. The engine stays open; the panel is paid.