# napari-plugin-engine documentation

`napari-plugin-engine` is a fork of pluggy modified by the napari team for use in napari.

While much of the original API described in the pluggy docs will still be valid here, there are definitely some breaking changes and different conventions here.

If you’re just getting started, have a look at the Usage Overview

For details on specific classes in napari-plugin-engine, have a look at the API Reference

See also: documentation for writing a napari plugin.

Contents

- Usage Overview
  - Create a plugin manager
  - Add some hook specifications
  - (Plugins) write hook implementations
  - Register plugins
    - Autodiscover plugins in the environment
  - Use (call) the plugin implementations
  - How the `plugin_name` is chosen
- API Reference
  - PluginManager
    - `PluginManager`
  - HookCaller
    - `HookCaller`
  - HookResult
    - `HookResult`
  - HookSpecification
    - `HookSpecification`
  - HookImplementation
    - `HookImplementation`
  - Decorators & Markers
    - HookSpecificationMarker
    - HookImplementationMarker
  - Exceptions
    - PluginError
    - PluginImportError
    - PluginRegistrationError
    - PluginImplementationError
    - PluginValidationError
    - PluginCallError
    - HookCallError
  - Extra Functions
    - `_multicall()`
    - `ensure_namespace()`
    - `temp_path_additions()`
    - `get_dist()`
  - Types
    - `HookExecFunc`