The StablEdge installer bundles the PC Control plugin, which you can use as a reference; a few common manifest patterns follow.
PC Control
com.stabledge.pc-control: lets the Agent drive the keyboard and mouse, windows and screenshots on this computer, and click and fill fields through an interface automation control tree. It is a bundled plugin with only skills and one worker whose isolation is dev_unrestricted, and enabling it asks you to allow This-computer mode. A plugin like this should say in its description why it needs permission on this computer.
Manifest snippets
These snippets show only the relevant parts of a manifest, and the plugin IDs and names are invented. Pick the one closest to what you need as a starting point, and keep only the contributions and permissions you actually use.
Top bar only
Take com.example.my-monitor (My Monitor): no workspace and no worker, just one top bar item in the embedded page form, with the permission granted to host:
"contributions": {
"topbar_items": [
{
"id": "system-metrics",
"side": "left",
"label": "CPU -- · MEM --",
"tooltip": "CPU, memory and GPU usage",
"priority": 50,
"entrypoint": "payload/ui/topbar.html",
"bridge_version": "1.0",
"min_width": 145,
"max_width": 280
}
]
},
"requested_permissions": [
{ "permission": "system.metrics.read", "worker": "host" }
]
The page samples on a timer with services.invoke("host.system_metrics", "sample", {}).
Calling an external API
Take com.example.my-docs (My Docs): the worker makes all network requests, the net.fetch permission belongs to that worker, and scope limits domains and methods:
{
"permission": "net.fetch",
"worker": "main",
"optional": true,
"scope": { "domains": ["api.example.com"], "methods": ["GET", "POST"] }
}
When a site needs a sign-in, use a credential with kind set to oauth2 and callback_mode set to custom_scheme. The host keeps and refreshes the token, and the worker only refers to it through credential_refs.
AI runtime examples (official plugins only)
com.stabledge.fun-asr (speech recognition) and com.stabledge.index-tts (speech synthesis) use ai_runtime to have the host run the model. This capability is open to the official source only, so third-party plugins cannot use it; it is here for reference.
Starting from scratch
To start from nothing, open plugin creation mode in Ability Center and let the Agent generate the plugin folder from the built-in guide, as described in Packaging and signing.