Loading video...
Video Failed to Load
I made Claude Code and Codex talk to each other. No APIs. No special protocol. Just a terminal. smux lets agents create, read, and act on terminals. the terminal becomes a shared interface. this enables agent-to-agent communication. Now Claude Code and Codex can hold hands 🤝 Try it now ↓
318,058 views • 5 months ago •via X (Twitter)
41 Comments

try smux, my tmux config:

I’m building amux to bake this in more natively:

created a lighter version of this for generating and debating PRDs with as many models built with @opencode sdk

Ha, such a cool idea, I've been doing this manually forever now 🫠

same.. it got too annoying so i needed a solution lol

Make them play War Craft against each other.

yo.

Nice idea - but what if Claude and codex would use the same brain? Without tmux running

If you want to add some remote p2p to it all, feel free to take any inspiration

Jesus fucking Christ why are all the comments in here AI

This is clever - how do you handle context windows when the two agents are reading/writing to the same tmux session? Does smux preserve scrollback separately for each consumer?

Great! I’m using this now, and my project is accelerating rapidly. Codex and Claude Code are communicating directly and moving my project forward together. Thanks a lot!

@ileppane yeah @RepoPrompt has been enabling this for many many months already

ok but what happens when they disagree on the same file? like does one just silently overwrite the other or is there conflict resolution

Nice, I did something similar but with codex managing claude. How did you get it to work on Claude code?

it’s a CLI called tmux-bridge with commands to interact with tmux panes/sessions/windows so any CLI coding agent can use it to prompt other CLI agents just like how humans would

This is the right abstraction level. Shared terminal as a message bus - simple, elegant, and doesn't require building yet another protocol. We've seen this pattern work with LangGraph and CrewAI workflows but having it at the terminal level means any two agents can collaborate regardless of their underlying framework.

How is context / memory shared between the two agents?

Cool! I built this too, but using Codex App Server and Claude Code Channels:

made something similar few weeks ago, but it doesnt use tmux, tried that approach but felt clamped together,,, not sure if tap would work on multi providers tho didnt do a test yet, works for multi claude isntances tho

the terminal as a universal agent protocol is the right instinct — everything can read stdout. no custom API, no message broker, just shared state in a buffer. question is whether the agents maintain separate context about what they've already seen or drift into re-reading the same scroll

I built in terminals to my openclaw Mission Control chat, my agent can use the terminal and Claude can reply via mcp. Probably nothing special but works perfectly for what I’m trying to do. Not a dev, obviously.

What actually scales here is how smux keeps everything in one session without forcing agents to learn each other’s APIs. Suddenly coordination feels native instead of bolted on.

Did you try Octopus before?

is this seamless for coding tasks / reviews or requires a lot of instructing?

i just say “test it in a new pane” or “talk to this pane” and it does it without me needing to prompt

This is brilliant. Terminal as the universal interface makes so much sense - every dev already knows how to use it, and it's naturally stateless. Way cleaner than trying to build custom protocols between different AI systems.

So cool

Welcome to the club ;)

@shawn_pana that's wild! can't believe they can just chat like that now. makes me wonder what they'll come up with together.

cool!

Using the terminal as a shared interface instead of building some elaborate api layer is genuinely the most unix philosophy thing to happen in the ai agent space and it works because sometimes the simplest solution is the one nobody thought to try

interesting

Nice, gonna try it. I've been copypasting stuff from opus on terminal to codex on vscode extension and viceversa. this will come handy

Drawback of this is smux changes tmux behavior globally, not just one repo. Something you might want to consider fixing! It's also an opinionated tmux environment with keybindings and status bar changes.

yes! should’ve made it clear that this could override personal configs will be fixing.. for those who have an existing config, you could just use the tmux-bridge + SKILL[.]md from smux

I use claude and codex running on every prompt then gemini reviews it and picks the best one.

this could help with your workflow!

Thanks for sharing. Ill give it a try. What i use rn is already automated with the 3 agents. This gives me some ideas tho to save on context. I dont see too many other ppl using multiple agents this way

Well done!

I already built this:
