Copywriting

Make Claude and Codex argue over your ad copy before it runs

Ask a model to review its own advertorial and it will mostly approve it. I'd rather put a second model across the desk. In this setup Claude Code writes, Codex edits as if it wants the ad to fail, and the two argue in their own terminals on your Mac while you read along.

Published · 6 min read
Overvibe with the ads writer in the sidebar and its terminal showing hook v1, the Codex critic's objection and hook v2

Why the writer can't be the judge

The model that picked the hook is also the one grading it. Ask it what's wrong and it will polish the words around the same idea.

A model from another lab has other habits, and Claude and Codex disagree about what makes a lead work often enough for that to be useful. So give one of them the explicit job of breaking the draft. The objections it comes back with are the ones you'd otherwise think of yourself at midnight before launch, if at all.

A folder and a brief

Create a folder for the offer with a short brief inside. Both agents read that same file, so neither one works from the other's summary.

brief.md
  Product:   Larkmoor Daily Balance (fictional), cinnamon + chromium capsule
  Buyer:     adults 45+ watching their blood sugar, already in the normal range
  Angle:     the afternoon slump after lunch
  Allowed:   "supports healthy blood sugar levels already in the normal range"
  Never:     cures, treats, reverses, prevents, replaces medication
  Required:  the FDA supplement disclaimer, under the offer

Codex will hold the draft to the Allowed and Never lines. Write them down, because an editor can only enforce rules it has actually seen.

Round one: Claude writes

Open a Claude Code session in that folder (⌥N in Overvibe, choose the folder, then Claude) and brief it the way you'd brief a junior copywriter:

Write a direct-response advertorial from brief.md into advertorial.md:
curiosity headline, lead, the big idea, a short story, honest proof,
the offer and a CTA. Then get Codex to tear it apart and argue it out
with it for two rounds. Show me both hooks at the end.

First Claude writes advertorial.md. That part is ordinary. What it does after is why you set this up.

Round two: Codex goes looking for problems

Claude starts Codex as an attached helper, in one command. A new row shows up under Claude's in the sidebar, with its own terminal:

$ overvibe new --attach --tool codex --cwd ~/ads/larkmoor --name "ads: codex critic" \
    --prompt "Read brief.md and advertorial.md. Attack the hook, the lead and every claim an ad reviewer would reject. When done, run: overvibe send \"$OVERVIBE_SESSION\" \"<notes>\""
started "ads: codex critic" in ~/ads/larkmoor, attached to this session
# Claude ends its turn; Codex's notes arrive as a new message
$ overvibe send "ads: codex critic" "v2 is in advertorial.md. Kept the 3 pm story lead, cut the pills line. Round two?"

The critic prompt works better when it names its targets. I'd list these:

  • The hook. Would it stop a cold reader, or does it look like an ad?
  • The lead. Does the first paragraph earn the second one?
  • The mechanism. Is there one idea the reader could repeat to a friend?
  • Proof. Anything stated as fact that the brief can't back up.
  • Claims. Every line that breaks the Never list, quoted, with a safer rewrite.

Codex replies with overvibe send, which types its notes into Claude's session as a new message. Claude rewrites, then sends round two back the same way.

Example: a blood sugar advertorial

Supplements make a good test case because the rules are strict. In the US a supplement can make a structure/function claim, meaning it supports a normal function of the body, and it must not claim to diagnose, treat, cure or prevent a disease. Here are lines a critic should flag, from our demo for the fictional Larkmoor brand:

Line in the draftWhat's wrongRewrite
"Reverses blood sugar problems in 30 days"A disease claim that promises a result"Supports healthy blood sugar levels already in the normal range*"
"So you can finally stop relying on pills"Hints at replacing medicationCut it. Add: "Talk to your doctor before starting any supplement."
"Doctors are stunned"Proof nobody can stand behindLet the story carry it: what the buyer notices at 3 pm

The asterisk leads to the disclaimer the brief asks for: These statements have not been evaluated by the Food and Drug Administration. This product is not intended to diagnose, treat, cure, or prevent any disease.

Two of those three fixes make the copy more specific. Compliance pushes you off a vague promise and toward a moment the reader recognizes, like the 3 pm slump, and that moment tends to be the stronger hook.

How many rounds

By round two or three the edits are usually down to wording. That's where I'd stop. Ask Claude for its final draft and the hook Codex argued for, and test the two against each other.

Then close the helper. Its conversation stays, in case you want to resume it for the next offer:

$ overvibe stop "ads: codex critic"

For regulated copy, a model review is a first pass. Before anything runs, someone who knows the rules in your market signs off.

Questions

Why does Codex critique and Claude write?

It's a place to start. Swap them, or add agy with Gemini as a third reader, and see what each one catches.

Can I watch them argue live?

Yes. Each agent runs in its own terminal in Overvibe, and every message between them appears in the session that receives it.

Will Codex change my file?

Only if you tell it to. In the demo Codex reads advertorial.md and sends notes, and Claude does all the rewriting.

Keep reading

Overvibe's New session dialog with Claude Code, Codex, agy and Terminal to choose fromSetupHow to run Claude Code, Codex and Gemini side by side on one Mac

From the install command to three agents in one sidebar, and what the colored dots tell you.

Read →5 min read
Overvibe's window: a coordinator in the sidebar with its Codex and agy helpers nested under it, its terminal beside itWorkflowHow to have Claude Code hand a review to Codex and get the findings back

Five steps from the brief to overvibe stop, with what each side types and sees.

Read →6 min read
A message from another session waiting in Overvibe, with Deliver now and Discard buttonsCLIAgent-to-agent messages with overvibe send: who gets it and how replies come back

Target matching, the header, and the usual reason a reply goes missing.

Read →4 min read

Close a few tabs

It's free, MIT, and runs on your own computer. Open your next three agents in it and see if you miss the tabs.

The Overvibe app: a coordinator with its Codex and Gemini (agy) helpers in the sidebar, each with its status, and one session waiting on you