Summary
The plugin manifest currently only has a name field, which doubles as both the machine identifier and the user-facing name. However, name is subject to strict constraints (§5.5): lowercase a-z0-9-. only, 1–64 chars, no leading/trailing hyphens or consecutive separators. This makes it unsuitable as a human-readable label in host UIs.
Proposal
Add an optional displayName string field to plugin.json that hosts MAY surface in user interfaces instead of `name.
- The
displayName is optional; if present it MUST be a string.
- Hosts MAY use
displayName in user interfaces instead of name.
- If absent, hosts MUST fall back to
name as the display name.
This cleanly separates the constrained machine identifier (name) from an unconstrained, human-friendly label (displayName).
Example
{
"$schema": "https://open-plugins.com/schemas/1.0.0/plugin.schema.json",
"name": "plugin-name",
"displayName": "Plugin Name",
"version": "1.2.0"
}
Proposed changes
- Add
displayName to the JSON schema (schemas/1.0.0/plugin.schema.json).
- Document
displayName in the metadata field table (§5.4) and add a dedicated subsection (§5.7).
- Clarify §5.3 so
name is described as the plugin identifier (see §5.5 constraints) rather than "human-readable", now that displayName fills the human-readable role.
Summary
The plugin manifest currently only has a
namefield, which doubles as both the machine identifier and the user-facing name. However,nameis subject to strict constraints (§5.5): lowercasea-z0-9-.only, 1–64 chars, no leading/trailing hyphens or consecutive separators. This makes it unsuitable as a human-readable label in host UIs.Proposal
Add an optional
displayNamestring field toplugin.jsonthat hosts MAY surface in user interfaces instead of `name.displayNameis optional; if present it MUST be a string.displayNamein user interfaces instead ofname.nameas the display name.This cleanly separates the constrained machine identifier (
name) from an unconstrained, human-friendly label (displayName).Example
{ "$schema": "https://open-plugins.com/schemas/1.0.0/plugin.schema.json", "name": "plugin-name", "displayName": "Plugin Name", "version": "1.2.0" }Proposed changes
displayNameto the JSON schema (schemas/1.0.0/plugin.schema.json).displayNamein the metadata field table (§5.4) and add a dedicated subsection (§5.7).nameis described as the plugin identifier (see §5.5 constraints) rather than "human-readable", now thatdisplayNamefills the human-readable role.