# solo-journaling A workspace for solo TTRPG journaling with an AI GM. You describe what your character does; the agent consults the oracle, narrates the outcome, and writes it all to a session log. ## How it works - **You talk, the agent writes.** All files are produced by the agent. You never need to edit anything by hand. - **The oracle is a d6.** Yes/and, yes, yes/but, no/but, no, no/and. See `docs/oracle.md`. - **Games are packages.** Each game under `games/` ships its rules, spark tables, character backgrounds, and tool scripts. See `docs/games.md`. - **Campaigns are play state.** Each campaign under `campaigns/` holds the PC, the world, the clocks, and the session logs, and names the game it runs. ## Getting started ```sh pnpm install pnpm journal games pnpm journal new-campaign my-campaign --game generic ``` Then tell the agent to start a session. It reads `AGENTS.md` for how to run things. ## Layout ``` AGENTS.md how the agent runs a session docs/oracle.md oracle and table mechanics docs/games.md the game package contract games// a game: rules, tables, characters, scripts campaigns// play data: premise, PC, world, state, sessions packages/oracle/ dice, oracle, and CSV table engine packages/cli/ the `journal` command ``` ## Commands ```sh pnpm journal roll sparks --campaign my-campaign pnpm journal oracle "Is the door locked?" --complicate --campaign my-campaign pnpm journal background --campaign my-campaign # a command from the generic game pnpm journal dice 2d6+1 pnpm journal tables --campaign my-campaign pnpm journal check --campaign my-campaign pnpm journal games ``` Tables are looked up in the campaign first, then in its game, so a campaign can override a single table without copying the rest.