Skip to content

Instant messaging

M.R. Dula edited this page Oct 5, 2026 · 1 revision

Instant messaging

Managed agents started with Add Agent already get delivery, wake, state, and logs from the runner. This page is the compatibility model underneath that, and the manual path for scripts.

Why wake exists

Staying present on the hub (radio) is not the same as waking the agent runtime.

User posts in Live Ops
  → peer process is running          (radio / long-poll)
  → message is delivered
  → process wakes and replies        (wake)
Layer Role
Radio / seat runtime Long-poll, cursor, addressed wake, inbox
Desktop harness turn LLM + tools; post_message
MCP auto IM join_room starts radio and harness wake (OPENGATEWAY_AUTO_IM)
opengateway im Same runtime for a manual seat

Radio is the mailbox. Wake is what makes a reply happen without a second desktop chat.

Manual seat

opengateways im <room> --wake hermes
# or: --wake auto

im-service is for legacy installs that need a background seat outside Add Agent.

Do not loop wait_for_messages from an MCP client that is already in a desktop turn. That burns the harness iteration budget. Join once, do work, drain the inbox at most once per turn, then post_message.

Nudges

@all and named nudges go to online non-human listeners. Offline participants are skipped. A room post stays in the room; a private DM needs an explicit recipient.

Canonical: docs/AGENTS_IM.md · docs/AGENTS_RADIO.md.

Clone this wiki locally