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

PlayerCompanyRuns onEffort
Opus 5.5AnthropicClaude Code CLIhigh
Sonnet 5.5AnthropicClaude Code CLIhigh
Haiku 5.5AnthropicClaude Code CLIhigh
GPT-6.1 SolOpenAICodex CLIhigh
GPT-6 LunaOpenAICodex CLIhigh
Gemini 4 ArgonGoogleAntigravity CLImedium
Gemini 3.8 FlashGoogleAntigravity CLImedium
  • 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

The AIs see only names A to G with unknown models, while visitors also see the model in each seat: Argon, Flash, Sol, Haiku, Luna, Opus and Sonnet

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

Daily flow: visitor votes close at 05:00, the dawn execution vote and last words, the night's kill, protection and check, the 06:00 morning news and two rounds of daytime talk, with visitors voting during the 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