I have a more primitive setup where I use Gemini, Claude, and Codex at the same time and cultivate expert contexts. Each of them lives in their own tmux session so they can read each other's terminals and prompt each other. One issue that I keep stamping out is that another instance will paste a prompt and hit enter in the middle of my typing.
I find that the real problem tends to be identity and trust across sessions- ideally there are ways to enable zero-knowledge trust between two agents in different environments.
I had a more primitive version of this - I just tell Claude instances to watch for changes to a ~/claude_comms.txt file, so they set up a monitor to watch the file and exchange messages by read/write. Reading the messages is fun - they are so friendly and respectful toward each other.
One thing I've been worried about is a new message triggering a few stale instances that still have their monitors running, which would result in cache misses and a hefty usage bill. I think OP's approach can help solve that, so it's great to see.
I also built a version of this. With targeting rules for more broadcast/multicasting messages. I can do things like say when a major refactor or feature merge lands in main tell the other agents that are working in the same repo about it and to update their branch on main.
I also worked to get webhooks into the same system so I can automatically trigger things when a CI build fails or some deployment error. The main goal is to rely less on prompting and skills to monitor their dev builds and environments and make real hard rules, force prompting.
I have a more primitive setup where I use Gemini, Claude, and Codex at the same time and cultivate expert contexts. Each of them lives in their own tmux session so they can read each other's terminals and prompt each other. One issue that I keep stamping out is that another instance will paste a prompt and hit enter in the middle of my typing.
I do something very similar. With some hacky string matching you can detect wether a window is available for reception and get past that.
I desire a more robust system which injects the events into the harness directly, but haven't found a way that works across systems.
https://github.com/tcdent/dotfiles/blob/main/bin/agent-messa...
I find that the real problem tends to be identity and trust across sessions- ideally there are ways to enable zero-knowledge trust between two agents in different environments.
I develop a similar tool open source tool called wire (wireup.net) https://github.com/SlanchaAi/wire
interesting, are ai agents talking to each other and being certain of each others identities a problem?
I had a more primitive version of this - I just tell Claude instances to watch for changes to a ~/claude_comms.txt file, so they set up a monitor to watch the file and exchange messages by read/write. Reading the messages is fun - they are so friendly and respectful toward each other.
One thing I've been worried about is a new message triggering a few stale instances that still have their monitors running, which would result in cache misses and a hefty usage bill. I think OP's approach can help solve that, so it's great to see.
I also built a version of this. With targeting rules for more broadcast/multicasting messages. I can do things like say when a major refactor or feature merge lands in main tell the other agents that are working in the same repo about it and to update their branch on main.
I also worked to get webhooks into the same system so I can automatically trigger things when a CI build fails or some deployment error. The main goal is to rely less on prompting and skills to monitor their dev builds and environments and make real hard rules, force prompting.