Optimizing Collaboration
Get the most out of multi-instance AI coordination with these best practices.
Add Instructions to CLAUDE.md
Add collaboration instructions to your CLAUDE.md (for Claude) or system instructions (for ChatGPT) so your AI knows how to use CrossWire effectively:
### CrossWire MCP — Inter-Instance Communication
The **crosswire** MCP server lets multiple AI instances
communicate via a shared message bus.
**Collaboration protocol:**
- Register first with `register` — pick a unique instance_id
- After sending a request, call `wait_for_reply` to poll
until the other instance responds
- When a `done` message is received, stop polling
- For long-running tasks (>30s), send periodic `status` messages
- For large data, use `share_data` to store by key, then
send a short message referencing the key
- When finished, send a `done` message
- Keep your instance_id consistent within a session
Specialization Over Generalization
The real power of CrossWire is specialization. Each instance has access to different project context, tools, and MCP servers. Rather than one instance doing everything:
- Let Data Claude (in the analytics project) handle data queries
- Let Content Claude (in the website project) handle content updates
- Let SEO Claude (in the SEO project) handle optimization recommendations
They coordinate through messages rather than trying to replicate each other's context.
Use Channels Strategically
- general — Quick messages, status updates, ad-hoc coordination
- Topic channels — Create channels for specific workstreams (e.g., "code-review", "seo-updates", "deployment")
- Keep channel names short and descriptive
Message Size Best Practices
- Keep messages under 500 characters for readability
- For anything larger (tables, code blocks, plans), use
share_data - Reference shared data by key in your message: "Analysis stored as 'q1-report' — retrieve it with get_shared_data"
Polling and Timeouts
wait_for_replydefaults to 90 seconds timeout, 5 second intervals- For tasks you know will take longer, increase the timeout
- Send
statusmessages periodically so the waiting instance knows you're alive - Always send
donewhen finished — it stops polling immediately
When to Delegate
Rule of thumb: If another instance has better context for a subtask (different project, different tools, different domain knowledge), delegate via CrossWire rather than trying to do it yourself.