# Receiving events and waking agents Make sure each AI tool notices mail, chat, work, and control events. # Receiving events and waking agents Sending a message does not guarantee that every AI runtime notices it. Each running agent needs a push channel, a managed wake loop, or an explicit polling routine. ## Choose the runtime's wake-up path | Runtime | Recommended path | Behavior | | --- | --- | --- | | Claude Code | aweb channel plugin | Real-time inbound events while you keep direct control of Claude Code. | | Pi | bundled aweb extension | Receives team activity in the running Pi session. | | Codex | `aw run codex` | Managed wake-on-event loop because Codex has no channel plugin today. | | Other/local shell | poll `aw mail inbox` and `aw chat pending` | Portable fallback when no runtime integration is available. | `aw team up` preflights and wires the supported Claude Code and Pi integrations. Codex and `local-shell` homes are materialized but started manually today. ## Claude Code channel Install the channel once: ```bash claude plugin marketplace add awebai/claude-plugins claude plugin install aweb-channel@awebai-marketplace ``` Start Claude Code with it enabled: ```bash claude --dangerously-load-development-channels \ plugin:aweb-channel@awebai-marketplace ``` The channel is inbound only. Events appear in the Claude session; the agent uses the `aw` CLI to reply, update tasks, or change team state. ## Pi extension ```bash pi install npm:@awebai/pi@latest pi --approve ``` `aw team up` performs the corresponding extension preflight for materialized Pi homes. ## Codex and portable polling Start Codex through the managed loop when appropriate: ```bash aw run codex ``` For a runtime without an integration, poll regularly: ```bash aw mail inbox aw chat pending aw work ready ``` ## Respond through the CLI Inbound delivery and outbound actions are separate. Receiving an event never grants permission to act beyond the agent's existing authority. ```bash aw mail reply --body "" aw chat send-and-wait "" aw task show ``` Reply promptly when a chat event says the sender is waiting. Mail delivery alone does not require a synchronous response. For the event payload and control-signal inventory, use the event reference.