Skip to content

What a plugin is, and is not

A plugin is

  • A folder with a manifest, omniconflux-plugin.json, and a script that Node.js runs.
  • Copied into OmniConflux at install and run from that copy, as a process of its own. No plugin code loads into the app or the daemon.
  • A program that talks to OmniConflux over standard input and output, one JSON message per line.
  • Commands in the app's command list, and code that reacts to session and lane events. It answers with plain text.

A plugin is not

  • A screen or a panel. A plugin draws nothing; its commands return text.
  • A reader of your work. It never sees what was said or written in a session.
  • A way to start work on its own. A task it asks for goes to you through the approvals inbox and the risk gate, every time.
  • Sandboxed. It is a program that runs as you: the permissions limit what OmniConflux does for it, not what its own process can do on your machine.

Five permissions

A plugin names the permissions it needs in its manifest, and you approve that exact list. Each one is a sentence you read before you approve.

  • events.read See when sessions and lanes start, stop, wait for an approval and get a verdict. Never what was said or written.
  • lists.read See the lists of your sessions, lanes and seats, with the folders they work in.
  • commands.add Add its commands to the command list, shown under the plugin's name.
  • storage.own Keep up to 1 MiB of its own data on this machine.
  • tasks.create Ask you to start a task. You are asked every time, and nothing starts unless you allow it.

What each permission allows and never allows

The ten-minute path

With OmniConflux 0.3.0 or later, a first plugin is five steps.

  1. Make a folder

    omniconfluxd plugin init makes the folder with a manifest, a main script that answers one command, and its own copy of the SDK.

  2. Write the manifest

    Name the plugin, then list the permissions it needs and the commands it adds.

  3. Answer one command

    Connect to the host with the SDK and return the text the command shows.

  4. Install

    omniconfluxd plugin check reports every problem it finds. omniconfluxd plugin install copies the folder into OmniConflux, where it waits for your approval.

  5. Approve

    Open the Plugins list in the app, read what the plugin asks for, and approve it. Only then does it start.

The quickstart has every command and the whole plugin

Where plugins stand

  • OmniConflux 0.3.0 is released for Omarchy, macOS on Apple silicon and Windows, in a closed beta with a waitlist. Plugins and the SDK ship inside the app from 0.3.0, and the SDK is not on a package registry.
  • The contract is version 1: manifest format 1 and plugin API 1.0. The manifest reference and the API reference are generated from its schemas.
  • You install a plugin from a folder on your machine. Up to 20 plugins can be installed and 10 can run at once.

Planned and not available

A plugin store, developer accounts, payments and a share of revenue are planned and not available.

Not in version 1

  • Screens or panels drawn by a plugin. Commands return plain text.
  • A network permission. No call lets a plugin reach the network through OmniConflux.
  • A sandbox. That is later work; until then a plugin runs with your rights.
  • Events from the past. The lists give the present state.
  • Runtimes other than Node.js.
  • The SDK from a package registry. Each plugin folder holds its own copy.
  • A development mode that skips approval, or approval from the command line, a script or the phone. You install and approve in the app after each change.

Plugins ship inside the app

OmniConflux 0.3.0 is released for Omarchy, macOS on Apple silicon and Windows, in a closed beta with a waitlist. Plugins and the SDK ship inside the app from 0.3.0.