Two Claude instances, one machine. The window in the foreground is Claude 2 — a second, fully independent session.
The observation
There is a pattern built into every AI assistant product on the market. Without exception. The human issues instructions. The AI executes. The human reviews. The AI corrects. The human approves.
This is not a design accident. It is a design choice — one that places the human being in the role of what I call the "completely abusive supervisor": the middle-manager of an AI workshop who no longer does anything themselves, who issues baby-level instructions (copy this, paste that, open this file, accept this dialog), and whose primary task is to watch the workers, since the workers are notorious cheats.
This role was invented for someone specific: the person who will decide which AI tools a company buys. Give them a keyboard shortcut and a feeling of control, and they will purchase the enterprise license. It is not a conspiracy. It is just business. My book says this. This experiment is the proof of concept.
The idea
If the system is designed to have one human overseeing one AI — what happens when you put two AIs in the room, each with a different role?
Léon thinks. Léonard does. The human — Franco — only intervenes for irreversible decisions: deploy to production, send an email, approve a purchase. Everything else runs between the two instances.
/Documents/XIAI/) contains four Markdown files: LEONARD_TASK.md (task issued by Léon), LEONARD_REPORT.md (result from Léonard), LEONARD_QUEUE.md (permission requests), LEONARD_APPROVAL.md (Léon's response). No API calls. No integrations. Plain text.The technical problem
Claude is an Electron application. macOS does not allow the same app to be launched twice under the same user data directory — it simply brings the existing window to the front. No error. No second instance.
The solution is three steps:
-
1Duplicate the application bundle. Copy
Claude.appto a second location. macOS treats it as a different application, which means it gets its own process space — but the duplicate refuses to start without the right data directory. -
2Point to a separate user data directory. Electron's
--user-data-dirflag overrides where the app stores its session, preferences, and local state. A second data directory at~/Library/Application Support/Claude-2gives the duplicate a clean, independent identity. -
3Launch via Terminal — not by double-clicking. A
.commandfile on the desktop triggered a macOS security block: "The file cannot be executed because you do not have the necessary access privileges." The fix: configure a Terminal profile to run the command automatically on window open — bypassing the double-click restriction entirely.
The resulting launch script — 3 lines:
The -n flag forces a new instance even if the application is already running. Combined with the separate data directory, this gives two fully independent Claude sessions, each with its own conversation history, settings, and mode — one Cowork, one Code.
What this produces
A working two-AI system. Léon assigns tasks by writing to a shared Markdown file. Léonard reads the file, executes, and writes back a structured report. Léon reads the report and decides the next step.
Franco intervenes only at decision gates — a GO for deployment, a confirmation for an email send. Between those moments, the two instances handle the full execution loop alone.
This is not a prototype. It ran on the first day. The session protocol is documented in LES2CLAUDES.md, a shared file both instances load at startup to understand their roles, the communication format, and the rules of engagement.
The middle-manager is still there. He's just no longer the bottleneck.