Anatomy of a Plugin
A plugin is a small repo with a predictable layout. Here's what each part does.
At a glance
manifest.json+ the engine entry class.settings_schema.jsonfor the settings UI.requirements.txtfor dependencies.tests/travels with the plugin.
Layout
tts_<engine_id>/
manifest.json # discovery + capabilities + distribution
engine.py # the StudioTTSEngine implementation
settings_schema.json # JSON Schema -> settings form
requirements.txt # runtime dependencies
README.md icon.png # shown in the engine browser
tests/ # plugin-local tests + fixtures
Why self-contained
Everything an engine needs lives in its folder so it can be published as its own GitHub repo and installed with a clone. See the API for driving Studio, and Using the Template to start.
Note: Heavy model weights are not committed to the repo. They download on first use, keeping the bundle small.