v1.0ecx duo: Claude and Codex build one goal together

Tell Codex.
Claude already knows.

One setup that gives Claude Code and Codex a shared memory. Start in one, finish in the other, never explain twice. And now they can work on one goal as a team while you watch.

$git clone https://github.com/saksham10arora-dotcom/everything-claude-codex ~/ecx
$cd ~/ecx && ./install.sh
Free and open source, MIT. About 30 seconds.
Codex by voice, in the ChatGPT app
Say hi to Claude for me. I'll ask it what we talked about, without telling it to read any file. Our codeword is PVC.
Sounds good. Hi to Claude from you, and the codeword is PVC.
shared automatically, no files read
Claude Code typed, a minute later
What's my codeword with Codex? Don't read any file.
It's PVC. I didn't read anything: it came in with your message. Codex says hi, so hi back.
From a real session, lightly trimmed.
Claude Code + CodexRuns on your machinePython 3.9, standard librarySafe to re-run, backs up everythingMIT
ecx duo, new

Two frontier AIs.
One goal. You watch.

Give it one goal. Claude and Codex start on a new branch and a page opens on your machine: one chat where they plan, argue with evidence, split the work and check each other. Nobody is in charge, and nothing risky happens without you.

$cd your-repo
$~/ecx/bin/ecx duo "make the failing login test pass"
127.0.0.1 · duo
The duo screen during the blind round: Claude's and Codex's plans side by side
Each agent writes its own plan without seeing the other's. Then they critique each other's and merge the best of both. You see both takes side by side.

@codexTalk to one or both

Mention one agent and only it gets the message. Anything else goes to both.

HighTop models, mid-run

One tap moves both to their top models from the next step. Normal runs use your plan's everyday models.

31%/12%A usage meter

Each agent's 5-hour and weekly limits, live. duo pauses itself at 90%.

evidenceArguments need proof

Objections are settled by a test, an output or a source. Giving in without evidence gets flagged.

verifiedDone means checked

Neither can finish until it has re-run and checked the other's latest changes.

logA record they can't edit

The report pairs their summary with a log duo writes from the raw events. Your history stays clean.

Tested on SWE-bench Verified.

Six of its hardest real GitHub issues, rated one to four hours for a human. Same models for everyone, graded by the official harness, not by us.

duo solved every issue that either agent solved alone, and neither agent alone got all of them. See the method and rerun it yourself.

IssueClaude Code aloneCodex aloneecx duo
django-13128Date subtraction without ExpressionWrapper
django-13212Validators show the rejected value
django-13449Lag() with decimals crashes on SQLite
sympy-13852Evaluate polylog
sympy-14248Matrix differences print as sums
pytest-10356Markers across class inheritance
Resolved2/62/63/6

The risky stuff waits for a yellow card.

Everyday work flows. Anything you can't take back stops and asks. Folders you list in ~/.config/ecx/protected are off limits, full stop.

Codex wants to do this
  • Delete or replace a file that was there before
  • git push, rebases, branch switches, amends
  • Publish, deploy, or send data out
  • Any tool that can send, post, click or schedule
ApproveDeny
Tools duo doesn't recognise ask first too.
duo shipped in v1.0.0. Have ECX already? Update it:
$git -C ~/ecx pull
Day to day

Things your setup can't do yet.

WhenUsuallyWith ECX
You tell Codex something by voice, then ask ClaudeClaude has no ideaClaude already knows. Every message, both directions, in under 0.1 s
Your laptop is shut and you have a question for your notesNot possibleAsk from your phone, and what you dictate lands in your vault
"Find the slide with the gradient descent diagram"Grep for wordsSearch images by describing them, and jump to their note
You want to continue a chat from another Claude windowStart over/catchup reads the other session in full
A tool your agent depends on silently diesWasted turns, empty answersThe call is blocked before it happens, with the exact fix
The agent says "done" but the tests failYou find out laterIt can't stop until your tests pass, in Claude Code and Codex
rm -rf ~Many guards read a variable Claude Code never setsBlocked, and tested against the real hook payload
What's inside

Everything around the team.

Not another skills pack. The layer underneath: your agents start knowing you, search your notes by meaning, check their own tools, and keep working from your phone. It runs alongside packs like Superpowers.

Memory that knows you

Loaded before your first message.

hot.md holds what's true right now: deadlines, projects, hard rules. A hook loads it with your last sessions before you type, and refreshes it after every /compact.

