Skip to content

Using plugins

A plugin is just a standard Python package installed alongside minisky.

If you are a developer writing a new plugin, see the developer guide on writing plugins, which will explain the internals, including entry-point groups.


Plugins are not auto-loaded by default on startup. To see installed plugins and explicitly load them:

uv run python
>>> from minisky import MiniSky
>>> async def main():
...     async with MiniSky() as runtime:
...         # show all plugins
...         print(runtime.plugins.listing().unwrap())
...         # manually load one plugin
...         print((await runtime.plugins.load("MULTICOPTER")).unwrap())
>>> import asyncio
>>> asyncio.run(main())
Loaded plugins: (none)
Available plugins: CUSTOMAUTOPILOT, EXAMPLE, MULTICOPTER, TANGRAM
Successfully loaded plugin MULTICOPTER

Use the PLUGINS stack command:

uv run minisky console
> PLUGINS
Loaded plugins: (none)
Available plugins: CUSTOMAUTOPILOT, EXAMPLE, MULTICOPTER, TANGRAM
> PLUGINS LOAD MULTICOPTER
Successfully loaded plugin MULTICOPTER

To automatically load plugins on startup, add the entry in your configuration file:

[plugins.multicopter]

Add any plugin-specific settings into the same table.

Explicitly load all configured plugins on startup.

async with MiniSky() as runtime:
    await runtime.plugins.load_configured()
    ...

No action is needed. minisky run and minisky server should load configured plugins during setup.