Validates CLAP audio plugins (.clap files) using clap-validator. Guides installation via binary or Rust cargo, platform plugin paths, test commands, and listing plugins/presets.
npx claudepluginhub iplug3/audio-plugin-dev-skills --plugin audio-plugin-validatorsThis skill uses the workspace's default tool permissions.
`clap-validator` accepts a direct path, but these are the standard install locations where hosts scan for CLAP plugins.
Validates VST3 (.vst3) and AudioUnit (.component) plugins using pluginval at configurable strictness levels. Activates on 'run pluginval', 'validate plugin', or cross-format testing requests. macOS/Windows/Linux; AudioUnit macOS-only.
Runs pytest-based automated tests validating Claude Code plugin integrity across 14 categories (config, skills, templates, workflow, etc.). Use before PRs, after changes to skills/templates, or to verify health.
Validates Claude Code plugin directories against Anthropic spec via structural checks (plugin.json, files, permissions) and content grading (SKILL.md, commands). Use for building, auditing, or marketplace prep.
Share bugs, ideas, or general feedback.
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/ |
clap-validator (see Installation below).clap plugin bundle (in your build output directory or one of the standard locations above)clap-validator validate /path/to/plugin.clapclap-validator validate --only-failed /path/to/plugin.clapclap-validator validate --in-process --test-filter <test> /path/to/plugin.clap/usr/local/bin/PATH or place in project directorymacOS only: Builds are unsigned. Remove the quarantine attribute:
xattr -dr com.apple.quarantine /path/to/clap-validator
# Requires Rust (all platforms)
cargo install clap-validator
# Or build from source
git clone https://github.com/free-audio/clap-validator
cd clap-validator
cargo build --release
# Binary at target/release/clap-validator (macOS/Linux)
# Binary at target\release\clap-validator.exe (Windows)
# Validate a CLAP plugin
clap-validator validate /path/to/plugin.clap
# Show only failed tests
clap-validator validate --only-failed /path/to/plugin.clap
# Validate multiple plugins
clap-validator validate /path/to/plugin1.clap /path/to/plugin2.clap
# List available tests
clap-validator list tests
# List tests with descriptions (JSON format)
clap-validator list tests --json
# List all installed CLAP plugins
clap-validator list plugins
# List installed plugins (JSON format)
clap-validator list plugins --json
# List presets for specific plugins
clap-validator list presets /path/to/plugin.clap
# List presets for all installed plugins
clap-validator list presets
# List presets (JSON format)
clap-validator list presets --json
# Show only failed and warning tests
clap-validator validate --only-failed /path/to/plugin.clap
# Run tests in current process (for debugging, allows debugger attachment)
clap-validator validate --in-process /path/to/plugin.clap
# Filter to specific test (case-insensitive regex)
clap-validator validate --test-filter <REGEX> /path/to/plugin.clap
# Invert filter — skip matching tests instead
clap-validator validate --test-filter <REGEX> --invert-filter /path/to/plugin.clap
# Only validate a specific plugin ID from a multi-plugin library
clap-validator validate --plugin-id <PLUGIN_ID> /path/to/plugin.clap
# Disable parallel test execution (sequential, keeps output in order)
clap-validator validate --no-parallel /path/to/plugin.clap
# Hide plugin's own output (useful for noisy plugins)
clap-validator validate --hide-output /path/to/plugin.clap
# Output results as JSON
clap-validator validate --json /path/to/plugin.clap
# JSON output showing only failures
clap-validator validate --json --only-failed /path/to/plugin.clap
The top-level -v/--verbosity flag controls the validator's own logging (not the plugin's output):
# Suppress all non-essential output
clap-validator -v quiet validate /path/to/plugin.clap
# Default level
clap-validator -v debug validate /path/to/plugin.clap
# Available levels: quiet, error, warn, info, debug, trace
# List available tests
clap-validator list tests
# Run specific test in-process (allows debugger attachment)
clap-validator validate --in-process --test-filter <test-name> /path/to/plugin.clap
# With lldb (macOS/Linux)
lldb -- clap-validator validate --in-process --test-filter <test> /path/to/plugin.clap
# With Visual Studio debugger (Windows) - attach to process or use:
devenv /debugexe clap-validator.exe validate --in-process --test-filter <test> C:\path\to\plugin.clap
| 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) |
CLAP_PARAM_IS_READONLY is not combined with CLAP_PARAM_IS_AUTOMATABLEclap_plugin_state::load() returns false for empty/invalid state