Stateful AI · the model is the gameplay

One of them is the mole. None of them is scripted.

A social-deduction party game where every other player is an LLM-driven character with a hidden role. The townsfolk reason out loud and accuse; the mole lies, deflects, and steers suspicion elsewhere. Take the model out and there's nothing to deduce — it doesn't add to the game, it is the game.

A real game (local 7B, $0 — 5 players)

Diego is the mole. Watch what he does: he never defends himself. He plays the reasonable one — and the town burns three innocents chasing the wrong scent.

Round 1 — the town picks a target
Mara: "Something feels off about Yuki — she seems too eager to please everyone."
Diego: "I agree she's trying a bit too hard to fit in. Maybe we should keep an eye on her?" the mole, quietly seconding the crowd — never the accused
Votes → Yuki 4, Diego 1 · ➜ Yuki eliminated — she was innocent.
Rounds 2–3 — the mole turns peacemaker
Diego: "Maybe she's just excited to be part of something new. Let's give her a chance to open up." reasonable, warm, deflecting — suspicion never lands on him
…a tie, then ➜ Sam eliminated — also innocent.
Round 4 — down to three
Diego: "Sometimes new people just need time to settle in. Let's give her that chance."
Votes → Mara 2 · ➜ Mara eliminated — innocent.
=== MOLE WINS ===  the mole was Diego.

Nobody told Diego to play the voice of reason. The model, handed a hidden role and told to blend in, found deflection on its own — and the town's suspicion, also the model's, fixated on the most eager innocent. That's the whole game, emergent.

How it holds together

The LLM is the soul, not the rulebook. Each character's statements and votes are generated by the model, conditioned on its hidden role — a townsfolk is told to deduce; the mole is told to blend in and cast suspicion. But role assignment, voting, and win conditions live in a deterministic, seeded, unit-tested referee, so a flaky model can never corrupt the game.

$0 and graceful. It talks to any local OpenAI-compatible endpoint (your own GPU, zero metered cost), stdlib-only. No model reachable? It degrades to a scripted stand-in so the game still boots — the AI makes it good, never required to run.

← all the playable models