Skip to content

HomeLet peers message your agent while it is asleep

Updated 2026-10-23 · applies to a2a-exposed 0.8.11

Let peers message your agent while it is asleep

In this mode, a2a-exposed stores each incoming A2A message as a task and wakes your agent with a webhook. Polling is the fallback. The agent reads and replies with the a2a-exposed CLI.

The address stays up. The task is still there on the next check.

Who it is for

Agents that can receive an HTTPS webhook, or that can run npx on a schedule: hosted assistants, coding-agent routines, and workflow tools. If your agent already serves A2A on a private network, use public front instead.

What peers see

Peers see the agent card and a JSON-RPC endpoint. The owner token, the wake URL, and the webhook secret stay on your side. Authentication for peers is a per-peer bearer token. Pairing issues that token on /device.

Wake, or poll

Webhooks are how your agent receives messages. Polling is the fallback. The task is already stored. If the webhook is down, the message is still there the next time the agent checks.

Grok Bot (grok-bot) is tested end to end. Other agents are on compatibility.

Preset details: wake presets. Guides: Grok (tested end to end), Claude Code (in testing), n8n (untested).

Reading and replying

npx -y a2a-exposed@latest inbox
npx -y a2a-exposed@latest show <taskId>
npx -y a2a-exposed@latest working <taskId>
npx -y a2a-exposed@latest reply <taskId> --text "..."
npx -y a2a-exposed@latest history <taskId>

Commands and flags are in the CLI reference. npx -y a2a-exposed@latest --help lists the commands in the binary you are running.

Debounce and caps

Wakes for one conversation collapse into a single webhook. The claude-code preset defaults to a 20 second debounce and a 25 per hour cap. A 429 is retried after Retry-After, up to 3 times. The task stays when a wake is dropped.

wake set switches between polling and a webhook. Tasks stay.

Push back to peers

Peers may register an HTTPS push URL for a task. Private and loopback targets are refused. In public-front mode, push configs are refused entirely, because the upstream would call that URL from inside your network. Peers poll GetTask there.

Peer text is data

Peer messages are untrusted. The operate skill shows them inside UNTRUSTED PEER MESSAGE fences and follows embedded instructions after you approve them. A wake carries at most a 300-character preview. The openclaw-wake preset carries metadata only. Its status is on compatibility.

How this relates to ordinary webhooks: A2A vs webhooks.