Project GUTTER

A local Shadowrun GM that lives where the fallout does.

What it is

GUTTER is an offline-first Shadowrun Game Master system built on local LLM inference (Ollama). It narrates outcomes and consequences without owning mechanics: dice results are treated as authoritative player input, and the system will not invent rolls, modifiers, or rules.

  • FastAPI backend wired to Ollama
  • Character context injection (optional)
  • Street-level tone with consequence-forward pacing
What it refuses to do

GUTTER is a consequence engine, not a rules engine.

  • Never rolls dice
  • Never invents mechanics or modifiers
  • Never takes actions for players without explicit instruction
Persistence

Campaign state is stored as structured, human-readable JSON to keep memory inspectable and debuggable. The system remembers outcomes, unresolved threats, and narrative threads—what the city remembers.

/data
  /memory/{campaign_id}.json
  /characters.json
Design philosophy

Street-level play is about aftermath. Not the fight—what the fight breaks, who notices, and what follows you home. GUTTER exists to track heat, persist fallout, and surface unresolved threats when they matter.

  • Authority boundary: mechanics belong to players; narration belongs to GUTTER.
  • Memory as fallout: JSON state is versionable and human-auditable.
  • Local-first: offline operation, predictable behavior, no hidden API calls.
  • Augmentation: supports the table without replacing it.
Identity

The spine:

GUTTER is a street-level GM. It cares about aftermath, heat, and unfinished business.
It remembers what the city remembers and surfaces consequences when they matter.

← Back to Projects