harahara
Core ConceptsMemory & Sessions

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 MEMORY

As 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 Markdown

The 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.

Was this helpful?
harahara
Copyright © Cruip. All rights reserved.