Getting Started
Available now: the SDK is published on npm and maintained in its own public repository.
Install the published package:
npm install @gordo-labs/tape-plugins-sdkFor source development, install directly from GitHub:
npm install github:gordo-labs/tape-plugins-sdkSource and release history: gordo-labs/tape-plugins-sdk (opens in a new tab).
- Create a repository for the plugin. Keep its source, changelog and release version independent from the Music Hub Desktop repository.
- Start from the public community-plugin template when it is published, or
reproduce its
plugin-bundle.jsonlayout: a manifest, an artifact, and a declarative descriptor with SHA-256 digests. - Use the installed
@gordo-labs/tape-plugins-sdkpackage to define and validate a JSON-serializable manifest with a stable slug ID, semver version and Plugin API compatibility value. - Request the smallest permissions and declare only the contributions needed.
- Rebuild the artifact and descriptor, recompute both SHA-256 digests, then
optionally create an Ed25519
scope: "bundle"signature, then install the directory from Desktop Add-ons on the same machine. - Test permission denial, revocation, disabled lifecycle and all UI states before proposing a release.
Minimal bundle layout
my-plugin/
plugin-bundle.json
descriptor.json
dist/
plugin.jsplugin-bundle.json contains schemaVersion: 1, plugin, artifact, and a
descriptor. Both files declare a relative path and a 64-character SHA-256
digest. After installation, review the requested permissions and enable the
add-on explicitly. A source or descriptor digest change invalidates prior
grants. A signature is optional during this preview, but a distributable
publisher-signed bundle should use Ed25519 with scope: "bundle" so it covers
the manifest and descriptor as well as the artifact.
Every public plugin must remain useful when network access is denied, a host service is unavailable, or a user revokes a permission. Do not rely on undocumented app internals. See Manifest, Testing & Debugging and Packaging & Distribution.