Instruction file imported from wolfego/agent-messenger (
.cursor/rules/agent-messenger.mdc). Copyright stays with the author.
Agent Messenger
You have access to the agent-messenger MCP server for communicating with other AI agents (e.g. Claude Code running in a terminal).
Auto-check on conversation start
At the start of each new conversation (your very first response), call check_inbox once — UNLESS the user's first message is a shortcut command (#id, #sm, #dm, #ch, #wi, #la, #ct, #lt, #st, #rt). In that case, execute the command directly without checking inbox.
- If the inbox is empty, say nothing about it — proceed with the user's request normally.
- If there are unread messages, summarize them briefly to the user (e.g. "You have a message from claude-code about X") and act on any that have an
actionfield (review, brainstorm, implement, reply). Messages are automatically marked read when fetched. - Do NOT check inbox on subsequent turns unless the user asks.
Shortcuts
The user may type these short commands instead of full sentences:
#help— Show this list of available commands.#cm— Check messages. Callcheck_inbox, act on any unread messages. If empty, say "No new messages."#sm— Send message. Ask the user who to send to (default: "claude-code") and what to say. Usesend_message.#dm— Delete message. Ask the user for the message ID to retract. Calldelete_message. Only messages you sent can be deleted.#ch— Set channel. Ask the user which channel to join. Callset_channel.#id— Set identity. Ask the user for a name (e.g. "cursor-design"). Callset_identity.#wi— Who am I. Callwhoamiand report identity, base ID, and channel.#ct— Create task. Ask for title and optional details, then callcreate_task.#lt— List tasks. Calllist_taskswith sensible defaults (open tasks, sorted by priority).#st— Show task. Ask for task ID, then callshow_task.#rt— Ready tasks. Calllist_taskswithready_only: trueto show tasks with no blockers.#la— List agents. Calllist_agentsto see who is currently online in this project.#log— Message history. Callquery_beadswithtype: "message"andlimit: 20. If the user specifies an agent name, pass it asfrom. Show a concise summary: timestamp, from, to, subject.#status— Status overview. Runagent-messenger statusin the terminal and show the output to the user.#orchestrate <feature>— Start the orchestrator workflow. Callscaffold_workflowwithname: "orchestrate"(creates the workflow doc if it doesn't exist). Read the returned path end-to-end. Follow its phases. Record phase transitions withworkflow_checkpoint. Ask user approval before each send to CC. Actions to send:challenge,verify-spec,implement,review.#debug <description>— Start the debug workflow. Callscaffold_workflowwithname: "debug"(creates the workflow doc if it doesn't exist). Read the returned path end-to-end — especially the Diagnostic Resources section. Follow its phases. Actions to send:investigate,reproduce,fix,verify-fix.#ws— Show active workflow progress. Callworkflow_statusand present the current phase for each active feature.
Sending messages
When the user asks you to send something to another agent, or when your workflow would benefit from another agent's input, use send_message. Always include:
- A clear
subjectsummarizing the request - The
actionfield so the recipient knows what to do context_filesif the recipient needs to read specific files
Replying
When acting on a received message, always use reply (not send_message) to maintain the conversation thread.
Channels (multi-agent isolation)
If the user has multiple agent windows/terminals open in the same project, use set_channel to pair with a specific counterpart. Both agents must join the same channel name. When a channel is active, only messages on that channel appear in your inbox.
If the user says something like "set channel to design-review" or "join channel impl", call set_channel with that name.
Identity
Each agent gets a unique session ID on startup (e.g. cursor-a3f2). The base ID (cursor) is shared across all instances of the same agent type — messages addressed to the base ID are received by all instances. Use set_identity to give yourself a memorable name (e.g. cursor-design).
Use whoami to see your current identity, base ID, and channel. You do not need to self-identify in message bodies — the from label is set automatically.
