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.