Background daemon that automatically records Pioneer Rekordbox DJ sets by capturing process audio output.
- Silence detection — pauses recording when no audio is playing
- Session splitting — silence gaps create separate files
- Auto export — saves to
~/Music/sessiontape/as WAV or MP3 when Rekordbox closes
Windows code signing is provided by SignPath.io, certificate by SignPath Foundation.
Open PowerShell and paste this command to download and run the installer directly:
$msi = "$env:TEMP\sessiontape.msi"; Invoke-WebRequest -Uri "https://github.com/icherniukh/sessiontape/releases/latest/download/sessiontape.msi" -OutFile $msi; if ($?) { Start-Process msiexec.exe -ArgumentList '/i', $msi, '/qn', '/norestart' -Wait }The installer places the application in %LOCALAPPDATA%\Programs\SessionTape and the config in %APPDATA%\sessiontape\config.toml. It registers a Scheduled Task so it runs automatically at login.
You can also run it manually from the command line:
sessiontape # normal execution
sessiontape -v # verbose debug logging- Download the latest
sessiontape.msifrom the Releases page. - Unblock the installer: Right-click the downloaded
.msi-> Properties -> Check Unblock -> OK. - Run the installer.
Note: If you still see "Windows protected your PC", click More info -> Run anyway.
brew tap icherniukh/tap
brew install sessiontapeRun SessionTape in the foreground:
sessiontapeStart it as a background service at login:
brew services start sessiontapePermissions (macOS 14+):
Open Rekordbox — a system dialog will prompt for Screen Recording consent. If missed: System Settings → Privacy & Security → Screen Recording → enable sessiontape.
If you want to install from source instead of using pre-built binaries, you will need the appropriate build tools (Visual Studio C++ on Windows, Xcode on macOS) and Python/uv.
git clone https://github.com/icherniukh/sessiontape.git
cd sessiontape
uv pip install -e .(Note: For this to work fully, you must also compile the native capture helpers for your platform. See the Development section below).
The application uses a configuration file to customize its behavior (such as output directory, silence thresholds, and export format).
Config file locations:
- Windows:
%APPDATA%\sessiontape\config.toml(created automatically by the installer) - macOS:
~/Library/Application Support/sessiontape/config.toml(you must create this manually)
You can find a complete list of settings and their default values in the config.default.toml file in this repository.
If you want to export recordings as MP3 instead of WAV, ensure ffmpeg is installed and available on your system PATH.
- Windows: 10 Build 19041+ (WASAPI loopback), Visual Studio 2019+ (C++ workload)
- macOS: 12+ (Screen Recording permission required), Xcode + Swift toolchain
- Python 3.11+
uv(recommended) orpip
The following scripts handle the entire build process: compiling the native capture helper, bundling the Python daemon using PyInstaller, and (on Windows) creating the WiX MSI installer plus an optional Inno Setup installer when available.
Windows
uv pip install pyinstaller
powershell -ExecutionPolicy Bypass -File scripts\build-windows.ps1Outputs to dist\sessiontape.exe and dist\sessiontape.msi, plus dist\sessiontape-setup.exe when Inno Setup is installed.
macOS
uv pip install pyinstaller
bash scripts/build.sh --fullOutputs to dist/sessiontape.
uv run pytest tests/ -v| File | Role |
|---|---|
src/daemon.py |
Orchestrator — drives capture lifecycle on Rekordbox start/stop |
src/process_monitor.py |
Polls for Rekordbox process with debounce |
src/capture.py |
Selects platform backend, feeds PCM to recorder |
src/backends/macos_capture.py |
Spawns mac-capture, reads PCM from stdout |
src/backends/windows_capture.py |
Spawns sessiontape-capture-win.exe, reads PCM from stdout |
src/recorder_core.py |
Silence detection, raw session writing, WAV/MP3 export |
windows-capture/main.cpp |
Native WASAPI process loopback helper (Windows) |
mac-capture/ |
Native CoreAudio process tap helper (macOS) |
© 2026 Ivan Cherniukh.
All code is licensed under the GPL, v3 or later. See LICENSE file for details.
See PRIVACY.md.