Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.65 KB

File metadata and controls

43 lines (33 loc) · 1.65 KB

RetroStudio Plugin API 1.0

Back to project README

RetroStudio discovers plugins from:

  • Plugins beside 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.