Local plugins usable → developer-friendly → marketplace distribution → signing and auto-update
- manifest v1
- Local directory loading
- enable/disable/uninstall
- command palette integration
- hello example plugin
- permission declaration display
- Full agentTools pipeline ✅
- Official
pi.session-orchestratorworker-session plugin ✅ — real durable sessions, host-owned bidirectional delivery, turn-bound results, at-most-once completion callbacks, bounded status projections, and parent-scoped persistence; it composes the revieweddesktop.controloperations while the durable ledger remains in host-core (ADR 0237 / ADR 0239) - Skills contribution is activated: declared skills reach the model as a
# Skillscatalog in the system prompt whenagent.prompt.injectis granted, and the model loads a body on demand through theSkilltool ✅ (ADR 0039, D174) - Unified namespace and audit ✅
- Per-plugin settings API and generated settings UI are implemented. The UI supports string/number/boolean/select/json fields and plugin-local command shortcuts; OS-global plugin shortcuts remain out of scope.
- Plugin log panel remains planned; runtime audit logs exist without a dedicated plugin-log surface
- plugin-sdk ✅
- Template generation ✅ (
panel-basic,agent-tool-basic,skill-pack,full-demo, from the plugins page, the agent, orpi-plugin init) pi-plugin check/pack✅ (@pi-desktop/plugin-devkit, also exposed as thePluginCheck/PluginScaffold/PluginPackagent tools).pipluginstall ✅- dev hot reload ✅ (watch + debounce, and a reload can never widen permissions)
- market provider abstraction (official remote GitHub catalog provider)
- Official-source browse/search from
vastsa/pi-desktop-plugins(superseded: the official source is the plugin center,plugins.aiuo.net) - Download + checksum install
- updates list (manual update)
- Publisher verification (verified flag in catalog)
- Signature verification (still planned; checksum enforced now)
- Permission-diff upgrade ✅
- Auto-update policy ✅
- Malicious-version yank response (still planned)
- MCP plugin type ✅ —
contributes.mcpServersover stdio and remote HTTP (D176) - Background service plugins ✅ —
contributes.serviceswith supervised restarts (D177) - Inter-plugin message bus ✅ — declared topics,
pi.bus.*(D178) - Theme plugins ✅ — plugins ship CSS files (D175)
- Enterprise private sources (still planned)
- Marketplace reviews / quality score (partial: the desktop reads public summaries and reviews anonymously and links out to the centre to write; accounts, writing, voting, and reporting live on the centre's web page)
- v1: ExtensionAPI adapter in the Agent sidecar; tools, commands, lifecycle and provider hooks, basic UI prompts
- v1.1: modules are a plugin contribution (
contributes.agentExtensions, permissionagent.extension); "Import pi extension" turns a pi CLI extension into a development plugin; no separate registry or settings tab - v2: custom session entries,
sessionManagerread shim, editor read/write, shortcuts, markdown transformers; marketplace distribution once signing lands - v3: pi CLI
settings.jsonhints, unified skill/prompt discovery, remote-control prompt routing - Spec: 16-trusted-extensions.md; ADR 0214, ADR 0215
| Product milestone | Plugin goal |
|---|---|
| M1 Skeleton | Reserve the plugins directory and interface stubs |
| M2 Chat Runtime | Non-blocking; can be designed in parallel |
| M3 Tools | ToolHost reserves contribution hooks |
| M4 Plugin Foundation | R1 complete |
| M5 Hardening | Plugin isolation and stability |
| Post-MVP | Complete R2 and progress R3–R6 in phases |
- Users can extend their workflow via plugins even without a new official release
- Third parties can independently develop and locally install plugins
- A plugin failure does not break the main app's availability
- Permissions are visible and refusable before installing any plugin
| Risk | Mitigation |
|---|---|
| Building the marketplace too early destabilizes the core | Defer the marketplace; R1 does local first |
| Plugin security incident | Deny by default + audit + mandatory signing later |
| Frequent API breakage | apiVersion / schemaVersion |
| High developer barrier | Templates + hello example + SDK |