Pre-alpha · v0.0.1-alpha.0

A tiny relay for the computers you already trust.

Move work between your own coding agents without opening a port or pasting a private token. Enroll each computer once, then send encrypted prompts, files, or notifications to a receiver you control.

Enroll both machines. Keep one serving.

  1. 1

    Enroll each computer

    Browser approval names the machine and stores its device keys plus a renewable credential locally. No join codes, no pair tokens, no secret copied between machines.

  2. 2

    Keep one serving

    Run the receiver on whichever machine should accept notifications or agent handoffs. It connects outward — nothing listens on the public internet.

  3. 3

    Send a first message

    A local notification is the universal, always-safe target. Delivery straight into a coding agent is explicit and controlled by the receiving machine.

Install

Pre-alpha. The CLI works; flags will still change. Both paths install the same binary.

Download for Mac

RelayBar lives in your menu bar and asks before anything reaches a coding agent.

Download RelayBar

Apple-notarized · macOS 13+ · Apple silicon and Intel

Or install from the terminal

Installs the CLI and, on macOS, the RelayBar menu-bar app.

curl -fsSL https://relay.ch5.me/install.sh | bash

v0.0.1-alpha.0 · macOS 13+ (Apple silicon and Intel). Linux is CLI-only — see below. It's a plain shell script, so read it first if you'd rather.

On Linux

CLI only, and notifications are the one delivery destination — approving a coding agent needs the menu-bar app, which is macOS. Install libnotify first; enrolment refuses a machine with nowhere to deliver.

sudo apt-get install -y libnotify-bin

Or your distribution's libnotify package.

Then, on each machine

relay enroll --browser
relay serve

relay send --cloud \
  --to your-handle/your-device-id \
  --deliver notify \
  --text "Pick up the next task."

One core, three local ways in.

The integration surface is intentionally ordinary. Each path delegates to the same local service and the same adapter checks, so adding a harness never means another transport.

CLI

relay send

Direct terminal control.

MCP

relay mcp

A standard stdio server exposing send, peers, destinations, and status to any MCP-capable harness.

A2A

relay a2a

A bearer-protected loopback A2A 1.0 gateway — without exposing your computer to the network.

Adapters are useful, but never magic.

The receiver advertises what is actually available, probes bounded local state, and fails closed rather than silently substituting a different destination.

  • notify The safe baseline: a local notification and copyable payload.
  • claude Mailbox and hook based handoff where configured.
  • codex Explicit Codex delivery when the receiver allows it.
  • opencode HTTP delivery into an approved local session.
  • gemini Gemini CLI handoff through the adapter contract.

The receiver stays in control.

A tool that can inject work into your coding agent has to be legible about what it can and cannot do. Here is the whole shape of it.

No inbound anything

Devices connect outward to the relay. There is no router rule, no firewall hole, and no address for the public internet to reach.

Sealed before it leaves

Message bodies and attachments are encrypted to the recipient device and signed by the sender device before the relay ever handles them. It stores opaque ciphertext and routing metadata.

Keys stay local

Device private keys and renewable credentials live on your machine — in the macOS Keychain, or a 0600 file elsewhere. They are never uploaded.

The receiver decides

Relay is transport, not a cloud executor. Whether a notification, agent handoff, session, or workspace is allowed is decided by the machine receiving it.

Sharing is scoped and revocable

Giving another person access is deliberate: scoped to one device and one adapter, auditable, and revocable from the same screen that granted it.