Plugin Descriptor
Every plugin needs a plugin descriptor — a set of metadata that tells both PF4J and Plugwerk what the plugin is, which version it has, and what it requires.
The descriptor is stored in the standard Java MANIFEST.MF file inside the plugin JAR. When you upload a plugin to the Plugwerk Server, it reads the descriptor to create the catalog entry, validate the version, check dependencies, and display information like the plugin name, description, and tags in the Web UI.
At minimum, a descriptor must contain Plugin-Id and Plugin-Version. All other attributes are optional but recommended — the more metadata you provide, the better the experience for users browsing the catalog.
Attributes
Section titled “Attributes”| Attribute | Purpose | Required | PF4J Standard |
| --------------------- | ------------------------ | -------- | ------------------ |
| Plugin-Id | Unique plugin identifier | Yes | Yes |
| Plugin-Version | SemVer version | Yes | Yes |
| Plugin-Class | Plugin class name | No | Yes |
| Plugin-Provider | Provider/organisation | No | Yes |
| Plugin-Description | Short description | No | Yes |
| Plugin-Dependencies | Comma-separated deps | No | Yes |
| Plugin-Requires | SemVer range for host | No | Yes |
| Plugin-License | SPDX license | No | Yes |
| Plugin-Name | Display name | No | Plugwerk extension |
| Plugin-Tags | Comma-separated tags | No | Plugwerk extension |
| Plugin-Icon | Icon URL/path | No | Plugwerk extension |
| Plugin-Screenshots | Comma-separated URLs | No | Plugwerk extension |
| Plugin-Homepage | Project URL | No | Plugwerk extension |
| Plugin-Repository | Source code URL | No | Plugwerk extension |
Fallback
Section titled “Fallback”If MANIFEST.MF is absent, the server falls back to plugin.properties.