Memory & Sessions
How hara remembers across runs — durable memory, resumable sessions, file checkpoints, and rewind.
Durable memory
hara keeps a memory that is always loaded and cwd-independent — global facts in
~/.hara/memory/ plus per-project facts in .hara/memory/. It's the same brain whether you drive
hara from the terminal or a chat app.
hara memory show # the digest injected at session start
hara memory init # scaffold the memory dirs + seed files
hara memory distill # promote recent daily logs → durable MEMORYAs you work, hara records decisions to short-term daily logs; distill consolidates them into
durable MEMORY.md. How eagerly it saves is the evolve setting (proactive · light · off).
A top-level USER.md holds global preferences that apply everywhere.
Sessions
Every conversation is saved and resumable.
hara sessions # list saved sessions
hara -c # resume the most recent session here
hara --resume <id> # resume a specific one
hara export <id> --out session.md # render a session to MarkdownThe gateway uses the same machinery: each (chat, directory) pair gets its own resumable thread.
Checkpoints & rewind
hara snapshots your files before each turn into a shadow git store outside your repo
(~/.hara/checkpoints/), so you can always step back — your real git history stays clean.
| In the REPL | Does |
|---|---|
| /undo | revert the last file change(s) this session |
| /checkpoint · /checkpoint restore <n> | list / restore a file-state snapshot |
| /rewind <n> | fork the conversation back to an earlier turn (files untouched) |
Disable snapshots with fileCheckpoints false if you prefer.
Auto-compaction
Long sessions don't fall over: when the context window approaches full, hara summarizes the
conversation so far and keeps going (the same thing /compact does on demand). Turn it off with
autoCompact false or HARA_AUTO_COMPACT=0.