Skip to main content

Plugin Development Overview

Users are able to develop their own Plugins and either host them within their own repo or submit them to be included into the official repository.

More in-depth look at what a Plugin is

Plugins are stand-alone Python modules that are executed at defined stages during the library optimisation process.

At these specific stages of the library optimisation process, Unmanic will call each enabled Plugin in turn and then, upon completion of the Plugin execution, Unmanic will continue with subsequent process for that stage.

During a call to a Plugin, said plugin will be given a set of data pertaining to the state of a task or the information regarding the process about to be carried out. A Plugin may use this data to:

  • Manipulate the subsequent process.
  • Use that data to carry out functions outside of the scope of the Unmanic application.

A Plugin may be written such that it is executed at multiple stages of the library optimisation process. However, it is best practice ensuring that a Plugin is designed to carry out only a single task.

Types of Plugins

The current list of supported types:

TypeStageDocumentation
File testLibrary ManagementLINK
Processing fileWorkerLINK
File movementsPost-processorLINK
Marking task success/failurePost-processorLINK

Plugins repositories

Unmanic hosts an official repository of plugins for Unmanic.

This is hosted on GitHub under the "official" branch.

Anyone is able to provide Pull Request to update existing plugins or add new plugins to this repository. Any additions will be vetted and tested to ensure they uphold the standard expected of official plugins.

If you wish to create your own repository to host or develop your own plugins, follow the guide here: