Skip to main content

Developing Plugins

There are many ways to extend verdaccio, the kind of plugins supported are:

We recommend developing plugins using our flow type definitions.

Other plugins

Basically we have to return an object with a single method called authenticate that will recieve 3 arguments (user, password, callback).

Theme Plugin

The plugin must return a function that returns a string. The string should be the absolute location of the root of your user interface.


const path = require('path');

module.exports = (...arguments) => {
return path.join(__dirname, 'static');

It is imporant that the name of the plugin must start with verdaccio-theme- prefix.

Theme Example

Filter Plugin

Since 4.1.0

Either something bad happened or auth was unsuccessful.

More info in the PR.

callback(null, false)


groups is an array of strings where the user is part of.

Do not remove properties from the metadata, try to do not mutate rather return a new object.

interface IPluginStorageFilter<T> extends IPlugin<T> {
filter_metadata(packageInfo: Package): Promise<Package>;