Nextflow module registry
New in version 26.04.0.
The Nextflow module registry is a central repository for sharing Nextflow modules. It provides module discovery, version tracking, and integrity verification.
The module registry shares its login, access tokens, and web interface with the Nextflow plugin registry.
Claiming a namespace
A namespace is an organizational prefix (e.g., the namespace nf-core owns modules like nf-core/fastqc and nf-core/samtools).
As a namespace member, you can publish new modules and release new versions under that prefix.
Each namespace can have multiple members who share publishing rights.
To claim a namespace:
Open the Nextflow module registry in a browser.
Log in to Seqera with your GitHub or Google account, or by providing an email address.
Note
If you are logging in for the first time, Seqera sends an authentication link to your email address to complete the login process.
Go to My Resources and select the My Namespaces tab.
Select Claim Namespace
Enter your Namespace name, Organization, Project URL, and a Description.
Select Submit Request.
The namespace shows as PENDING REVIEW until an administrator approves the request.
Admin approval is required only once.
Once approved, you can publish modules using the nextflow module publish command.
Creating an access token
An API access token is required to publish modules to the registry.
To create an API access token:
Open the Nextflow module registry in a browser.
Log in to Seqera with your GitHub or Google account, or by providing an email address.
Note
If you are logging in for the first time, Seqera sends an authentication link to your email address to complete the login process.
Go to My Resources and select the My access tokens tab.
Under Create New Access Token, enter a descriptive name for the Token name and select a token duration from the Expiry drop down.
Select Generate Token.
Copy the token and store it somewhere safe. You cannot view it again after this step.
Once you have your token, see Publishing modules for instructions on how to use it.
Viewing modules
View the modules you have published in the registry:
Open the Nextflow module registry in a browser.
Log in and go to My Resources.
Select the My Modules tab.
The page lists all modules published under your namespaces, along with their versions and status.
Publishing modules
Publishing requires a claimed namespace and an access token.
Provide your registry token in one of two ways:
Environment variable:
$ export NXF_REGISTRY_TOKEN=<token>
Nextflow configuration:
registry {
apiKey = '${MYORG_TOKEN}'
}
Use the module publish command to upload a module to the registry:
$ nextflow module publish myorg/my-module
The module directory must include the following files:
main.nf: The module script.meta.yml: The module spec with name, version, description, and license.README.md: Module documentation.
Provide a namespace/name reference (for an already-installed module) or a local directory path containing the module files.
Tip
Before publishing, verify your module is ready:
Run module validate to check that all required files and fields are present.
Run module spec to generate or update
meta.ymlfrom yourmain.nf.Add
-dry-runtomodule publishto validate the structure without uploading.
See Developing modules for a complete guide on creating modules.
See publish [options] [namespace/name | path] for the full command reference.
Registry configuration
By default, Nextflow uses the public registry at https://registry.nextflow.io.
Configure alternative or additional registries using the registry scope in your Nextflow configuration.
Use a private registry
Replace the default registry with your organization’s private registry:
registry {
url = 'https://registry.myorg.com'
apiKey = '${MYORG_TOKEN}'
}
Nextflow uses this registry for all module operations (search, install, and publish).
Use multiple registries
Specify multiple registries as a list. Nextflow queries them in order when searching for or installing a module:
registry {
url = [
'https://registry.myorg.com',
'https://private.registry.nextflow.io'
]
apiKey = '${MYORG_TOKEN}'
}
In this example, Nextflow searches the private registry first and falls back to the public registry.
Note
The apiKey authenticates with the primary (first) registry.
Tip
Override the target registry with the -registry flag:
$ export NXF_REGISTRY_TOKEN=<token>
$ nextflow module publish myorg/my-module -registry 'https://private.registry.myorg.com'