Publishing
Glyph reads a marketplace index (index.json) maintained in glyph-md/plugins. Listing your plugin there lets users one-click Install from the command palette and get Update prompts when you ship a new version.
Steps
-
Build and package in your own repo: run
npm run build, zipmanifest.jsonplus every file the manifest'sfileslist declares (entry + assets), and attach the zip to a tagged release (e.g.v1.0.0) so it has a stable, immutable URL. Compute its digest withshasum -a 256 plugin.zip(orGet-FileHashon Windows). -
Open a PR to glyph-md/plugins adding a folder
plugins/<your-id>/with two files:plugin.json(the registration) andREADME.md(your catalog page, shown in the in-app details view):{ "$schema": "../../plugin.schema.json", "id": "com.yourname.example", "name": "Example", "description": "What it does, in one line.", "version": "1.0.0", "apiVersion": "0.16.0", "category": "tools", "keywords": ["example"], "packageUrl": "https://github.com/yourname/glyph-example/releases/download/v1.0.0/plugin.zip", "sha256": "<hex digest of plugin.zip>" } -
CI validates your
plugin.jsonagainstplugin.schema.json(the folder name must equal theid, and the README is required). Do not touchindex.jsonordocs/plugin-catalog.md: they are generated from the registrations and regenerated automatically on merge, so submission PRs never conflict with each other.
See the marketplace CONTRIBUTING guide for the field rules and review criteria.
Updates
Cut a new release, then open a PR that bumps version, packageUrl (to the new tag), and sha256 in your plugins/<id>/plugin.json. Glyph compares the index version against what each user has installed and offers an in-app update when they differ. Always pin packageUrl to a tag, never a moving branch: the digest is verified before anything installs, and only the manifest-declared files are copied out of the archive.
Versioning
version: your plugin's semver; must increase whenpackageUrlchanges.apiVersion: the Glyph plugin-API version you built against (currently0.16.0). Until the API reaches 1.0 it must match the host exactly; Glyph refuses to load anything else, so retest and republish when the API version bumps.