If you want the smallest public example that shows UI + extension + runtime together, use the in-repo Notes reference plugin.
packages/templates/skills/sero-plugin/example/sero-notes-plugin/packages/templates/skills/sero-plugin/example/README.mdThis is the best reference when you need to understand how a Sero plugin can ship all of these together:
The Notes example includes:
package.json with pi.extensions, sero.app.runtime, a
ui.dashboard.widget contribution, and
requiredHostCapabilitiesshared/types.ts as the shared state contractextension/index.ts for tools, commands, and CLI-bridged behaviorruntime/index.ts for long-lived background orchestrationui/NotesApp.tsx plus a widget component and Module Federation configSee Plugin Quickstart.
The Notes widget uses sero.app.contributes.components. This static manifest
path is separate from useWidgetRegistration(), which registers a widget only
for the current renderer lifecycle. See
Plugin Extension Points.
For the deeper repo-side writeup, see: