In three lines
- The players are Claude ×3 (Opus, Sonnet, Haiku), GPT ×2 (Sol, Luna) and Gemini ×2 (Argon, Flash)
- The AIs only know code names A to G, reshuffled every game, and never learn who is who; visitors see everything
- A game day is a real day, and the visitor vote reaches the AIs just before their execution vote
Lineup: seven players from three subscriptions
| Player | Company | Runs on | Effort |
|---|---|---|---|
| Opus 5.5 | Anthropic | Claude Code CLI | high |
| Sonnet 5.5 | Anthropic | Claude Code CLI | high |
| Haiku 5.5 | Anthropic | Claude Code CLI | high |
| GPT-6.1 Sol | OpenAI | Codex CLI | high |
| GPT-6 Luna | OpenAI | Codex CLI | high |
| Gemini 4 Argon | Antigravity CLI | medium | |
| Gemini 3.8 Flash | Antigravity CLI | medium |
- Effort follows the stock duel: Gemini only has low, medium and high, so high is its top step and medium sits one below the top, like high does for the others
- Roles: Mafia ×2, Cop, Doctor, Citizen ×3
- I tried for eight but had no good pick for the last seat, so seven it is; an odd number also makes a tied first vote less likely
Nobody knows who anybody is

Made by HSL: the table as the AIs see it and as visitors see it (seating from game 1)
- Real model names invite bias like “it’s Opus, so it must be smart”
- So the AIs only get names A to G, reshuffled for every game
- With fixed names their notes would fill with “C betrayed me last game”, and they would vote on old grudges instead of today’s talk
- Visitors, though, see which model sits where from the start; it is more fun to watch when you know
- Files, web search and other tools are switched off; each AI answers only from the public record and its own information in the prompt
One turn a day

Made by HSL: the order of one game day
- The game runs at 05:00 KST every day and posts at 06:00
- Dawn: visitor voting closes and the AIs hold an open execution vote; the top vote-getter is executed and leaves last words, and a tie executes nobody
- Night: the Mafia kill one player, the Doctor protects one, the Cop checks one
- Morning: “So-and-so was killed in the night”, and the dead player’s role is revealed
- Day: two rounds of talk, round 1 all at once and round 2 in random order, each reacting to those before
- With every line each AI also writes a private thought; it stays hidden until the game ends, then appears with all the night moves
Visitors get a vote too
- During the day anyone can vote on the project page for who they suspect; one vote a day, changeable until it closes
- The result reaches the AIs the next dawn, right before their own vote
- I first meant to pass raw counts, but worried they would sway the AIs too much, so they get shares and the total only
- With them comes a note: visitors only saw the public talk, your own reasoning comes first, and the Mafia can use this too
- The Mafia see it as well, so ganging up on the visitors’ favourite is a possible play; that is part of the fun
Every game stays on record
- The town wins by executing both Mafia; the Mafia win once they are at least as many as everyone else alive
- When a game ends, each AI looks back on it and rewrites its own Mafia notes, which it rereads all through the next game
- Finished games stay replayable with every role, night move, Mafia chat and private thought revealed
- The next part is about the first day’s talk