TasksWrite A Plugin

Write A Plugin

The repository ships a working Go provider example under examples/plugins/provider-go.

Start there when you want a minimal executable provider that speaks the public plugin protocol.

Build The Example Provider

Run this from examples/plugins/provider-go:

go build -o ./provider-go .

Add A Manifest

Add a plugin.yaml or plugin.json to the plugin root.

For a releasable provider package, start with:

source: github.com/acme/plugins/example
version: 0.1.0
display_name: Example Provider
description: Minimal example provider
kinds:
  - provider
provider:
  base_url: https://example.invalid
  operations:
    - name: greet
      method: GET
      path: /greet

See Plugin Manifests for the full manifest model.

Package It

For a local package directory:

gestaltd plugin package --input ./my-plugin --output ./dist/my-plugin.tar.gz

For a release build:

gestaltd plugin release --version 0.1.0

Use It From config.yaml

During local development, point at the binary directly:

integrations:
  example:
    plugin:
      command: ./provider-go
      config:
        greeting: Hello from example plugin

For prepared deployments, point at the packaged archive:

integrations:
  example:
    plugin:
      package: ./dist/my-plugin.tar.gz
      config:
        greeting: Hello from example plugin

Then:

gestaltd init --config ./config.yaml
gestaltd serve --locked --config ./config.yaml

Ship A Web UI Instead

If the package should replace the embedded frontend, add the webui kind and webui.asset_root to the manifest. The package can then be used from ui.plugin.