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.
npx claudepluginhub iplug3/audio-plugin-dev-skills --plugin audio-plugin-validatorsThis skill uses the workspace's default tool permissions.
Cross-platform validator for VST3 and AudioUnit plugins.
Validates VST3 plugins (.vst3 bundles) using Steinberg's official validator tool on macOS, Windows, Linux. Guides usage, options, test suites, building from VST3 SDK, and common issues.
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 structure, JSON schemas, frontmatter format, security compliance, and marketplace catalog consistency. Triggers on 'validate plugin', 'check plugin', or 'verify' to run CI checks before commit.
Share bugs, ideas, or general feedback.
Cross-platform validator for VST3 and AudioUnit plugins.
pluginval accepts a direct path. These are the standard install locations by format.
AudioUnit (.component) — macOS only:
| Location | Scope |
|---|---|
~/Library/Audio/Plug-Ins/Components/ | Current user only |
/Library/Audio/Plug-Ins/Components/ | All users |
VST3 (.vst3):
| Platform | User Location | System Location |
|---|---|---|
| macOS | ~/Library/Audio/Plug-Ins/VST3/ | /Library/Audio/Plug-Ins/VST3/ |
| Windows | %LOCALAPPDATA%\Programs\Common\VST3\ | C:\Program Files\Common Files\VST3\ |
| Linux | ~/.vst3/ | /usr/lib/vst3/ or /usr/local/lib/vst3/ |
.vst3 or .component) in your build output directory or one of the standard locations above/Applications/pluginval.app/Contents/MacOS/pluginval --strictness-level 5 /path/to/pluginpluginval.exe --strictness-level 5 "C:\path\to\plugin.vst3"pluginval --strictness-level 5 /path/to/plugin.vst3validate-vst3 instead--skip-gui-tests for headless environmentsDownload from GitHub Releases.
| Platform | Setup |
|---|---|
| macOS | Extract and move pluginval.app to /Applications/ |
| Windows | Extract pluginval.exe and add to PATH or use full path |
| Linux | Extract pluginval binary, chmod +x, place in /usr/local/bin/ |
Verify installation:
# macOS
/Applications/pluginval.app/Contents/MacOS/pluginval --help
# Windows
pluginval.exe --help
# Linux
pluginval --help
# macOS
/Applications/pluginval.app/Contents/MacOS/pluginval --strictness-level 5 /path/to/plugin
# Windows
pluginval.exe --strictness-level 5 "C:\path\to\plugin.vst3"
# Linux
pluginval --strictness-level 5 /path/to/plugin.vst3
| Level | Description |
|---|---|
| 1-4 | Basic tests |
| 5 | Recommended minimum for host compatibility |
| 6-9 | Increasingly thorough tests |
| 10 | Most comprehensive (may take a long time) |
At levels 5+, pluginval automatically runs auval for AudioUnits and VST3 validator for VST3.
# Set strictness level (1-10)
--strictness-level 5
# Skip GUI tests (useful for headless CI)
--skip-gui-tests
# Set timeout in milliseconds (use "-1" to disable)
--timeout-ms 30000
# Output logs to directory
--output-dir /path/to/logs
# Set log filename (within output-dir or current directory)
--output-filename results.log
# Repeat tests multiple times
--repeat 3
# Randomize test order
--randomise
# Use specific random seed (for reproducibility)
--seed 0x374115a
# Verbose output
--verbose
# Custom sample rates (comma-separated, default: 44100,48000,96000)
--sample-rates 44100,48000,96000,192000
# Custom block sizes (comma-separated, default: 64,128,256,512,1024)
--block-sizes 64,128,256,512,1024
# Provide a data file for test configuration
--data-file /path/to/config.txt
# Disable specific tests (file with one test name per line)
--disabled-tests /path/to/disabled.txt
# Specify path to VST3 validator (run as part of test process)
--vst3validator /path/to/validator
All command line options can be set as environment variables by removing the -- prefix, converting dashes to underscores, and uppercasing. Command line options override environment variables.
# Examples
export STRICTNESS_LEVEL=5
export SKIP_GUI_TESTS=1
export TIMEOUT_MS=30000
export SAMPLE_RATES="44100,48000,96000"
export BLOCK_SIZES="64,128,256,512,1024"
pluginval --strictness-level 5 --skip-gui-tests --timeout-ms 60000 /path/to/plugin.vst3
if [ $? -ne 0 ]; then
echo "Plugin validation failed!"
exit 1
fi
& pluginval.exe --strictness-level 5 --skip-gui-tests --timeout-ms 60000 "C:\path\to\plugin.vst3"
if ($LASTEXITCODE -ne 0) {
Write-Error "Plugin validation failed!"
exit 1
}
pluginval uses randomness for some tests. To reproduce a failure:
Random seed: 0x374115a)/Applications/pluginval.app/Contents/MacOS/pluginval --seed 0x374115a -s 5 /path/to/plugin
Use clap-validator for CLAP plugins.
Plugins with multiple audio buses (multi-output instruments, sidechain effects) may crash pluginval during VST3 validation.
Workaround:
auval for AU format