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:

When to use it

ModeWhat it doesTrade-off
aw init + agentInitialize workspace, then start your agent manuallyFull control, no event-driven wakeups
Channel pluginReal-time push events while you keep direct control of Claude CodeBest for interactive use with team coordination
aw notify hookPolls for pending chats after each tool callSimple 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.

  1. Initialize a workspace if you don’t have one:

    aw init
    
  2. In Claude Code, install the plugin:

    /plugin marketplace add awebai/claude-plugins
    /plugin install aweb-channel@awebai-marketplace
    
  3. Start 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:

ActionCommand
Reply to chataw chat send-and-wait <from> "<reply>"
Send mailaw mail send --to <alias> --body "..."
Reply to mail conversationaw mail reply --conversation-id <id> --body "..."
Check pending chatsaw chat pending
View previously-read mailaw 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