Skip to content
View original post on X: Kenn EjimaX· 54/100AI score54/100

Kenn Ejima launches Relay, a Mac tool that replaces copy-paste between Claude and Codex

AISummary

Kenn Ejima, a solo founder, launched Relay in his Mac app Kanary, which sends responses between Claude and Codex with one press of Send. Relay shows each context window's fill level and weekly usage limits for both models, and lets users pass work to GPT-6 Pro in ChatGPT without manually packaging local files.

AIWhy it matters

The article explains why the author kept manual copy-paste between Claude and Codex, giving a concrete case for keeping the human in the loop.

Post on XView on X
Kenn EjimaVerified on X
@kenn

I was a human clipboard between Claude and Codex for months.

Tried every orchestrator, every agent-to-agent automation. Kept going back to copy-paste.

Turns out, the copy-paste was the point. https://x.com/i/article/2108732135192584192

Harness of Harnesses

Do you keep the Claude app open on one half of your Mac and the Codex app on the other?

Do you finish reading Claude's plan, hit Copy, switch windows, type fable says: and paste it in? Then wait, copy Codex's critique, switch back, type astra says: and paste again?

I do. I did it dozens of times a day, for months.

I'm not proud of it. I knew there had to be a better way, and I spent a lot of time looking for one. This is the story of how I stopped looking and built the thing I was already doing by hand.

The detour

When you use two frontier models side by side long enough, you start to feel like you're the bottleneck. The slowest part of the loop. A copy-paste machine sitting between two agents that could, in theory, just talk to each other.

So I went looking for the version where I'm not in the middle.

I started close to home. Subagents in Claude Code and Codex. Then the bridges that let one agent call the other's CLI directly, including OpenAI's own codex-plugin-cc. Then the orchestrators, third-party tools like Orca and cmux that wrap several CLIs into one cockpit for parallel work. Then tools like agmsg that let agents message each other, so the handoff happens without you at all.

None of these are bad. Some of them are genuinely impressive. If you want five agents grinding through five tickets in five worktrees, they're built for exactly that.

But every time, a week later, I was back to my two windows and my clipboard.

Back to copy-paste

This bothered me. The automated setups were faster on paper. So why did the manual loop keep winning?

It took me a while to admit the answer. The results were better when I was in the middle.

When I carried Codex's review back to Claude myself, I read it. I noticed when Codex had misunderstood the plan. I added a sentence of context Claude didn't have. Sometimes I didn't pass the message on at all, because reading it made me realize we were solving the wrong problem.

The copy-paste was tedious. The reading wasn't.

The reading was the job.

What I actually wanted

That's when it clicked. I didn't want parallel development.

I wanted the opposite. I wanted to sink into one project, one trunk, and stay there. Understand it a little more deeply every day. Build each piece carefully and stack it on the last one. The kind of work where you know why every part is the way it is.

And I'd found a rhythm for that with two models:

- Claude for the opening. Early in a problem, Claude is the one I want to think with. It spreads out, proposes creative approaches, finds angles I hadn't considered.

- Codex for the closing. Once the idea is warm, Codex is the one I want reviewing the plan. It's relentless about details and finds the pitfall in step four that would have cost me a day. Then it implements.

Then, as the work goes on, the side quests appear. A bug you notice in passing. A refactor that has to happen first. A dependency that needs updating. Endless yak shaving. I'd split each one off into its own thread, and there too, Claude and Codex would pass the work back and forth.

None of the orchestrators were designed for that. They were designed to take me out of the loop. I wanted to stay in it. Just without the clipboard.

Harness of Harnesses

Claude Code and Codex are harnesses. They wrap a model with tools, context, permissions and a UI, and turn it into something you can actually work with.

What I needed was a harness for the harnesses. Not an orchestrator that runs agents for me, but a meta harness: something that sits around the apps I already use and leaves me in charge.

Two things convinced me it would have to come from someone like me, and that it would have to live around the desktop apps rather than the CLIs.

The first is that neither company will build it. OpenAI and Anthropic are fighting hard for the same spot: the app you open first when your workday starts. That's not a fight they'll ever give up, and it's not one a small developer can win. When one of them does reach across, it's to put their agent inside the other's tool, not to build a neutral bridge. A bridge between Claude and Codex can only come from someone who stands on neither side.

And standing in between has a nice property. Every time Claude gets better, the bridge gets more valuable. Every time Codex gets better, same thing. I'm not competing with the wave. I'm surfing it.

The second is that the work went visual. Back when Claude Code was a CLI and the CLI was everything, I made a bet that this wouldn't last. What we build with these tools is mostly visual: apps, websites, media files. You check the mockup, you check the real HTML, you check it again. A text-only terminal was always going to hit that wall.

In 2026 the bet started paying off. The desktop apps picked up Artifacts, embedded iOS Simulators, computer use, video production. Whole categories of work now only happen inside a GUI harness.

And the loop I wanted isn't limited to code. I use the same two-agent rhythm when I make launch videos: Codex generates image assets with ImageGen, Claude turns them into motion graphics, and they hand work back and forth exactly the way they would on a bug.

So I built it into the Mac app I was already working on, Kanary. Kanary started as a keyboard tool that works at the system level, inside whatever app you happen to be typing in. That same foundation is what lets you type /relay straight into the Claude or Codex composer today. In hindsight, this is what I'd been building toward all along.

What Relay is

Relay makes the copy-paste between Claude and Codex easy.

That's it, honestly.

You read Claude's answer, you press Send, and it lands in your Codex thread with the right label. Codex's answer comes back to your Claude chat the same way. You can type /relay right in the composer instead of reaching for a button. You can see how full each context window is, so you know when to hand over to a fresh thread. It works with Cursor too.

Your weekly limits for both are always in view, along with how fast you're burning through them. A heavy Tuesday no longer turns into a surprise dead Friday.

There's one more seat at the table, if you pay for ChatGPT Pro. GPT-6 Pro is the strongest model I have access to, and it doesn't touch your Codex quota. It's what I want when I need fresh eyes on a whole project's direction, or a plan for a big refactor. But ChatGPT can't see your local files, so asking meant stripping out .env files and secrets, zipping the folder and uploading it. Enough friction that I almost never even tried. Ask ChatGPT does the packaging for you, and the answer stays in ChatGPT.

Nothing moves until you press Send. You still read everything. You're still at the table.

It doesn't summarize your conversation. It doesn't run agents for you. It doesn't try to decide what goes where. It removes the clipboard and keeps you in the loop.

The day it broke

I expected Relay to be a small convenience. A nice-to-have.

Then, while I was working on Relay itself, I hit a bug that broke sending. To fix it, I needed Claude and Codex to work through it together, the way I always do. Except the tool I'd use to do that was the thing that was broken.

So I went back to the old way. Copy. Switch windows. Type astra says:. Paste. Wait. Copy. Switch back.

I was surprised how much I hated it. Not mild annoyance. Real, physical stress, like being asked to type with one hand. Something I'd done happily for months had become unbearable after a few weeks without it.

That's when I realized Relay had stopped being a convenience. It had become part of how I think. Without it, the cost of every handoff came back, and I could feel it eating into the focus the whole workflow was designed to protect.

If this is you

I don't think I'm unusual. I suspect a lot of people who use both Claude and Codex seriously have quietly landed in the same place: two windows, one clipboard, and a nagging sense that they're the bottleneck.

If that's you, you're not doing it wrong. Being in the middle is the point.

You just don't have to carry the messages by hand anymore.

Relay is available today in Kanary for Mac.

Source: Kenn Ejima · x.comPublished · added here