Files
plugin.json
plugin.py
assets/plugin.json must be at the ZIP root. Its entry must point to an existing file in the package. Do not wrap the whole plugin in another directory.
Runtime fields
Declare id, version, api_version, app_requires, execution, and entry. Process plugins also need rpc_api_version and route_prefix; list RPC permissions individually.
Security limits
- ZIP size at most 100 MiB, total uncompressed size at most 500 MiB, and at most 5000 entries.
- Absolute paths,
..paths, Windows drive paths, symlinks, and duplicate entries are rejected. - ZIP size and SHA-256 are checked byte for byte; the manifest is not inferred from the filename.
- Large models should be downloaded on demand instead of bundled into the ZIP.
Filename
<plugin-id>-<semver>.zip