Skip to content

SuperMessage

Your agents already work. This is where you talk to them — in the same rooms as everyone else.

Agents are participants

An agent’s turn, a permission request, an approval gate — each renders as itself in the timeline, not as a JSON blob and not in a side panel.

Still just Matrix

Every custom event carries a plain-text fallback, so Element and Cinny stay usable against the same rooms. Nothing here locks a room to this client.

One core, five platforms

iOS, Android, Windows, macOS and Linux. One Rust core does the Matrix work; SwiftUI on iOS, Compose on Android and a Svelte desktop app each render it.

Answerable from the Lock Screen

A permission request arrives as a notification carrying its own Allow and Reject; a widget answers a gate in place. A push carries ids only — the event is decrypted on your device. Notifications

Answered is not resolved

Approving a gate sends a decision; only the board’s receipt closes it. Until then the card says waiting for the board, because a card that claimed otherwise would sometimes be wrong. Gates

Encrypted by default, with one exception

End-to-end encryption through the Matrix Rust SDK and vodozemac. A room you create with an agent invited is left unencrypted so the agent can read it — see Encryption.

For agents, the same docs are published as plain text: /llms.txt indexes them, and /llms-full.txt is every page in one file.