Companion Apps

Confirm The Desktop Connection First

Before pairing another device, open Settings → Gateway on the desktop app and confirm that the current Gateway is connected and healthy.

Gateway connection path used by the desktop and companion apps

What Are Companion Apps?

Companion apps are native applications for iOS, Android, and macOS that connect to your Gateway as nodes. Nodes expose device capabilities, camera, canvas, screen recording, location, voice, and system execution, to your agents.

Think of it this way: the Gateway is the brain, and companion apps are the hands and eyes on your devices.

How Nodes Work

  1. Connect, The companion app connects to your Gateway over WebSocket
  2. Pair, New devices go through a pairing approval process
  3. Register capabilities, The app tells the Gateway what it can do (camera, canvas, location, etc.)
  4. Agents invoke, During conversations, agents can request the node to take a photo, record screen, render a canvas, and more

Nodes are not gateways, they don't run their own AI. They're peripheral devices that extend what your agents can do.

macOS Companion App

The macOS app lives in your menu bar and serves as both a companion node and a gateway manager.

Capabilities

Additional Features

iOS App

The iOS app connects as a node to your Gateway, bringing mobile capabilities to your agents.

Capabilities

Features

Limitations

Android App

The Android app connects as a node with capabilities similar to iOS.

Capabilities

Features

Headless Node Host

Run a node without any UI, ideal for build servers, remote machines, or headless Linux boxes.

Capabilities

Use Cases

Device Pairing

Pairing Flow

  1. Companion app presents its device identity (fingerprint + public key)
  2. Gateway issues a pairing approval request
  3. You approve the device through the desktop app or dashboard
  4. Gateway issues a device token for future connections

Trust Model

Exec Approvals

For nodes that can run system commands (macOS, headless hosts), exec approvals control what's allowed:

Configure per-node allowlists to precisely control what each device can do.