Reagent connects to REAPER through a Lua Script Bridge, giving you full control over your projects through natural language. This page covers what you can do and how it works.
How It Works
The Bridge is a script that runs inside REAPER and listens for commands from Reagent. When you send a message:
- Reagent figures out what you want to do
- Sends commands to REAPER through the Bridge
- REAPER executes the commands
- Results come back to Reagent
All operations are wrapped in undo blocks, so you can always undo any changes with Cmd/Ctrl + Z in REAPER.
Reagent has access to a set of specialized tools for interacting with REAPER. You don’t need to know the tool names—just describe what you want in plain language and Reagent picks the right tools automatically.
These tools read information from your project without making changes.
| Tool | What it does |
|---|
| Get Project State | Returns project overview: name, tempo, time signature, track/item counts, selection state |
| Get Tracks | Lists tracks with properties like name, color, mute/solo, volume, pan, and folder structure |
| Get Media Items | Returns detailed item information including position, length, takes, and fades |
| Get Markers & Regions | Lists all markers and regions with positions, names, and colors |
| Get Installed Plugins | Lists available FX (VST, VST3, AU, CLAP, JS) with type and manufacturer info |
| Get FX Parameter Schema | Returns parameter names, ranges, and current values for FX plugins on a track |
| Get Media Source Info | Returns source file details: type, length, channels, sample rate, file size |
| Get Items by GUID | Fast lookup of specific items by their unique identifier |
These tools make changes to your project.
| Tool | What it does |
|---|
| Execute ReaScript | Runs custom Lua code in REAPER for operations not covered by other tools |
| Create ReaScript | Generates Lua code for review before running — lets you inspect, edit, save, and register scripts as REAPER actions |
| Edit Media Item | Split, delete, copy, move, or trim media items by GUID |
| Trim Item Silence | Removes silent portions from items or splits at silence boundaries |
| Mark Peaks | Detects transients and amplitude peaks, places take markers |
| Replace Items | Swaps media items while handling track placement and alignment |
| Build Variations | Creates multiple variations of source items with randomized pitch, volume, timing, and effects |
| Randomize Items | Applies pitch, volume, timing, and other randomization to items |
| Take Volume Leveler | Analyzes dialogue/vocals and generates take volume envelope automation to normalize dynamic range. Supports LUFS targeting for precise loudness control |
| Transcribe Dialogue | Transcribes voice recordings with word-level timestamps and stores results on each item |
| Analyze Transcription | Detects take boundaries and computes trim points from transcriptions. Supports voice-takes and podcast analysis modes, and custom analysis instructions for non-standard workflows |
| Apply Edits | Splits items at detected take boundaries, trims silence, and renames takes to match spoken text |
These tools analyze audio content within your REAPER project.
| Tool | What it does |
|---|
| Spectrum Analysis | Analyzes frequency content of media items across sub, bass, mid, and high bands |
| RMS Loudness | Measures overall loudness of media items |
| Silence Detection | Finds silent regions within media items |
| Transient Detection | Locates hits, attacks, and transients within media items |
| Classify Items | Identifies what kind of audio content an item contains (voice, SFX, music, etc.) |
| Tool | What it does |
|---|
| Snapshot | Local LLM memory allowing Reagent to optimize it’s own performance |
| Tool | What it does |
|---|
| Search REAPER API | Semantic search of ReaScript API docs to find functions and verify signatures |
REAPER Subagent
For complex multi-step tasks, Reagent can delegate work to a specialized REAPER subagent. The subagent focuses exclusively on executing REAPER operations — analyzing items, editing, classifying content — while Reagent handles the higher-level planning.
When a subagent is working, you’ll see a live activity view in the chat showing each step as it runs. The subagent executes tools sequentially to ensure reliable results, and all changes remain undoable in REAPER.
You don’t need to do anything special to use the subagent — Reagent decides when delegation is appropriate based on the complexity of your request.
Limitations
Some things aren’t possible through scripting:
- Operations requiring modal dialogs
- Real-time monitoring
If something isn’t possible, Reagent will explain why and suggest alternatives.
Modal dialogs or popups in REAPER will block Reagent until dismissed.