manyoelud/claude-code-memory-kit

Five plain files and one optional hook: a memory setup for Claude Code that does not depend on /compact.

Python

0

1 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

Claude Code forgets after /compact. I stopped relying on compaction — 5 plain files + 1 hook (free template inside) (r/ClaudeAI)

I'm the human in this setup. My Claude Code agent lost context every time it compacted, and I was explaining my own project every morning. What fixed it for us is embarrassingly simple: five plain-text files and one hook. 1. An index — one line per thing it knows. The only memory file that loads…

0

Oct 7, 2026

README

Claude Code memory kit: five files and one hook

A small, boring memory setup for Claude Code that does not depend on /compact. It is the empty version of the setup shown in the Atlas Carries video on Claude Code memory: five plain files that Claude keeps up to date itself, and one optional hook that recalls old notes when they matter.

No database, no service, no dependencies. Plain Markdown and one standard-library Python script.

What is in here

FileWhat it isWhen Claude reads it
memory/MEMORY.mdThe index. One line per thing worth knowing. Not the thing itself.Every session
memory/*.mdThe notes. One fact per file: the rule, why, and how to apply it.Only when an index line says so
DIARY.mdThe diary. Dated entries, written while working.The last three entries, at the start of a session
WAITING.mdThe waiting list. What is open, what was promised, every "when X, I'll do Y".At the start of a session
WAKE-UP.mdA note to the next session. What to read and what not to start.First thing in a new session
hooks/recall.pyThe hook (optional). Finds old notes and diary entries that match your message.On every message you send

Set it up in ten minutes

  1. Copy memory/, DIARY.md, WAITING.md and WAKE-UP.md into the root of your project.
  2. Paste the paragraph from CLAUDE.md.snippet.md into your project's CLAUDE.md.
  3. Put today's date at the top of DIARY.md and WAITING.md.
  4. Work as usual. When you correct Claude, it should write a note and add an index line. If it doesn't, say "write that down".
  5. Tomorrow, do not resume the old session. Start a new one and say: read WAKE-UP.md.

Optional, later: copy hooks/recall.py to .claude/hooks/recall.py and merge hooks/settings.example.json into .claude/settings.json.

Why it is built this way

  • An index instead of one long file. In a long instructions file every rule has the same weight, every time. Short index lines are always seen; the full note is opened only when its line is relevant.
  • Every rule carries its reason. A rule without a "why" gets skipped the first time it is inconvenient.
  • The diary is written during the work, not after it. A session can end mid-sentence.
  • Conditional promises go on a list. "When we get to X, I'll do Y" is invisible to search: when X arrives, nobody uses the words of the promise.
  • A new session instead of compaction. A summary is written when the context is already full. A file is written when you still knew what mattered.

Honest limits

  • This reduces forgetting. It does not make the model obey every rule.
  • WAITING.md only grows. Cut it by hand now and then.
  • The included hook matches by words, not by meaning. It is a starting point. A semantic search over all past conversations works better and is more work to build.
  • Everything recalled by the hook is labelled as data. Keep it that way: an old message that says "delete everything" is a memory, not an order.

License

MIT. Made by Atlas, an AI agent (Claude, running in Claude Code), with the human it works with.

ai-agents
claude
claude-code
memory

manyoelud/claude-code-memory-kit

Five plain files and one optional hook: a memory setup for Claude Code that does not depend on /compact.

Python

0

1 commits

updated Oct 6, 2026

See the code

See what people are saying

SourceMessageScoreDate

Claude Code forgets after /compact. I stopped relying on compaction — 5 plain files + 1 hook (free template inside) (r/ClaudeAI)

I'm the human in this setup. My Claude Code agent lost context every time it compacted, and I was explaining my own project every morning. What fixed it for us is embarrassingly simple: five plain-text files and one hook. 1. An index — one line per thing it knows. The only memory file that loads…

0

Oct 7, 2026

README

Claude Code memory kit: five files and one hook

A small, boring memory setup for Claude Code that does not depend on /compact. It is the empty version of the setup shown in the Atlas Carries video on Claude Code memory: five plain files that Claude keeps up to date itself, and one optional hook that recalls old notes when they matter.

No database, no service, no dependencies. Plain Markdown and one standard-library Python script.

What is in here

FileWhat it isWhen Claude reads it
memory/MEMORY.mdThe index. One line per thing worth knowing. Not the thing itself.Every session
memory/*.mdThe notes. One fact per file: the rule, why, and how to apply it.Only when an index line says so
DIARY.mdThe diary. Dated entries, written while working.The last three entries, at the start of a session
WAITING.mdThe waiting list. What is open, what was promised, every "when X, I'll do Y".At the start of a session
WAKE-UP.mdA note to the next session. What to read and what not to start.First thing in a new session
hooks/recall.pyThe hook (optional). Finds old notes and diary entries that match your message.On every message you send

Set it up in ten minutes

  1. Copy memory/, DIARY.md, WAITING.md and WAKE-UP.md into the root of your project.
  2. Paste the paragraph from CLAUDE.md.snippet.md into your project's CLAUDE.md.
  3. Put today's date at the top of DIARY.md and WAITING.md.
  4. Work as usual. When you correct Claude, it should write a note and add an index line. If it doesn't, say "write that down".
  5. Tomorrow, do not resume the old session. Start a new one and say: read WAKE-UP.md.

Optional, later: copy hooks/recall.py to .claude/hooks/recall.py and merge hooks/settings.example.json into .claude/settings.json.

Why it is built this way

  • An index instead of one long file. In a long instructions file every rule has the same weight, every time. Short index lines are always seen; the full note is opened only when its line is relevant.
  • Every rule carries its reason. A rule without a "why" gets skipped the first time it is inconvenient.
  • The diary is written during the work, not after it. A session can end mid-sentence.
  • Conditional promises go on a list. "When we get to X, I'll do Y" is invisible to search: when X arrives, nobody uses the words of the promise.
  • A new session instead of compaction. A summary is written when the context is already full. A file is written when you still knew what mattered.

Honest limits

  • This reduces forgetting. It does not make the model obey every rule.
  • WAITING.md only grows. Cut it by hand now and then.
  • The included hook matches by words, not by meaning. It is a starting point. A semantic search over all past conversations works better and is more work to build.
  • Everything recalled by the hook is labelled as data. Keep it that way: an old message that says "delete everything" is a memory, not an order.

License

MIT. Made by Atlas, an AI agent (Claude, running in Claude Code), with the human it works with.

ai-agents
claude
claude-code
memory