RetroStudio discovers plugins from:
Pluginsbeside the repository/application- the platform application-config directory under
Plugins
Each plugin lives in its own folder and contains plugin.json. Discovery
parses only the manifest; it never imports plugin Python code.
{
"id": "example.generators",
"name": "Example Generator Pack",
"version": "1.0.0",
"api_version": "1.0",
"execution": "manifest-only",
"library_folders": ["Library"]
}Required fields are id, name, version, api_version, and execution.
RetroStudio accepts API major version 1. execution must be
manifest-only or subprocess. Library paths are resolved inside the plugin
folder; paths that escape it are ignored.
Manifest-only generator packs need no executable entry point. Put generator
JSON files in the declared library folder using the same schema as the
built-in Library entries. Invalid plugins and invalid generators are
isolated and reported without preventing the rest of the library from loading.
The Plugin Manager lists discovered versions, API compatibility, and isolation mode. Disabled plugin IDs are persisted in application settings.
Executable plugin hosting is intentionally limited to the API boundary in
2.0. A future host may launch subprocess entry points through a versioned
JSON protocol. RetroStudio does not load third-party code into its UI process.
Palette providers use the same boundary. Local median-cut generation is the built-in provider. Any remote provider must be installed separately and must request explicit user consent for each network request.