Creating a plugin
This page covers the end-to-end workflow. For individual topics, see How plugins work (naming and discovery), Metadata protocol (the plugin metadata command), and Registry submission (publishing to the official registry).
What you will need
- A plugin binary compiled for supported platforms (
linux-amd64,linux-arm64) - A working
plugin metadatacommand - Semantic versioned releases with SHA-256 checksums
- A public source repository
Reference implementation
The full reference implementation, SDK, and publishing guide live in the plugin-example/ directory:
cd plugin-example
make build
./bin/abstrax-example plugin metadata
./bin/abstrax-example hello --name Mike
See plugin-example/CREATING_A_PLUGIN.md for a step-by-step guide to forking the example into a new plugin.
A minimal embedded example also exists at cli/cmd/abstrax-example/ in the main Abstrax repository.
Local testing without the registry
Build the embedded example from the cli/ directory:
go build -o abstrax-example ./cmd/abstrax-example
./abstrax-example plugin metadata
Place the binary on your PATH or in a plugin directory to test delegation through the main abstrax binary.
Publishing to the registry
To submit a plugin to the official registry, follow Registry submission. Release manifest format and checksum requirements are documented in Registry API.