skillfed

npe2

napari plugin engine v2

npe2 v0.8.3 198.7K downloads/30d#9,720 on PyPI21
Permissive license BSD-3-Clause Active released

What it is and what it does

npe2 is the plugin engine that powers napari's extensibility ecosystem. It provides tooling to define, validate, compile, and manage plugins that extend napari's core functionality for scientific imaging and domain-specific tasks. The package includes a command-line tool and programmatic API for plugin developers to build and distribute plugins, and for users to discover and manage installed plugins.

The engine handles plugin manifest validation, compilation of decorator-based plugin contributions into manifests, conversion of older napari plugins to the new format, and runtime plugin discovery. It depends on pydantic for schema validation, typer for CLI scaffolding, and rich for terminal output formatting.

Use it for:

  • Build a napari plugin by using npe2 to compile @npe2.implements decorators into a valid plugin manifest
  • Validate a plugin package before distribution to ensure its manifest conforms to npe2 specifications
  • Convert an existing napari v1 plugin to the npe2 format using the convert command
  • List and inspect all currently installed napari plugins and their manifests via CLI
  • Fetch and parse plugin manifests from remote packages to understand plugin capabilities

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

npe2 is a plugin engine and management system for napari that enables discovery, validation, compilation, and installation of napari plugins through both CLI and programmatic interfaces.

Yes. npe2 is actively maintained, has no known vulnerabilities, and is either a direct dependency for napari plugin development or automatically installed with napari itself. Install it if you are building, validating, or managing napari plugins; it is not needed for end users simply running napari with plugins already installed.

Install

npe2 on PyPI

pip

pip install npe2

uv

uv add npe2

poetry

poetry add npe2

Installing npe2

Before you install

Low friction install with a pure-Python wheel. Actively maintained with a recent release (49 days ago) and current commit activity. Depends on well-established libraries like pydantic, typer, and rich.

License in practice

BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; suitable for most projects.

Quickstart

pip install npe2
npe2 --help
npe2 list
npe2 validate your-plugin-package

Requires Python 3.10 or later.

Verify before relying

  • Whether npe2 is required separately or automatically installed as a napari dependency in typical usage
  • Performance characteristics when managing large numbers of plugins
  • Backwards compatibility guarantees between npe2 versions for existing plugin manifests

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 10 — build, platformdirs, psygnal, pydantic, pydantic-extra-types, pyyaml, rich, tomli-w, tomli, typer
Maintenance actively maintained — 49 days since the last release
Last repo commit
First released
Downloads 198,704/month — #9,720 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: npe2-0.8.3-py3-none-any.whl

Development Status :: 3 - AlphaLicense :: OSI Approved :: BSD LicenseNatural Language :: EnglishProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Typing :: Typed

Tags

napari plugin managementplugin engine for napariplugin manifest validationnapari plugin discoveryplugin compilation toolplugin ecosystem management
plugin-systemscientific-imagingnapari-ecosystem

More Application Frameworks packages