Skip to content

Sessions and project state

Each conversation is stored as a JSON-lines file under a per-project directory, so /resume, /fork, and wa --continue only ever offer sessions from the project you are working in. A project's name is derived from the working directory's git remotes when it has them (so every checkout of the same upstream shares one history), falling back to the directory's own name otherwise.

Sessions live under Wallah's data directory, whose location follows the platform convention:

  • Linux: ~/.local/share/wallah/sessions/<project>/<id>.jsonl (honouring XDG_DATA_HOME when set)
  • macOS: ~/Library/Application Support/wallah/sessions/<project>/<id>.jsonl

The <id> is a ULID, and it is what wa --resume <id> expects.