| name | validate-clap |
| description | Validate CLAP plugins (.clap files) using clap-validator. Use when user says "validate CLAP", "run clap-validator", "test the .clap", or "test CLAP plugin". Does NOT validate .vst3 or .component — use the appropriate validators. |
| compatibility | macOS, Windows, Linux. Requires clap-validator binary (pre-built or via Rust/cargo). |
| metadata | {"author":"Oli Larkin","version":"0.0.1"} |
CLAP Validator
Plugin Install Locations
clap-validator accepts a direct path, but these are the standard install locations where hosts scan for CLAP plugins.
| Platform | User Location | System Location |
|---|
| macOS | ~/Library/Audio/Plug-Ins/CLAP/ | /Library/Audio/Plug-Ins/CLAP/ |
| Windows | %LOCALAPPDATA%\Programs\Common\CLAP\ | C:\Program Files\Common Files\CLAP\ |
| Linux | ~/.clap/ | /usr/lib/clap/ or /usr/local/lib/clap/ |
Instructions
- Install
clap-validator (see Installation below)
- Locate the built
.clap plugin bundle (in your build output directory or one of the standard locations above)
- Run:
clap-validator validate /path/to/plugin.clap
- To see only failures:
clap-validator validate --only-failed /path/to/plugin.clap
- For debugging, run a specific test in-process:
clap-validator validate --in-process --test-filter <test> /path/to/plugin.clap
Installation
Option 1: Download Pre-built Binary
- Download from GitHub Releases
- Extract and place in your PATH:
- macOS / Linux:
/usr/local/bin/
- Windows: Add to
PATH or place in project directory
macOS only: Builds are unsigned. Remove the quarantine attribute:
xattr -dr com.apple.quarantine /path/to/clap-validator
Option 2: Build from Source
cargo install clap-validator
git clone https://github.com/free-audio/clap-validator
cd clap-validator
cargo build --release
Basic Usage
clap-validator validate /path/to/plugin.clap
clap-validator validate --only-failed /path/to/plugin.clap
clap-validator validate /path/to/plugin1.clap /path/to/plugin2.clap
Commands
clap-validator list tests
clap-validator list tests --json
clap-validator list plugins
clap-validator list plugins --json
clap-validator list presets /path/to/plugin.clap
clap-validator list presets
clap-validator list presets --json
Validation Options
clap-validator validate --only-failed /path/to/plugin.clap
clap-validator validate --in-process /path/to/plugin.clap
clap-validator validate --test-filter <REGEX> /path/to/plugin.clap
clap-validator validate --test-filter <REGEX> --invert-filter /path/to/plugin.clap
clap-validator validate --plugin-id <PLUGIN_ID> /path/to/plugin.clap
clap-validator validate --no-parallel /path/to/plugin.clap
clap-validator validate --hide-output /path/to/plugin.clap
clap-validator validate --json /path/to/plugin.clap
clap-validator validate --json --only-failed /path/to/plugin.clap
Verbosity
The top-level -v/--verbosity flag controls the validator's own logging (not the plugin's output):
clap-validator -v quiet validate /path/to/plugin.clap
clap-validator -v debug validate /path/to/plugin.clap
Debugging Failed Tests
clap-validator list tests
clap-validator validate --in-process --test-filter <test-name> /path/to/plugin.clap
lldb -- clap-validator validate --in-process --test-filter <test> /path/to/plugin.clap
devenv /debugexe clap-validator.exe validate --in-process --test-filter <test> C:\path\to\plugin.clap
Test Categories
| Category | Description |
|---|
| Plugin loading | Library symbols, entry point, factory |
| Descriptors | Plugin ID, name, features, categories |
| Parameters | Info, ranges, text conversion, automation flags |
| State | Save/load, empty state handling |
| Audio processing | Activation, processing, thread safety |
| Fuzzing | Random parameter values, random audio/MIDI |
| Presets | Discovery, loading (if supported) |
Common Issues
Parameter Test Failures
- Ensure
CLAP_PARAM_IS_READONLY is not combined with CLAP_PARAM_IS_AUTOMATABLE
- Check parameter ranges and default values are valid
- Verify text-to-value and value-to-text conversions
State Test Failures
- Ensure
clap_plugin_state::load() returns false for empty/invalid state
- Check thread safety in state save/load