Plugins
Getting Started

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-sdk

For source development, install directly from GitHub:

npm install github:gordo-labs/tape-plugins-sdk

Source and release history: gordo-labs/tape-plugins-sdk (opens in a new tab).

  1. Create a repository for the plugin. Keep its source, changelog and release version independent from the Music Hub Desktop repository.
  2. Start from the public community-plugin template when it is published, or reproduce its plugin-bundle.json layout: a manifest, an artifact, and a declarative descriptor with SHA-256 digests.
  3. Use the installed @gordo-labs/tape-plugins-sdk package to define and validate a JSON-serializable manifest with a stable slug ID, semver version and Plugin API compatibility value.
  4. Request the smallest permissions and declare only the contributions needed.
  5. 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.
  6. 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.js

plugin-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.