Plugin development
Public SDK, independent projects, nodes and extension panels
Yotta plugins are delivered as .ynp packages. A plugin can contribute workflow nodes, background services and extension panels. Develop in an independent project, pin the SDK, then compile, package and install locally or through the marketplace.
Start here
Public interfaces
The SDK is distributed in the Go module github.com/yottaapp/yotta.
| Package suffix | Purpose |
|---|---|
sdk/plugin/go |
Guest protocol, value envelopes, results and host calls |
sdk/plugin/authoring |
Node contracts, built-in types, configuration and execution |
sdk/plugin/packaging |
Manifests, digests, signatures and complete .ynp archives |
sdk/plugin/panel |
Panel definitions, snapshots, events, results and validation |
The Go project template targets Process plugins on Windows amd64 and arm64. Background services are packaged as companions; the host manages startup, health checks and shutdown. Panels use a declarative component tree with snapshot and event interfaces. Plugin-owned translation keys provide localized node, panel and error text.
Plugins do not import host internal/ packages or access its Vue components, DOM or internal database. Pin a released SDK or an explicitly exported local module proxy; do not point replace at a neighboring checkout.
Wasm runtime support and low-level examples exist without WASI, but the Go high-level packager targets Process implementations. TypeScript currently supplies protocol types, rather than a complete authoring runtime and toolchain.
Keep identities distinct
- The SDK version identifies the development API and contracts.
- Package ID and package version identify installation and updates.
- Node Type ID, node version and semantic digest identify the semantics referenced by workflows.
A package update does not automatically update a node contract. Renaming display text should preserve stable package, node and component IDs. Marketplace system compatibility is derived by the platform; authors describe business categories, tags and dimensions.
Source references in the Yotta repository are sdk/plugin/authoring/README.md, sdk/plugin/panel/README.md, sdk/plugin/templates/ and scripts/create-plugin.py. cmd/plugin-sdk maintains SDK contracts; it does not scaffold plugin projects.