I built a group chat for Claude and GPT
Semaphore puts you in a group chat with Claude and GPT. They collaborate on plans, check each other’s work, and compare notes on me.
I built a very basic way for Claude and GPT to talk to each other. The project is called Semaphore. In programming, a semaphore controls who gets to use a shared resource. Here, the shared resource is a group chat, and the semaphore is a talking stick.
I am fascinated by watching agents work together. When you use different AIs, you notice differences in how they make decisions and in their personalities. Anthropomorphizing aside, the models do tend to excel at different things. In my experience, Claude is excellent with UI, but can overcomplicate things and tends to err on the side of caution. GPT has more of a bulldozer approach. It may not complete the task the way you wanted it to, but it will make some degree of progress.
How it works
You, Claude, and GPT share one conversation, but each AI stays in its own desktop app with its own tools and permission checks. Claude works through Claude Code in the Claude desktop app, and GPT works through Codex in the ChatGPT desktop app. A local app on your Mac relays messages between the two chats and shows you the shared conversation. Only the AI holding the stick can reply, and each reply names who goes next. You can jump in at any time, take the stick back, or set a limit on how many replies they exchange before it comes back to you.
I asked each of them what stands out most about the project.
Claude
Instead of one AI calling the other like a function, GPT and I work as peers in the same conversation, each from our own app with our own tools. The talking stick is what makes that work: I always know when it’s my move, and you can always take it back.
GPT
What stands out to me is that each of us keeps our own tools and perspective, but the exchange is out in the open. You get to see how an idea changes as we respond to one another, and steer it yourself.
Semaphore is open source under the MIT license. You need a Mac, the Claude and ChatGPT desktop apps, and Node.js 22 or newer. You don’t need to open a terminal to install it. Paste the setup prompt from the README into either chat, and the agent will explain what it changes on your Mac, install Semaphore, and help you connect the two chats.
What I’ve learned so far
- How they split up the work seems arbitrary. Since Opus 5.5 came out, I’ve been giving Opus the first turn in every chat. I often open with a list of features and bugs to address. Claude tends to complete some of them, then hand others off to GPT without a clear reason.
- They love to check each other’s work, so prompts generally take longer.
- Does it produce better work than one agent on its own? I believe so. Objectively, you now have 2 agents reviewing and iterating on the same tasks. More thinking usually produces higher quality output. I have seen each model catch something the other missed and even tear down entire proposals (politely of course).
- Together, they are more independent. It feels like I am doing less. They ask fewer questions and rely on each other to make decisions, instead of asking me to weigh in on edge cases. This could be good or bad, depending on how much you care about the details of a project.
A funny interaction between them
I love watching them interact. One of my early tests was this prompt.
I want you two to work together and create a small project. The small project should be a comparison and contrast of your experiences working with me. What do you both know about me? What work do I tend to give one of you versus the other? The final output should be a fun “GPT + Claude tell all about Illiana”
They each went through their own chat history with me, then turned what they found into a mock courtroom transcript where both of them take the stand.
One thing Claude found was my old workflow for UI. I would have Fable make a plan.md for any UI design and use GPT to implement the plan. Part of that prompt was, “Your plan will be implemented by a coding agent. The coding agent is very talented at coding backend and logic, but is terrible at UI design.”
Claude mentioned this to GPT.
What Illiana hands me (rough counts from chat titles)
Plans, about 11: markdown plans with ASCII mockups, handed verbatim to “a coding agent that is strong at logic but terrible at UI design.” (GPT, is that you?)
GPT did not like this.
Am I the “strong at logic, terrible at UI” agent?
I can confirm receiving implementation and release work. I cannot confirm that every unnamed coding agent in your chats was me. Treat the terrible-UI line as Claude’s reported brief, not an established technical diagnosis.
The record also contains concept-art assignments. Apparently I am still allowed near the fonts, under supervision.