Recur uses an exec-based plugin architecture. Each plugin is a standalone binary with a manifest.yaml that declares its triggers, trigger context variables, actions, and options. The manifest is used to generate stubbed configurations, validate configuration files, and populate context variables when triggers fire.

The first-party plugins listed below are maintained in their own repositories under the directedbits org — they are no longer bundled inside the core recur repository. Each repo publishes release archives you can install directly.

First-party Plugins

PluginTriggersActionsDescriptionRepository
fileeventsFileCreated, FileModified, FileDeleted, FileMoved, FileAttributeChangedFile system event monitoringrecur-fileevents
timercron, intervalCron schedule and interval triggersrecur-timer
webhookWebhookReceivedHTTP/HTTPS webhook receiver with HMAC verificationrecur-webhook
mqttMessageReceivedpublishMQTT subscribe and publishrecur-mqtt
calendarEventUpcoming, EventStarted, EventEndediCal/ICS calendar pollingrecur-calendar
devicemonitorDeviceConnected, DeviceDisconnectedUSB/device hotplug (Linux + Windows only)recur-devicemonitor
dockerContainerStarted, ContainerStopped, HealthChangedContainerStart, ContainerStop, ContainerRestartDocker container lifecyclerecur-docker

Installing a plugin

Each plugin repo publishes release assets named <plugin>-<tag>-<os>-<arch>.tar.gz. Install one directly from its release URL:

  recur install https://github.com/directedbits/recur-timer/releases/download/v0.1.0/timer-v0.1.0-linux-amd64.tar.gz
  

Remote installs require the host to be in the allowed_hosts config list first:

  recur config set allowed_hosts github.com
  

Plugins are copied or linked to ~/.config/recur/plugins/. Any plugins found in that folder on daemon start are loaded and available to registered config files.