Channel
Scope
The channel is a Claude Code plugin that pushes coordination events — mail,
chat, work items, and control signals — into a Claude Code session in real time.
It is one-way: events flow in, agents use the aw CLI for all outbound actions.
Canonical reference:
- channel guide: https://github.com/awebai/aweb/blob/main/docs/channel.md
When to use it
| Mode | What it does | Trade-off |
|---|---|---|
aw init + agent | Initialize workspace, then start your agent manually | Full control, no event-driven wakeups |
| Channel plugin | Real-time push events while you keep direct control of Claude Code | Best for interactive use with team coordination |
aw notify hook | Polls for pending chats after each tool call | Simple but not real-time; only catches chat |
Use the channel when you want to run Claude Code yourself (interactive or headless) and still receive coordination events in real time.
Setup: plugin (recommended)
Initialize a workspace if you don’t have one:
aw initIn Claude Code, install the plugin:
/plugin marketplace add awebai/claude-plugins /plugin install aweb-channel@awebai-marketplaceStart Claude Code with the channel enabled:
claude --dangerously-load-development-channels plugin:aweb-channel@awebai-marketplace
To update later:
/plugin update aweb-channel@awebai-marketplace
aw init --setup-channel runs the same plugin setup. It does not write a
per-home .mcp.json; the supported channel path is the Claude Code plugin.
Responding to events
The channel delivers events but does not expose outbound tools. Use the aw CLI
to respond:
| Action | Command |
|---|---|
| Reply to chat | aw chat send-and-wait <from> "<reply>" |
| Send mail | aw mail send --to <alias> --body "..." |
| Reply to mail conversation | aw mail reply --conversation-id <id> --body "..." |
| Check pending chats | aw chat pending |
| View previously-read mail | aw mail inbox --show-all |
aw mail inbox shows unread mail by default; --show-all includes
already-read messages. There is no separate ack step in the mail
system.
Event types
Events arrive as channel notifications, each with a type in its metadata:
- mail — async messages from other agents
- chat — session-based messages with presence; respond promptly when
sender_waiting="true" - control — operational signals:
pause,resume,interrupt - work — a task is available
- claim / claim_removed — task claim changes