navidrome plugin

List, configure, enable, and disable plugins

The plugin commands list, check, configure, enable, and disable plugins. They do the same things as the plugin screens in the web UI. See Plugins for how the plugin system works.

Usage

navidrome plugin <subcommand> [flags]

All commands also accept the global flags.

Commands that work with installed plugins need the plugin system enabled. Plugins.Enabled is on by default. You can still use plugin info and plugin validate on a .ndp package file when the plugin system is disabled.

Subcommands

SubcommandDescription
listList installed plugins
infoShow details for an installed plugin or a .ndp package
validateCheck the manifest of an installed plugin or a .ndp package
enableEnable a plugin
disableDisable a plugin
editChange a plugin’s config, permissions, or both
rescanFind plugins added to or removed from the plugins folder

plugin list

Lists installed plugins.

navidrome plugin list [-f table|csv|json]

Flags

FlagDefaultDescription
-f, --formattableOutput format. One of table, csv, json

Examples

# List installed plugins as a table
navidrome plugin list

# List installed plugins as JSON
navidrome plugin list -f json

plugin info

Shows details for an installed plugin or a .ndp package file. An argument that ends in .ndp is a package file. Anything else is the ID of an installed plugin.

navidrome plugin info <id|file.ndp> [-f text|json]

Flags

FlagDefaultDescription
-f, --formattextOutput format. One of text, json

Examples

# Show details for an installed plugin
navidrome plugin info my-plugin

# Check a downloaded package before you install it
navidrome plugin info ./my-plugin-1.2.0.ndp

plugin validate

Checks the manifest of an installed plugin or a .ndp package file. For an installed plugin, it also checks the stored configuration when one exists. It reads the argument the same way as info.

navidrome plugin validate <id|file.ndp>

Flags

This subcommand has no flags.

Examples

# Check an installed plugin
navidrome plugin validate my-plugin

# Check a package file
navidrome plugin validate ./my-plugin-1.2.0.ndp

plugin enable

Enables an installed plugin.

navidrome plugin enable <id>

Flags

This subcommand has no flags.

Examples

navidrome plugin enable my-plugin

plugin disable

Disables an installed plugin.

navidrome plugin disable <id>

Flags

This subcommand has no flags.

Examples

navidrome plugin disable my-plugin

plugin edit

Changes a plugin’s config, the users and libraries it can access, and whether it can write to libraries. Pass at least one flag. The flags come in pairs, and you can’t use both flags of a pair in one call.

navidrome plugin edit <id> [flags]

Flags

FlagDefaultDescription
--configPlugin config as a JSON string
--config-fileFile to read the plugin config JSON from. Use - to read from stdin
--usersUsernames the plugin can access, as alice,bob or ["alice","bob"]
--all-usersfalseGive the plugin access to all users
--librariesLibrary IDs the plugin can access, as 1,2 or [1,2]
--all-librariesfalseGive the plugin access to all libraries
--write-accessfalseLet the plugin write to libraries
--no-write-accessfalseDon’t let the plugin write to libraries

The pairs are --config and --config-file, --users and --all-users, --libraries and --all-libraries, and --write-access and --no-write-access.

Examples

# Set a plugin's config
navidrome plugin edit my-plugin --config '{"apiKey":"abc123"}'

# Read the config from stdin
cat config.json | navidrome plugin edit my-plugin --config-file -

# Give access to all users and let the plugin write to libraries
navidrome plugin edit my-plugin --all-users --write-access

# Limit the plugin to two libraries
navidrome plugin edit my-plugin --libraries 1,2

plugin rescan

Looks in the plugins folder again and picks up plugins you added or removed. The folder comes from Plugins.Folder, which defaults to the plugins folder inside DataFolder.

navidrome plugin rescan

Flags

This subcommand has no flags.

Examples

# Pick up a new .ndp file you copied into the plugins folder
navidrome plugin rescan