> ## Documentation Index
> Fetch the complete documentation index at: https://songbird.studiocollective.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# songbird-plugin-registry

# songbird-plugin-registry

Discovery, caching, and loading for stock plugins, external VST3/AU plugins, and custom ScriptFX.

## What it owns

* Plugin scan paths (`vst3_search_dirs`, `au_search_dirs`).
* Registry persistence (`PluginRegistry`, `PluginRegistryEntry`).
* Listing and loading entry points used by the sync engine and orchestration crates.

## Public API

* `PluginRegistry`, `PluginRegistryEntry`.
* `scan_plugin_dirs`, `list_all_installed_plugins`, `load_plugin`, `populate_registry`.

## How it fits

Sits between the host (`songbird-host-ffi`), the in-tree plugins (`songbird-plugins`), and the state store (`songbird-state`). Used by `songbird-app`, `songbird-headless`, `songbird-orchestrator`, `songbird-session`.

⚠️ Plugin loading must happen on the Tauri dispatch thread. See AGENTS.md "Anti-patterns".

## Tests

`cargo test -p songbird-plugin-registry`. Behavioral contracts around missing plugins are in `rust/crates/integration/songbird-host-ffi/SPEC.md`.
