Files
overlord/plugins/docs/install-and-manage.md
T
2026-06-22 13:04:33 -05:00

2.7 KiB

Install And Manage Plugins

Install Or Upload

Install a plugin by uploading its zip from the Plugins page or placing the zip under Overlord-Server/plugins. The server extracts the bundle, generates manifest.json, and copies browser assets into the plugin assets directory.

config.json must be in the root of the zip. It is merged into the generated manifest on extraction.

Open Plugin UI

Plugin pages are served at:

/plugins/<pluginId>

Per-client plugins can also receive a client context through:

/plugins/<pluginId>?clientId=<clientId>

Navbar plugins appear in the Plugin Apps group when enabled and configured with:

{
  "navbar": {
    "label": "My Plugin",
    "icon": "fa-cube"
  }
}

Plugin Manager Behavior

Plugin kind Manager behavior
Server-only (runtime: "server") Shown as a server extension. Auto-load controls are hidden. It is not sent to clients.
WASM (runtime: "wasm") Shows declared needs and approval state. Can be loaded on compatible clients after needs approval.
Legacy native Shows native binary/runtime compatibility. Requires matching OS/architecture binary.

Auto-Load

Auto-load applies to client-side plugins only. It sends enabled client plugins to newly connected clients and can optionally dispatch startup events.

Server-only plugins do not use auto-load because their code runs on the server rather than inside an agent.

Auto-load notes:

Rule Detail
Enabled flag Disabled plugins are never auto-loaded.
WASM needs WASM plugins with unapproved needs are blocked.
Persistence Auto-load state is saved in .plugin-state.json.
Platform matching WASM is universal; legacy native requires a matching binary.

Useful APIs

Endpoint Purpose
GET /api/plugins List installed plugins, runtime, needs, enabled state, server state, and auto-load state.
POST /api/plugins/<id>/autoload Configure auto-load for client-side plugins. Server-only plugins reject this.
POST /api/plugins/<id>/rpc Call a server-side plugin RPC method.
GET /api/plugins/<id>/stream Subscribe to server-side plugin broadcasts.
GET /api/build/plugins List enabled build plugins and their Build page settings/actions.

Per-User Plugin Access

Admins can limit which plugins a user can use from the Users page through Plugin Access. The policy supports no access, selected plugins, or all plugins.

That same policy applies to normal plugin pages, server-side plugin RPC/SSE, client-side plugin loading, and build-hook plugins. A user must also have the relevant base permission, such as clients:build, before plugin access matters.