RABBIT sets up a fully accessible REAPER on Windows and macOS in a few clicks. Instead of hunting through download pages, copying files into the right folders, and fighting installers that fight your screen reader, you launch one small program and it does the work.
RABBIT installs and keeps up to date:
- REAPER — the DAW itself
- OSARA — the screen-reader extension that makes REAPER usable with NVDA, JAWS, Narrator, and VoiceOver
- SWS — the popular SWS Extension
- ReaPack — REAPER's package manager
- ReaKontrol — Native Instruments Komplete Kontrol support
- JAWS-for-REAPER scripts (Windows only, when JAWS is detected)
- FFmpeg (Windows only, opt-in) — the shared FFmpeg runtime
(
avformat,avcodec, …) that REAPER's video decoder loads fromUserPlugins. Pulled from Gyan.dev on x64 and tordona/ffmpeg-win-arm64 on ARM64. Pinned to the latest stable FFmpeg major REAPER's video decoder is known to support (currently 8.x). Unticked by default so it doesn't surprise users who don't need video. - Surge XT (opt-in, standard REAPER installations only) — the
free open-source hybrid synthesizer from the
Surge Synth Team. RABBIT
runs the vendor installer (Inno Setup on Windows,
productbuild-wrapped
.pkgon macOS) under elevation so the VST3, CLAP, AU (macOS only) and standalone formats land system-wide for REAPER and other DAWs to pick up. Tracks the rolling nightly channel rather than the official 1.3.4 release (which is from August 2024 and the project effectively ships through nightlies). Hidden on portable REAPER targets because Surge XT's factory data lives at fixed system paths outside any portable REAPER folder. - app2clap (Windows only, opt-in, standard REAPER installations only) —
app2clap, a CLAP plugin by Jamie Teh
(jcsteh, of OSARA/NVDA fame) that captures audio from other applications
and brings it into REAPER — or any CLAP host — as a plug-in you insert on
a track. RABBIT tracks the
rolling
snapshotsrelease, installsapp2clap.clapinto the per-user CLAP folder (%LOCALAPPDATA%\Programs\Common\CLAP) with no elevation required, and keeps it up to date. Disabled on portable REAPER targets because the CLAP folder lives outside any portable REAPER folder.
Surge XT and app2clap are grouped under Additional software in the wizard — extras that aren't tied to REAPER itself. Both are disabled on portable REAPER targets, since they install to fixed per-user/system locations rather than into the portable REAPER folder.
Beyond installing packages, RABBIT can also apply small post-install configuration tweaks. Today there's one such step:
- Add the REAPER Accessibility ReaPack repository to ReaPack
(
https://github.com/Timtam/reapack/raw/master/index.xml). When ReaPack is part of your install plan or already on disk, this step is ticked by default; if the repository is already configured in yourreapack.ini, the step shows as already applied and is skipped. Idempotent and safe to re-run.
Built with screen reader users in mind: keyboard-first wizard, native controls, NVDA/JAWS/Narrator/VoiceOver tested, English, German, French + Italian UI out of the box. No console window, no installer, no settings file — one executable you can run from any folder and delete when you're done.
Pick the file that matches your machine. These links always point at the latest release — bookmark or share them freely:
- Windows (Intel/AMD 64-bit): rabbit-windows-x86_64.exe
- Windows (ARM 64-bit): rabbit-windows-aarch64.exe
- macOS (universal — Apple Silicon + Intel) — recommended: rabbit-macos-universal.app.zip
- macOS bare binary (CLI use): rabbit-macos-universal
To pin a specific version (or download SHA-256 sums for verification),
browse the GitHub Releases
page — every release also
publishes versioned filenames (rabbit-<version>-windows-x86_64.exe,
etc.) alongside per-asset .sha256 files.
On Windows, place the downloaded executable wherever you like (Desktop,
Downloads, a USB stick) and double-click it. You can rename it to RABBIT.exe
if you prefer — RABBIT still updates itself in place under whatever filename you
chose.
RABBIT for macOS is signed with an Apple Developer ID and notarized by Apple.
Unzip rabbit-<version>-macos-universal.app.zip and double-click Rabbit.app
— it launches normally on first run, with no quarantine workaround needed.
Self-updates keep working under the same bundle identity.
The bare rabbit-<version>-macos-universal download is a plain Mach-O CLI
executable (no .app wrapper). After downloading, run chmod +x and invoke
it from Terminal.
Launch the downloaded executable. The wizard walks you through:
- Pick a REAPER target — RABBIT detects existing standard installs automatically; pick "portable" if you want a self-contained REAPER folder.
- RABBIT checks for the latest versions of REAPER and the accessibility packages.
- Pick the packages you want installed or updated, plus any configuration steps (e.g. adding the REAPER Accessibility ReaPack repository). Sensible defaults are already checked.
- Review and install. RABBIT downloads, verifies, and installs everything without further prompts.
When it finishes, you can launch REAPER straight from the wizard or open the saved report.
Use the language picker at the bottom of the window. Currently bundled languages: English (United States), Deutsch (Deutschland), Français (France) and Italiano (Italia). RABBIT auto-picks your OS language on first launch when a translation is available.
The same RABBIT.exe / RABBIT executable also exposes a CLI when invoked with
arguments. Run RABBIT --help for the full list. The most useful commands grouped
by what they do:
RABBIT detect # list detected REAPER installs
RABBIT detect --portable C:\REAPER # also probe a portable folder
RABBIT components --resource-path "%APPDATA%\REAPER"
RABBIT latest # show latest upstream versions
RABBIT plan --resource-path "%APPDATA%\REAPER"
RABBIT plan --resource-path "%APPDATA%\REAPER" --online
RABBIT preflight --resource-path "%APPDATA%\REAPER"
plan prints what RABBIT would do for the given REAPER target. Add
--online to compare detected versions against the live upstream feeds.
# One-shot setup of a portable REAPER + accessibility packages:
RABBIT setup --resource-path C:\REAPER --portable --apply
# Update or install one specific package:
RABBIT install-extension --package osara --resource-path "%APPDATA%\REAPER" --apply
# Install/update everything that needs it for an existing REAPER:
RABBIT apply-packages --resource-path "%APPDATA%\REAPER" --apply
The CLI is dry-run by default; pass --apply to actually make changes.
--save-report writes a JSON report next to the resource path so you have a
record of what was installed.
setup also accepts --config-step <id> (repeatable) and
--skip-config-step <id> for the post-install configuration tweaks.
With no flags, all recommended steps whose dependencies are satisfied
(and that aren't already applied) run automatically; pass an explicit
list to opt in to a specific subset, or --skip-config-step to opt
out of one. The only step today is
reapack-add-reaper-accessibility-remote. Run RABBIT --help for the
full set of flags.
RABBIT backups --resource-path "%APPDATA%\REAPER" # list rollback sets
RABBIT restore-backup --resource-path "%APPDATA%\REAPER" \
--backup-id unix-1234567890 --apply # roll back one set
RABBIT self-update check # see if a new RABBIT is out
RABBIT self-update apply --restart # update + relaunch
The GUI does this automatically on startup; the CLI commands are there for unattended environments and CI.
Every installation produces a JSON report under <resource>/RABBIT/logs/.
Backups go to <resource>/RABBIT/backups/<timestamp>/. The download cache lives
in %LOCALAPPDATA%\RABBIT\cache (Windows) or ~/Library/Caches/RABBIT (macOS) and
can be deleted safely at any time.
RABBIT was built with the help of AI coding assistants. Much of the code, tests, and documentation in this repository was written collaboratively with large language models, then reviewed and maintained by its human author. We mention this openly so users and contributors know what went into the project.
See DESIGN.md for the full architecture and design rules. To
build from source you need a recent stable Rust toolchain. The wxDragon GUI
feature on Windows additionally needs the Visual Studio C++ build tools, an
LLVM libclang.dll discoverable through LIBCLANG_PATH, and Ninja on
PATH.
cargo fmt
cargo test --workspace
.\scripts\build-wxdragon-test.ps1 # Windows GUI smoke build
CI lives under .github/workflows/:
ci.yml— formatting, tests, and release-mode artifacts on every push.macos-smoke.yml— daily live-upstream smoke against real REAPER + OSARA- SWS + ReaKontrol downloads.
release.yml— builds taggedv*releases (Windows.exe, macOS bare binary, macOS.app.zip), publishes the GitHub Release with checksums and the self-update manifest. macOS bundles are Developer ID signed and notarized when theMACOS_*signing secrets are configured, falling back to ad-hoc signing + theOpen Me First.commandhelper otherwise.macos-signing-smoke.yml— manual (workflow_dispatch) smoke test of the macOS signing + notarization + stapling path. Builds the universal bundle, signs/notarizes/staples it, verifies the result on the runner, and uploads the signed bundle without publishing. Run it to validate signing before tagging a release.
Issues, pull requests, and translation contributions welcome — RABBIT is for the REAPER accessibility community first.