Your favorite character shouldn't live only in a chat window.
Take them into a full world…
Neither of you knows the script — you create the story together.
Install the client, click "Host locally & play". There is no step two.
Desktop app, recommended: Loreweaver Studio — the graphical client with live panels, a module's own panels and the keeper screens, plus the card studio. Installers for macOS / Windows / Linux ship with every release (unsigned for now: macOS right-click → Open once, Windows “More info → Run anyway”).
Or the terminal client — one line, no toolchain, anywhere with a terminal.
macOS / Linux
curl -fsSL https://1a7432.site/trpg/install.sh | bashWindows (PowerShell)
irm https://1a7432.site/trpg/install.ps1 | iexDevelopment builds ship as ordinary releases, so this installs the newest build, not the newest stable one. Pin a version with TRPG_RELEASE_TAG.
On Windows, use Windows Terminal or WezTerm. If the TUI does not look like the screenshots — broken borders, wrong colors, bad Unicode, or mouse input not working — you are probably in the legacy console host.
The green button on the connect screen.
A ticket + one invite code per friend, on screen.
The server builds are also yours to take and run long-term.
Checks, damage, sanity, initiative — all rolled and resolved by code, and the AI's only job is to tell the result as a story. It can conjure atmosphere; it can't conjure the numbers.
NPCs don't get X-ray vision: every NPC and AI companion knows only what it should — the module's secrets are simply not in their hands. You can lose, which is exactly why winning means something.
A real dice engine plus rule systems that are pure data — one YAML file per system, CoC 7e and D&D 5e included. If the numbers don't validate, no amount of AI charm gets them through.
Players, NPCs and AI companions only ever receive projections. That part is structural, and there are tests standing guard over it. The Keeper itself does see the module — it has to, to run a mystery — and is instructed not to quote it. That part is behaviour, so we measure it nightly against a real model instead of claiming it.
Short a player? An AI companion genuinely fills the seat: its own sheet, its own rolls.
Runs on your own machine, friends connect directly over p2p; your data, modules and keys never leave home.
| Loreweaver | A chat window | |
|---|---|---|
| Real dice, resolved by code | ✓ | ✗ |
| Keeps the module's secrets | ✓ | ✗ |
| A world that remembers | ✓ | ~ |
| AI companions fill a seat | ✓ | ✗ |
| Your machine, your data | ✓ | ✗ |
| Rules you can swap, as a data file | ✓ | ✗ |
| The module draws its own interface | ✓ | ✗ |




New rule systems, new play styles, new modules…
V2/V3 cards and lorebooks import as-is. MVU variable trees and UpdateVariable bookkeeping, full EJS templates in a QuickJS sandbox, worldbook trigger semantics — the machinery works, and real code keeps the books.
The Keeper can add trackers mid-game — town fear, suspicion, quest progress. The engine checks every change and keeps it inside the range you set; the ones players can see update live in the sidebar, and keeper-only ones never leave the server.
A skill or card can carry hooks.js: sandboxed JavaScript on the turn lifecycle that tracks variables, nudges the Keeper, and draws meters, badges and choice buttons right in the terminal. Every request is validated; a broken script never breaks a turn.
A pack can ship its own panels — a festival calendar, a tide gauge, a case board — bound to live trackers, plus handouts, letters and act cards. A rich client styles them; the terminal prints the same fields as plain lines, so the author only writes one version.
Play is recorded as chronicle entries. When the prompt fills up the oldest ones fold into a rolling summary, so a detail from session three is still reachable in session twelve. Players get a spoiler-free recap of the same documents: the keeper's annotations are filtered out by the same projection layer that handles every other secret.
Skills, rulepacks, cards, lorebooks and assets bundle into one .lwpack — build with one line, install with one line, from a file, a URL, or a GitHub release. A trust card and integrity checks come before anything touches disk.
MIT, Python engine + TypeScript terminal client…
Writing your own client or bot? The typed protocol frames and a reconnecting WebSocket client are on npm as loreweaver-protocol.