$npx -y skills add iPlug3/audio-plugin-dev-skills --skill validate-clapValidate 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.
| 1 | # CLAP Validator |
| 2 | |
| 3 | ## Plugin Install Locations |
| 4 | |
| 5 | `clap-validator` accepts a direct path, but these are the standard install locations where hosts scan for CLAP plugins. |
| 6 | |
| 7 | | Platform | User Location | System Location | |
| 8 | |----------|--------------|-----------------| |
| 9 | | macOS | `~/Library/Audio/Plug-Ins/CLAP/` | `/Library/Audio/Plug-Ins/CLAP/` | |
| 10 | | Windows | `%LOCALAPPDATA%\Programs\Common\CLAP\` | `C:\Program Files\Common Files\CLAP\` | |
| 11 | | Linux | `~/.clap/` | `/usr/lib/clap/` or `/usr/local/lib/clap/` | |
| 12 | |
| 13 | ## Instructions |
| 14 | |
| 15 | 1. Install `clap-validator` (see Installation below) |
| 16 | 2. Locate the built `.clap` plugin bundle (in your build output directory or one of the standard locations above) |
| 17 | 3. Run: `clap-validator validate /path/to/plugin.clap` |
| 18 | 4. To see only failures: `clap-validator validate --only-failed /path/to/plugin.clap` |
| 19 | 5. For debugging, run a specific test in-process: `clap-validator validate --in-process --test-filter <test> /path/to/plugin.clap` |
| 20 | |
| 21 | ## Installation |
| 22 | |
| 23 | ### Option 1: Download Pre-built Binary |
| 24 | |
| 25 | 1. Download from [GitHub Releases](https://github.com/free-audio/clap-validator/releases) |
| 26 | 2. Extract and place in your PATH: |
| 27 | - **macOS / Linux**: `/usr/local/bin/` |
| 28 | - **Windows**: Add to `PATH` or place in project directory |
| 29 | |
| 30 | **macOS only:** Builds are unsigned. Remove the quarantine attribute: |
| 31 | ```bash |
| 32 | xattr -dr com.apple.quarantine /path/to/clap-validator |
| 33 | ``` |
| 34 | |
| 35 | ### Option 2: Build from Source |
| 36 | |
| 37 | ```bash |
| 38 | # Requires Rust (all platforms) |
| 39 | cargo install clap-validator |
| 40 | |
| 41 | # Or build from source |
| 42 | git clone https://github.com/free-audio/clap-validator |
| 43 | cd clap-validator |
| 44 | cargo build --release |
| 45 | # Binary at target/release/clap-validator (macOS/Linux) |
| 46 | # Binary at target\release\clap-validator.exe (Windows) |
| 47 | ``` |
| 48 | |
| 49 | ## Basic Usage |
| 50 | |
| 51 | ```bash |
| 52 | # Validate a CLAP plugin |
| 53 | clap-validator validate /path/to/plugin.clap |
| 54 | |
| 55 | # Show only failed tests |
| 56 | clap-validator validate --only-failed /path/to/plugin.clap |
| 57 | |
| 58 | # Validate multiple plugins |
| 59 | clap-validator validate /path/to/plugin1.clap /path/to/plugin2.clap |
| 60 | ``` |
| 61 | |
| 62 | ## Commands |
| 63 | |
| 64 | ```bash |
| 65 | # List available tests |
| 66 | clap-validator list tests |
| 67 | |
| 68 | # List tests with descriptions (JSON format) |
| 69 | clap-validator list tests --json |
| 70 | |
| 71 | # List all installed CLAP plugins |
| 72 | clap-validator list plugins |
| 73 | |
| 74 | # List installed plugins (JSON format) |
| 75 | clap-validator list plugins --json |
| 76 | |
| 77 | # List presets for specific plugins |
| 78 | clap-validator list presets /path/to/plugin.clap |
| 79 | |
| 80 | # List presets for all installed plugins |
| 81 | clap-validator list presets |
| 82 | |
| 83 | # List presets (JSON format) |
| 84 | clap-validator list presets --json |
| 85 | ``` |
| 86 | |
| 87 | ## Validation Options |
| 88 | |
| 89 | ```bash |
| 90 | # Show only failed and warning tests |
| 91 | clap-validator validate --only-failed /path/to/plugin.clap |
| 92 | |
| 93 | # Run tests in current process (for debugging, allows debugger attachment) |
| 94 | clap-validator validate --in-process /path/to/plugin.clap |
| 95 | |
| 96 | # Filter to specific test (case-insensitive regex) |
| 97 | clap-validator validate --test-filter <REGEX> /path/to/plugin.clap |
| 98 | |
| 99 | # Invert filter — skip matching tests instead |
| 100 | clap-validator validate --test-filter <REGEX> --invert-filter /path/to/plugin.clap |
| 101 | |
| 102 | # Only validate a specific plugin ID from a multi-plugin library |
| 103 | clap-validator validate --plugin-id <PLUGIN_ID> /path/to/plugin.clap |
| 104 | |
| 105 | # Disable parallel test execution (sequential, keeps output in order) |
| 106 | clap-validator validate --no-parallel /path/to/plugin.clap |
| 107 | |
| 108 | # Hide plugin's own output (useful for noisy plugins) |
| 109 | clap-validator validate --hide-output /path/to/plugin.clap |
| 110 | |
| 111 | # Output results as JSON |
| 112 | clap-validator validate --json /path/to/plugin.clap |
| 113 | |
| 114 | # JSON output showing only failures |
| 115 | clap-validator validate --json --only-failed /path/to/plugin.clap |
| 116 | ``` |
| 117 | |
| 118 | ## Verbosity |
| 119 | |
| 120 | The top-level `-v`/`--verbosity` flag controls the validator's own logging (not the plugin's output): |
| 121 | |
| 122 | ```bash |
| 123 | # Suppress all non-essential output |
| 124 | clap-validator -v quiet validate /path/to/plugin.clap |
| 125 | |
| 126 | # Default level |
| 127 | clap-validator -v debug validate /path/to/plugin.clap |
| 128 | |
| 129 | # Available levels: quiet, error, warn, info, debug, trace |
| 130 | ``` |
| 131 | |
| 132 | ## Debugging Failed Tests |
| 133 | |
| 134 | ```bash |
| 135 | # List available tests |
| 136 | clap-validator list tests |
| 137 | |
| 138 | # Run specific test in-process (allows debugger attachment) |
| 139 | clap-validator validate --in-process --test-filter <test-name> /path/to/plugin.clap |
| 140 | |
| 141 | # With lldb (macOS/Linux) |
| 142 | lldb -- clap-validator validate --in-process --test-filter <test> /path/to/plugin.clap |
| 143 | |
| 144 | # With Visual Studio debugger (Windows) - attach to process or use: |
| 145 | devenv /debugexe clap-validator.exe validate --in-process --test-filter <test> C:\path\to\plugin.clap |
| 146 | ``` |
| 147 | |
| 148 | ## Test Categories |
| 149 | |
| 150 | | Category | Description | |
| 151 | |----------|-------------| |
| 152 | | Plugin loading | Library symbols, entry poi |