Plugin Development Guide¶
Plover plugins are generally implemented as separate Python packages installed into the Python environment that Plover uses. In most cases, this environment will be within Plover’s installation directory; if you installed from source, it will be the system Python distribution.
Plover uses a dynamic plugin discovery system via
configuration to allow other packages to define themselves as
certain types of plugins for Plover. After collecting the registry of plugins
in the active Python environment on initialization, Plover has hooks in its
code to call into each of the different types in the registry at various parts
of its life cycle.
Most types of plugins will interact with Plover’s steno engine using these
hooks. See the documentation on
for more information on hooks and how to integrate them into your plugin code.
Much of Plover’s built-in functionality is implemented within this plugin architecture; for example, JSON and RTF/CRE dictionaries are both implemented with dictionary plugins, and the English Stenotype layout is a system plugin.