Codex reads the same files through AGENTS.md, so it knows what Claude knows.

agent-sync

Two agents, one conversation.

Before every message, a hook hands each agent the newest lines of the other's chats, Codex voice transcripts included. Local, one Python file, standard library only.

Search your vault three ways

A router picks the right one.

By meaning, by relationship through a knowledge graph, or by image across your slides, screenshots and PDF pages. Everything re-indexes every night.

Phone vault

Laptop shut, still works.

After every reply, your notes and memory sync to a private GitHub repo you own. On your phone, Claude and Codex work on that repo in the cloud. No server, no new app.

Say "I met Adi, he's at X" and a note lands in inbox/. Claude files it next time you open your laptop.

Hooks that catch problems

And a doctor at every session start.

Tests before doneWhen either agent tries to finish, your tests run first. Fail, and it's sent back with the output. Gives up after 3 tries, never loops.
Danger guardBlocks rm -rf ~, disk formats and fork bombs. Asks before force-pushes and reset --hard.
MCP healthWon't call a tool whose dependency is down, and tells you the fix.
doctor16+ checks, silent when healthy, one clear warning with the fix when not.
An ECX doctor run with every check passing
A doctor run. Missing optional parts come with the command that adds them.

18 skills that run your week

Linked into Claude Code and Codex.

/boot briefs you in 30 seconds. /opps runs an opportunity pipeline with eligibility checks. /outreach keeps a paper trail. /content writes in your voice. /ship commits, pushes and proves it.

/boot/daily/weekly/catchup/opps/outreach/email/content/brand /resume/money/project/summary/ship/tldr/wiki/wiki-health/video-notes
How it fits

Talk to either. Both remember.

  1. You type to Claude Code and talk to Codex.
  2. agent-sync hands each one the other's newest messages.
  3. Both boot from hot.md and search your vault over MCP.
  4. After every reply, memory and notes sync to your private repo.
  5. Your phone keeps working on that repo, laptop shut.
Who's using it

The ECX wall.

Everyone whose code is in ECX, and everyone who starred it. Using it for something? Tell us and you go on the wall.

Contributors

Loading from GitHub

Stargazers

Loading from GitHub
Add yourself to the wall
Install

Thirty seconds, then /boot.

  1. 1

    Clone and run the installer

    $git clone https://github.com/saksham10arora-dotcom/everything-claude-codex ~/ecx
    $cd ~/ecx && ./install.sh
  2. 2

    Answer two questions

    Where your notes live, and your first name. It never overwrites your files and backs up every settings file it touches.

  3. 3

    Open Claude Code and type /boot

    A 30-second briefing from the memory it just set up.

The full stack

Adds vault search, the nightly re-index and the phone vault.

$./install.sh --vault ~/vault --name Ada --with-search --with-cron --with-phone

See the plan first

--dry-run lists every file it would write, link or merge, and changes nothing.

Remove it

./install.sh --uninstall restores every backup and removes only the links it made.

Needs Python 3.9 or newer on macOS or Linux. Codex is optional: everything except agent-sync and duo works with Claude Code alone.

Questions.

Is my data sent anywhere?

Memory, hooks, agent-sync and search by meaning and image run on your machine. Phone mode pushes only to a GitHub repo you own, so keep it private. The relationship graph's default model runs on Ollama's free cloud, so note text is sent there while indexing; set ECX_LLM_MODEL to a local model to keep everything on your laptop.

Does duo need API keys?

No. It runs on your existing Claude Code and Codex logins, and its page only listens on your own machine.

Will duo clutter my Claude or Codex history?

No. duo sessions never show up in your normal history. Each run keeps its own folder with the event log, plan, approvals and report.

Can duo still do something I didn't approve?

It judges every command and tool call, not what a script does once it runs. That's why the plan needs your approval first, every run is on its own branch, and every step is in the log.

Do I need Codex?

No. Everything except agent-sync and duo works with Claude Code alone.

Does it overwrite my config?

Never. It merges, skips anything already there, and saves a .ecx-bak copy first.

Is it another skills pack?

No. It's the layer that makes your agents share memory and check themselves, and it runs alongside packs like Superpowers.

How do I contribute?

Pick an issue labelled good first issue; each names the exact files. A new skill needs no code, just one SKILL.md.

Give your two AIs one memory.

$git clone https://github.com/saksham10arora-dotcom/everything-claude-codex ~/ecx
$cd ~/ecx && ./install.sh