Plugins

Starting with OctoPrint 1.2.0, there’s now a plugin system in place which allows to individually extend OctoPrint’s functionality.

Right now plugins can be used to extend OctoPrint’s web interface, to execute specific tasks on server startup and shutdown, to provide custom (API) endpoints or whole user interfaces with special functionality, to react to system events or progress reports or to add support for additional slicers. More plugin types are planned for the future.

Note

Since a plugin might not function properly and cause issues that are hard to diagnose or outright disrupt server functionality, you might want to be able to start OctoPrint without any third party plugins enabled. This is also very important when reporting bugs in OctoPrint, to ensure that what you are observing is actually a bug in OctoPrint and not in any of your installed third party plugins.

To do that, OctoPrint has a built-in safe mode that disables all plugins not shipped as part of OctoPrint. You can read more on how to enable that here.

Finding Plugins

The official OctoPrint Plugin Repository can be found at plugins.octoprint.org.

Some plugins may also be found in the list provided in the OctoPrint wiki and on the OctoPrint organization Github page.

Installing Plugins

Plugins can be installed through the bundled Plugin Manager, which allows installing plugins available in the OctoPrint Plugin Repository, from a web address or from an uploaded file archive.

Please refer to the documentation of the plugin for additional installations instructions.

Manual Installation

If you don’t want or can’t use the Plugin Manager, plugins may also be installed manually either by copying and unpacking them into one of the configured plugin folders (regularly those are <octoprint source root>/plugins and <octoprint config folder>/plugins [1] or by installing them as regular python modules via pip [2].

For a plugin available on the Python Package Index (PyPi), the process is as simple as issuing a

pip install <plugin_name>

For plugins not available on PyPi, you’ll have to give pip an URL from which to install the package (e.g. the URL to a ZIP file of the current master branch of a Github repository hosting a plugin, or even a git+https URL), example:

pip install https://github.com/OctoPrint/OctoPrint-Growl/archive/master.zip

See the pip install documentation for what URL types are possible.

Developing Plugins

See Developing Plugins.

Footnotes

[1]For Linux that will be ~/.octoprint/plugins, for Windows it will be %APPDATA%/OctoPrint/plugins and for Mac ~/Library/Application Support/OctoPrint/plugins
[2]Make sure to use the exact same Python installation for installing the plugin that you also used for installing & running OctoPrint. For OctoPi this means using ~/oprint/bin/pip for installing plugins instead of just pip.