DnD Campaign Manager
An AI-assisted D&D campaign world manager. Generate context-aware NPCs, spin up side quests, and log session notes — everything builds on what came before, so your world compounds over time.
There's no spreadsheet to maintain, no wiki to update after every session. Just describe what you need:
- Generate an NPC — "I need a corrupt harbormaster who's been quietly skimming from Ledger shipments" — and get a full 5e stat block with cross-references to existing characters
- Generate a side quest — "Something that draws the party toward the south quarter warehouse" — woven from NPCs already in the roster
- Log a session — Dump raw notes after the game, and the system updates NPC records, tracks continuity, and saves a clean summary
- View the roster — Get a world state snapshot: who's alive, who's in custody, what threads are open
Every generation reads the current campaign state first. NPCs know about each other. Quests use characters who already exist. The world stays consistent.

Setup
1. Download Friday
- Go to hellofriday.ai and download the macOS installer
- Open the DMG and drag Friday to your Applications folder
- Launch Friday and complete the initial setup
2. Import the workspace
- Open Friday and go to Discover Spaces
- Find this workspace and click it
- Click Add Space
Start a chat and share your session notes to seed your campaign history, or jump straight to Generate NPC and Generate Quest to start populating the world.
How it works

| Component | Role |
|---|---|
npc-generator agent |
Reads roster memory, generates a new NPC with full 5e stat block and campaign cross-references |
quest-generator agent |
Reads NPC roster, generates a side quest using real campaign characters |
roster-viewer agent |
Produces a world state summary — NPCs, quests, open threads |
session-logger agent |
Processes freeform session notes, updates NPC records, saves a structured summary |
notes memory |
Short-term narrative memory — session logs, NPC updates, continuity flags |
memory memory |
Long-term memory distilled by the system workspace over time |
Each job reads the current memory state before generating anything. The roster viewer aggregates everything into a single snapshot. Session logs write back to memory so the next generation is always working from the latest world state.