Overview

What are plugins

Nextflow plugins are extensions that enhance the functionality of Nextflow. They allow users to add new capabilities and integrate with external services without bloating their pipeline code or modifying Nextflow itself.

There are two types of Nextflow plugins: core plugins and third-party plugins. The main features of each plugin type are described below.

Core plugins

Core plugins do not require configuration. The latest versions of core plugins are automatically installed when a Nextflow pipeline requests them. Core plugins include:

  • nf-amazon: Support for Amazon Web Services.

  • nf-azure: Support for Microsoft Azure.

  • nf-cloudcache: Support for the cloud cache.

  • nf-console: Implementation of the Nextflow REPL console.

  • nf-google: Support for Google Cloud.

  • nf-tower: Support for Seqera Platform.

  • nf-wave: Support for Wave containers service.

Specific versions of core plugins can be declared in Nextflow configuration files or by using the -plugins option. See Using plugins for more information.

Note

The automatic retrieval of core plugins can be disabled by setting NXF_PLUGINS_DEFAULT=false. See Environment variables for more information.

Third-party plugins

Third-party plugins must be configured via Nextflow configuration files or at runtime. To configure a plugin via configuration files, use the plugins block. For example:

plugins {
    id 'nf-hello@0.5.0'
}

To configure plugins at runtime, use the -plugins option. For example:

nextflow run main.nf -plugins nf-hello@0.5.0

See Using plugins for more information.

Nextflow plugin registry

New in version 25.04.0.

Note

The Nextflow plugin registry is currently available as a private beta. Contact info@nextflow.io for more information.

The Nextflow plugin registry is a central repository for publishing and discovering Nextflow plugins. Nextflow is able to use the plugin registry to automatically find and download plugins at runtime.

Versioning

Nextflow plugins are free to use any versioning convention. Many plugins, including all core plugins, use Semantic Versioning, which helps developers communicate the kind of changes in a release.

Semantic versions have the form MAJOR.MINOR.PATCH (e.g., 0.5.0):

  • MAJOR: Increment for backward-incompatible changes.

  • MINOR: Increment for backward-compatible feature additions.

  • PATCH: Increment for backward-compatible bug fixes.

Optional pre-release and build metadata can be added (e.g., 1.2.1-alpha+001) as extensions to the base version format.