This guide is the canonical end-user workflow for managing Fusion plugins across the full lifecycle: discover, install, enable/disable, configure, use, update, uninstall, and troubleshoot.
Plugin author/developer details (manifest, SDK APIs, hooks, routes, and runtime implementation) live in Plugin Authoring.
Fusion uses two plugin surfaces in Settings:
- Fusion Plugins (
Settings → Plugins → Fusion Plugins): extend Fusion behavior (tools, routes, UI slots/views, runtimes) - Pi Extensions (
Settings → Plugins → Pi Extensions): manage pi extension packages/sources
These are related but different systems; do not treat Pi Extensions as Fusion Plugins.
| State | Meaning |
|---|---|
installed |
Registered but not started yet |
started |
Loaded and active |
stopped |
Disabled/stopped |
error |
Failed to load or failed at runtime |
Setup-capable plugins (for example Agent Browser) expose an additional setup check that is separate from lifecycle state.
- A plugin may be
installed/stoppedwithout being broken. - When a plugin is not
started, Settings shows setup check as deferred ("Start plugin to check setup") instead of treating it as an error. - Error styling is reserved for true plugin lifecycle failures (
state = error) or true setup-check failures returned while the plugin is running.
| Location | Purpose |
|---|---|
~/.fusion/plugins/ |
Default local plugin install location |
| Bundled plugin manifests (shipped with Fusion) | Discoverable/installable from Plugin Manager |
| Custom local path (absolute path) | Install plugin from a local directory |
Plugin persistence is split across global and project scopes:
- Plugin installs are global. Installation metadata is registered in
~/.fusion/fusion-central.dband shared across all projects on this machine. - Enable/disable is project-scoped. The same globally installed plugin can be enabled in one project and disabled in another. Per-project activation/runtime state is tracked in
project_plugin_states. fn plugin listshows the global install set plus enabled/disabled state for the current project context.
For full multi-project details, see Plugin Scope in Multi-Project Mode.
- Open Settings → Plugins → Fusion Plugins.
- Review bundled entries in Bundled Plugins and currently installed entries.
- Check each plugin’s status/state in the manager.
First-party bundled entries include runtime plugins plus integrations like Dependency Graph, Reports, Roadmap, WhatsApp Chat, and CLI Printing Press.
Expected outcome: You can see what is already installed, what is bundled and available, and each plugin’s current lifecycle state.
- Run:
fn plugin list
- Review installed plugin IDs and status.
Expected outcome: You have a terminal view of installed plugins for scripting/remote workflows.
- Go to Settings → Plugins → Fusion Plugins.
- In Bundled Plugins, click Install for the plugin.
Install/uninstall are global operations and affect plugin availability for every project on this machine.
Expected outcome: Plugin is registered and appears with an initial state (typically installed then started when enabled/loaded).
WhatsApp Chat plugin note: Pair it directly to WhatsApp Web (multi-device) via QR (
/api/plugins/fusion-plugin-whatsapp-chat/qr) or pairing code (/api/plugins/fusion-plugin-whatsapp-chat/pair-code). No public webhook endpoint or Meta Cloud credentials are required. KeepallowedSenderspopulated (empty list blocks all inbound messages), and use/logoutto force re-pairing.
- Go to Settings → Plugins → Fusion Plugins.
- Use Install and provide an absolute plugin path.
- Confirm installation.
Install/uninstall are global operations and affect plugin availability for every project on this machine.
Expected outcome: Plugin is added to your local plugin set and appears in the manager.
- Run:
fn plugin install <path>
- Confirm the plugin appears in:
fn plugin list
fn plugin installandfn plugin uninstallare global operations and affect every project on this machine.
Expected outcome: Plugin is installed from the specified path and visible in plugin listings.
- Open Settings → Plugins → Fusion Plugins.
- Toggle plugin enable/disable controls.
- Use reload controls when available.
Enable/disable is project-scoped and only affects the current project.
Expected outcome: Plugin transitions between runtime states (started / stopped) and reflects transitions in the manager.
fn plugin enable <id>
fn plugin disable <id>
fn plugin enableandfn plugin disableare project-scoped operations and only affect the current project context.
Expected outcome: Plugin is enabled or disabled by ID.
- Go to Settings → Plugins → Fusion Plugins.
- Open the plugin settings editor (gear/settings action).
- Update fields and save.
Expected outcome: Plugin-defined settings are persisted and used by that plugin at runtime.
After a plugin is installed/enabled, these are the current user-visible capability surfaces.
Plugin-contributed skills are merged into agent sessions automatically at runtime when enabled.
- Install + enable the plugin.
- Run a task through an agent flow (triage/executor/reviewer/merger).
- Check agent output/logs for skill-driven behavior from that plugin.
Expected outcome: plugin skills affect session behavior, but there is no dedicated "plugin skills" management panel in Fusion Plugins.
Note: Skills view shows discovered execution skills and toggles, but plugin-contributed skills are documented as runtime session behavior here (not a plugin-manager-specific skills UI).
Plugin templates are visible in the workflow-step chooser.
- Open Settings → Workflow Steps.
- Click Add Workflow Step.
- In the templates chooser, find plugin-contributed templates (grouped/labeled with plugin attribution).
- Add the template and configure phase/mode as needed.
Expected outcome: plugin templates appear alongside built-in templates and run like any other workflow step.
See also: Workflow Steps and Plugin Authoring §16.
Prompt contributions modify agent prompts at runtime on supported surfaces (for example executor/triage/reviewer/heartbeat).
- Install + enable the plugin.
- Run the relevant agent flow.
- Validate behavior via agent output/logs (for example extra instructions being followed).
Expected outcome: prompt modifications apply during agent runs. There is no verified dedicated dashboard UI to inspect/edit plugin prompt contributions directly.
See: Plugin Authoring §17.
Some plugins expose optional setup hooks for managed binaries/runtimes.
- Ensure the plugin is installed and enabled.
- Check setup status:
fn plugin setup-status <id>
- Trigger install or uninstall:
fn plugin setup <id> --action install fn plugin setup <id> --action uninstall
Expected outcome: setup status and setup actions run via CLI. Current behavior is CLI-driven; do not assume a dedicated dashboard setup control exists.
See: Plugin Authoring §18.
After installing/enabling, verify success signals relevant to that plugin:
- Plugin state remains
started(noterror) - Plugin tools/routes/UI/runtime contributions appear where that plugin declares them
- Plugin-contributed workflow templates are available in Settings → Workflow Steps
- Plugin-contributed skills and prompt contributions are observable during agent runtime behavior/logs
- Optional setup-capable plugins report expected setup status via CLI
If you need capability-level details for a specific plugin, check its README and Plugin Authoring.
Fusion does not use a dedicated fn plugin update command. Update by reinstalling the desired plugin version/source.
- Reinstall from the bundled entry or updated local path.
- Re-check state and behavior in the plugin manager.
- Re-run install against the updated source path:
fn plugin install <path>
- Confirm with:
fn plugin list
Expected outcome: Updated plugin build/version is installed and operational.
- Open Settings → Plugins → Fusion Plugins.
- Uninstall the target plugin.
Expected outcome: Plugin is removed from the installed list and no longer active.
- Run:
fn plugin uninstall <id> --force
- Verify removal:
fn plugin list
Expected outcome: Plugin is removed by ID.
| Workflow | Dashboard path | CLI command |
|---|---|---|
| List installed plugins | Settings → Plugins → Fusion Plugins | fn plugin list |
| Install plugin | Settings → Plugins → Fusion Plugins → Install | fn plugin install <path> |
| Enable plugin | Settings → Plugins → Fusion Plugins → Enable toggle | fn plugin enable <id> |
| Disable plugin | Settings → Plugins → Fusion Plugins → Disable toggle | fn plugin disable <id> |
| Uninstall plugin | Settings → Plugins → Fusion Plugins → Uninstall | fn plugin uninstall <id> --force |
| Check plugin setup status | CLI-only in current user flow | fn plugin setup-status <id> |
| Install/uninstall plugin setup binary/runtime | CLI-only in current user flow | `fn plugin setup --action install |
| Add plugin workflow step template | Settings → Workflow Steps → Add Workflow Step | POST /api/workflow-step-templates/:id/create (API) |
| Scaffold new plugin (authoring) | n/a (developer workflow) | fn plugin create <name> |
- Open Settings → Plugins → Fusion Plugins and inspect state/transition feedback.
- Disable then re-enable the plugin.
- Confirm plugin source path and dependencies are valid.
- If needed, uninstall and reinstall the plugin.
The Hermes runtime plugin auto-installs the bundled Fusion skill on plugin load.
- Confirm the plugin is
started. - Check the Hermes skill path:
- default profile:
${HERMES_HOME:-~/.hermes}/skills/fusion - named profile:
${HERMES_HOME:-~/.hermes}/profiles/<profile>/skills/fusion
- default profile:
- Review plugin warnings; startup continues even if skill mirroring fails.
- Reload/disable+enable the plugin to re-run the self-healing install attempt.
Manual post-install skill setup is typically not required for Hermes runtime anymore.
- Confirm plugin state is
started. - Verify what that plugin actually contributes (tools/routes/UI/runtime/skills/workflow templates/prompt contributions/setup hooks) in plugin docs.
- Confirm you are checking the correct surface:
- Workflow templates: Settings → Workflow Steps
- Skills/prompt contributions: runtime agent behavior/logs
- Setup hooks: CLI commands (
setup-status,setup) - UI routes/slots: dashboard nav/sections/cards according to plugin design
- Use Fusion Plugins for Fusion plugin lifecycle management.
- Use Pi Extensions only for pi extension sources/extensions/skills/prompts/themes.
Use CLI setup commands:
fn plugin setup-status <id>
fn plugin setup <id> --action install
fn plugin setup <id> --action uninstallUse Plugin Authoring for manifest fields, lifecycle hook signatures, UI/runtime contribution contracts, and SDK examples.
For sections referenced in this guide: