Skip to content

Build your first plugin

Silo is in active development before 1.0. These guides are updated frequently.

A plugin adds a capability to Silo, such as metadata lookup or a scheduled task. You write it with the Go plugin SDK. To install an existing plugin, see Install plugins instead.

You need Git and the Go version named in the SDK’s go.mod. In a new directory, run:

Terminal window
git clone https://github.com/Silo-Server/silo-plugin-sdk.git
cd silo-plugin-sdk
go build -o hello-scheduled-task ./examples/hello-scheduled-task
./hello-scheduled-task manifest

The last command prints the plugin’s manifest, including its ID, version, and scheduled_task.v1 capability.

Plugins run code on the server, and Silo runs the binary while inspecting an upload. Test on a disposable server with test data, and read the source of any plugin you didn’t write before uploading it.

  1. Build for the operating system and processor of the Silo server. A binary built for your Mac won’t run in a Linux container.
  2. Follow Manual Install in Install plugins and upload the binary.
  3. Open Admin > Scheduled Tasks, find Hello Task, and select Run Now. The example doesn’t change any media; a completed run shows that Silo can call the plugin.

Start from the example’s source and manifest. Give your plugin its own ID and implement only the capabilities it needs. Put short setup instructions, support and source links, and required configuration in the manifest’s presentation block.

Before publishing, pin a tagged SDK version in your plugin’s go.mod, build the target binaries, and follow the SDK’s compatibility guidance. Publishing a release doesn’t add a plugin to a catalog. The Silo catalog lists first-party plugins. Community plugins reach the approved community catalog after a maintainer review; its approval policy lists the requirements.

See the scheduled-task example for its current source and the SDK README for other capability examples.