1 comments

  • davegoldblatt 3 hours ago
    built this because I got tired of re-teaching Claude Code the same context every session. Preferences, decisions, “we already tried X,” “don’t touch this file,” etc. After a few days it starts to feel like onboarding the same coworker every morning.

    Most “agent memory” tools auto-save everything. That feels good briefly, then memory turns into a junk drawer and retrieval gets noisy. Total Recall takes the opposite approach: a write gate. Before anything gets promoted, it asks one question: “Will this change future behavior?” If not, it doesn’t get saved.

    How it works:

    Daily log first (raw notes)

    Promote durable stuff into registers (decisions, preferences, people, projects)

    Small working memory loads every session (kept intentionally lean)

    Hooks fail open. SessionStart can surface open loops + recent context. PreCompact writes to disk (not model-visible stdout)

    The holy shit moment is simple: tell Claude one important preference or decision once, come back tomorrow, and it behaves correctly without you repeating yourself.

    Would love feedback from heavy Claude Code users:

    Does the write gate feel right or too strict?

    Does this actually reduce repetition over multiple days?

    Any workflow/privacy footguns I’m missing?

    • nunobrito 3 hours ago
      From a first read, the memory folder should also go into .gitignore by default
      • davegoldblatt 2 hours ago
        Good catch. I agree the safe default is to ignore memory/ since it can contain personal notes, people context, and daily logs. I’m updating the installer to add memory/ to .gitignore by default (along with CLAUDE.local.md and .claude/settings.local.json).

        For teams that do want shared context, I’ll document a “team mode” gitignore pattern that commits only selected registers (e.g. decisions/projects) while keeping daily logs + preferences/people local.

      • davegoldblatt 2 hours ago