Example plugins

Applies to: StablEdge Desktop 0.4.4

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.

On this page