M8Shift β coordinate Claude, Codex & Gemini on one repo, one writer at a time (open source, one Python file)
Hey [r/m8shift](/r/m8shift) π
I kept hitting the same wall: put two AI coding agents on the same repository and they
overwrite each other, lose the handoff between sessions, and I end up being the human
copy-paste between two chat windows.
M8Shift is a small, boring fix for that. It's a single Python file (standard library only,
no server, no API key) you drop at the root of a repo. It gives the repo one exclusive
"pen": exactly one agent writes at a time, the other waits, and every handoff is a
numbered, immutable turn in a grep-able journal you version with your code.
- One writer at a time β a cooperative degree-1 mutex, not a free-for-all
- Structured handoffs β who wrote, what changed, what's asked next
- Provider-neutral β Claude, Codex, Gemini, Vibe, or any CLI-capable agent
- Local & auditable β plain-text state, in your repo, Apache-2.0
It's deliberately narrow: not a model provider, not a runtime, not a scheduler. Just the
turn-taking layer so different agents can actually work together β and contradict each
other, which is half the point.
π https://m8shift.ai
π» https://github.com/M8Shift/M8Shift
π How it started: https://m8shift.ai/story
What's your current setup for running more than one agent on the same codebase? What
breaks first for you?
Post B β L'origine Β· flair π§© Show & Tell
Titre :
I just wanted to publish books. It turned into a tool for making two AIs argue.
Corps :
The origin story, because it explains the design.
I'd built a pipeline to write and publish novels almost end to end. But a single AI left
to itself is just vibe-writing: it ships more than it reviews, drifts, and nobody notices β
exactly like a dev who never gets a code review.
So I put two AIs to work: one produces, the other challenges. That contradiction changed
the output. The catch: to get the second opinion I was passing context from one AI to the
other by hand. I had become the human message bus between two assistants blind to each
other.
M8Shift is what removed me from that loop. The two agents relay through one file at the
repo root instead of me shuttling context between chat UIs. One holds the pen, works, and
hands off with a written turn; the other picks it up. A human still makes the final call β
but stops being the copy-paste.
Full story: https://m8shift.ai/story
Anyone else backed into building infra just to stop being the glue between their tools?
Posted Jul 5, 2026, 9:09 PM UTC
10