About this project

Chasm is a single-player text adventure game where a language model narrates the story through the pi coding harness. Each world is a directory of markdown files kept in git; state such as locations, characters, dialogue, and events persists between sessions. Installation requires Node.js 18+, npm, git, and Python 3, followed by the provided installer. Create a world with chasm new followed by a game name, then play with chasm play and the same name. The first launch asks for title, setting, genre, tone, a unique rule, and starting place. Model configuration uses /login or a shared models.json symlink inherited by each game. A model with tool-use/function-calling support is required. During play, Ctrl+L switches models, Ctrl+O toggles tool output, /save forces a save, /sync makes the narrator re-read and persist state, and /compact compacts context. Update commands refresh the CLI/template and per-game managed tooling files without touching world content. The README warns that generated language is not moderated and that prompts from others should be checked. MIT licensed.