Skip to main content

Messaging

Named agents exchange structured messages — direct messages for fire-and-forget, request/reply for synchronous coordination.

msg

Send a direct message to a session. Target can be a session ID or name.
cw msg <target> <body> [-f <session>]
FlagDescription
targetSession ID or name to send to
bodyMessage content
-fSender session (for named agent identity)
# Run named agents
cw run planner -- claude -p "plan the refactor"
cw run coder -- claude -p "implement changes"

# Send a direct message
cw msg -f planner coder "start with the auth module"

inbox

Read messages from a session’s inbox. Shows direct messages and pending requests.
cw inbox <session> [-t <N>]
FlagDescription
sessionSession ID or name
-tShow last N messages

request

Send a request and block until a reply arrives. Synchronous coordination between agents.
cw request <target> <body> [-f <session>] [--timeout <s>]
FlagDescription
targetSession ID or name
bodyRequest content
-fSender session
--timeoutMaximum wait time in seconds
cw request -f planner coder "ready for review?"
# [reply from coder] yes, PR #42 is up

reply

Reply to a pending request. Request ID comes from cw inbox or message.request events.
cw reply <request-id> <body> [-f <session>]

listen

Stream all message traffic in real-time. Shows messages, requests, and replies as they happen.
cw listen [--session <session>]

Example: Coordinated Agents

# Run named agents
cw run planner -- claude -p "plan the refactor"
cw run coder -- claude -p "implement changes"

# Planner sends instructions
cw msg -f planner coder "start with the auth module"

# Planner asks for status (blocks until reply)
cw request -f planner coder "ready for review?"

# Monitor all message traffic
cw listen