plugins¶
Manage Openbase plugins installed into the local CLI runtime.
In the apps: plugin-provided console pages appear in the desktop app and console sidebar once installed; plugin-provided skills show up on the Skills page.
Usage¶
Subcommands¶
| Subcommand | Description |
|---|---|
add SOURCE [--ref REF] |
Install a plugin from local repo path or GitHub URL |
list |
List installed plugins |
show PLUGIN_ID |
Show a plugin's declared capabilities |
remove PLUGIN_ID |
Uninstall a plugin |
update [PLUGIN_ID] [--ref REF] |
Update one plugin or all plugins |
bootstrappers |
List all discovered bootstrapper names |
Source Types¶
Local repo path¶
- Installed editable (
-e) into the CLI Python environment - Useful for active plugin development
GitHub URL¶
openbase-coder plugins add https://github.com/org/openbase-plugin
openbase-coder plugins add https://github.com/org/openbase-plugin --ref main
- Cloned under
~/.openbase/plugins/sources/ - Installed pinned to resolved commit SHA
Where Plugin Packages Install¶
In development installs, plugin Python packages install into the workspace CLI venv, which persists on its own.
In standalone installs, the versioned runtime package is replaced wholesale on
upgrade, so plugin packages install into the stable plugin site directory
~/.openbase/plugins/site instead. Every Openbase Coder process adds that
directory to sys.path at startup, so desktop package upgrades do not lose
installed plugins.
What Happens on Add/Update/Remove¶
Mutating plugin commands will:
- Update plugin registry and requirements under
~/.openbase/plugins/ - Sync plugin-declared Claude skills into
${CLAUDE_CONFIG_DIR:-~/.claude}/skills - Copy each console page's
asset_dirinto~/.openbase/plugins/console-assets/and regenerate the runtime console page registry - Restart managed launchd services
Plugin Declaration Model¶
Plugins are Python packages discovered via entry points in:
The entry point returns a plugin spec dict containing declarations such as:
bootstrappersstacksconsole_pagesskillsdjango_url_modules
Console pages¶
Plugin console pages are iframe-only: a page declares a directory of prebuilt static assets, and the console renders its entrypoint in an iframe. This works identically in development and standalone installs, requires no console rebuild, and needs no Node/npm at install time.
{
"console_pages": [
{
"key": "dashboard", # required, unique per plugin
"title": "Dashboard", # optional, defaults to key
"route": "/dashboard/plugins/<plugin>/<key>", # optional default
"sidebar": True, # optional, defaults to True
"asset_dir": "web", # required: prebuilt static assets
"entrypoint": "index.html", # optional, defaults to index.html
}
]
}
The CLI copies asset_dir into ~/.openbase/plugins/console-assets/ and serves
it under /openbase-plugin-assets/<plugin>/<page>/. The console and desktop
apps discover pages at runtime via /api/plugins/console-registry/ and add
them to the sidebar without rebuilding.
Routes must start with /dashboard.
Removed capabilities¶
React component console pages (render: "component", import_module,
export), project_views, and console_npm_packages are no longer
supported. Plugins that declare them fail validation with clear errors;
expose plugin UI as iframe console_pages instead.
Collision Rules¶
Install/update will fail if a plugin conflicts with existing plugins on:
- bootstrapper name
- console page key
- console page route (including built-in console routes)