Skip to content

Plugins

Roy Padina edited this page Oct 6, 2026 · 1 revision

Plugins

Most conditions and actions ship as plugins, and you can add your own. A plugin is a folder with a plugin.json manifest declaring one or more providers (conditions and/or actions).

Engines

  • declarative: pure JSON. An action is a transform pipeline (regex-replace, case, trim, prepend/append); a condition is a predicate tree (regex / contains / kind / source-app, combined with all / any / not). No code.
  • javascript: a small sandboxed script with no network, no filesystem, no timers and a ~250 ms watchdog. Export transform(text) for an action or matches(input) for a condition.

Plugins are text transforms and conditions only. They cannot open URLs or launch apps. For that, use the builtin actions (see Actions and Rules).

Minimal manifest

{
  "id": "com.example.my-plugin",
  "name": "My Plugin",
  "version": "1.0.0",
  "description": "What it does.",
  "capabilities": ["action"],
  "providers": [
    {
      "id": "com.example.my-plugin.my-action",
      "name": "My Action",
      "description": "Transforms the clipboard value.",
      "kind": "action",
      "engine": "javascript",
      "entry": "src/my-action.js"
    }
  ]
}

Managing plugins

  • GUI: Settings → Plugins. Browse the marketplace, install and uninstall packages, enable or disable each one, and add local folders while developing. First-party plugins ship bundled and can be disabled.
  • CLI: plugins list|enable|disable and folders list|add|remove. See Command line. Marketplace install and uninstall are GUI-only.

The official marketplace is roypadina/MaccyPlus-Plugins; its docs/ explain how to author and publish a plugin.

Clone this wiki locally