Sero plugins can add app UIs, agent tools, commands, background runtime behavior, provider metadata, and dashboard widgets. This guide gives the user-facing and author-facing mental model without replacing the detailed plugin references.
Sero is still a source-only OSS alpha. Treat third-party plugins as trusted source code, expect plugin APIs to evolve, and do not assume external plugins are bundled Sero features.
Sero has a few app/plugin categories that users should keep separate:
A plugin can provide one or more surfaces:
For the at-a-glance list of built-in and external/local plugins, see the Plugin Catalog. For the canonical overview, see Plugins. For the end-user management flow, see App Store, Favorites, and Installed Plugins.

The App Store dialog is the current discovery and management surface for plugin apps. It has two high-level views:
Installed search filters local app manifests. Discover searches remote plugin sources through Sero's plugin search bridge.
Keep the alpha caveats in mind:
The main sidebar shows core shell apps plus favorited discovered apps that the host supports. Discovered apps are not all shown by default.
Favorites are a convenience for keeping frequent plugin apps close at hand:
If a plugin is installed but does not appear where expected, it may be hidden by compatibility checks, missing capabilities, or alpha discovery behavior.

Bundled and installed plugins can provide focused app UIs. Examples include Kanban boards, image generation, debate/review workflows, and research-oriented surfaces. Treat these as examples of the plugin model rather than a promise that every profile has every plugin installed or enabled.
A Kanban-style plugin can use Sero's app surface for project-specific planning without becoming part of the core shell.

Detail views let a plugin expose richer state for one item while still keeping that state inside the plugin's own model.

Plugin-specific options belong inside the plugin UI unless they need a host-level capability or permission.

Other plugins may focus on agent-assisted generation workflows rather than project management.

Review or debate-style plugins are another example of the same extension model: a focused UI paired with agent/tool behavior.

Plugins can declare compatibility requirements such as a minimum Sero version or required host capabilities. Unsupported plugins may remain installed but not activate in the sidebar or app surface.
This protects users from some mismatches, but it is not a substitute for trust:
A Sero plugin usually combines a few pieces:
sero manifest fieldsThe best starting points are:
Use this page as the map; use the reference pages for implementation detail.
Plugin UIs are loaded dynamically. In production, installed plugin remotes are served through Sero's extension protocol. In development, Sero can fall back to a plugin dev server when configured.
At a high level, the desktop app resolves a remote entry, loads the exposed React component, and mounts it inside the active app area. Loaded modules are cached and evicted over time so Sero can handle dynamic plugin app loading.
Do not rely on internal remote-loading details as a stable public API. Keep plugin packaging metadata explicit and follow the current quickstart.
@sero-ai/app-runtime gives federated app modules a small host bridge. See the
App Runtime Reference for the source-checked hook/API
table. Current public-facing concepts include:
useAppInfo — read app and workspace identityuseAppState — read and update file-backed app state through SerouseAgentPrompt — send text to the active agent sessionuseAI — call an app-scoped agent prompt or stream when availableuseAppTools — invoke app/plugin tools through the host bridgeuseAvailableModels — read available model groups when exposed by the hostuseTheme — read effective theme mode and presetuseWidgetRegistration / registerWidget — register dashboard widgets for
the current renderer sessionThese hooks expect to run inside the Sero shell with the window.sero bridge
available. During alpha, some hooks may throw or degrade if a host capability is
missing.
Plugin app state should go through Sero's app-state bridge rather than browser
storage. In practice, that means using useAppState from the app runtime instead
of localStorage or ad hoc files from renderer code.
This keeps plugin state aligned with Sero's profile/workspace model and lets the host own persistence. Exact storage paths and capabilities can vary by app scope and plugin configuration, so document plugin-specific state only after verifying it.
Plugins can expose dashboard widgets through static manifest metadata or runtime registration. Widgets are intended for compact summaries such as recent activity, counts, or quick status — not as full replacement app surfaces.
For the user workflow to add, remove, drag, resize, and troubleshoot widgets, see Dashboard and Widgets.
When documenting widgets, keep claims scoped:
Some plugins need host capabilities for command execution, background runtime, agent-tool bridges, or provider integrations. Manifest requirements help Sero avoid loading unsupported apps, but they do not guarantee parity across every runtime mode.
In public alpha docs, prefer conservative wording:
Avoid these claims unless a later product decision and runtime test confirm them:
If you want to use plugins, start with App Store, Favorites, and Installed Plugins, then use the Plugin Catalog to distinguish built-in plugins from external/local examples, read Dashboard and Widgets for widget behavior, and Plugins for the broader model.
If you want to build a plugin, start with Plugin Author Quick Path, then continue to Plugin Quickstart and Plugin End-to-End Example for UI, extension, runtime, and widget structure.