中文
Plugin development

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

  1. Create your first plugin.
  2. Background services and panels.
  3. Package, install and publish.

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.