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?
I'm going a bit broader with my system but it's similar. Instead of trying to predict future behavior, I'm focusing on capturing new, meaningful information, preparing it for human review (no fully automatic writes) and pairing with an ongoing review process, deduplication and treating it like a resource I manually curate (with help to make that easier of course).
I think context needs to be treated primarily globally with the addition of some project specific data. For example, my coding preferences don't change between projects, nor does my name. Other data like the company I work for can change, but infrequently and some values change frequently and are expected to.
I also use Claude Code a lot more for thinking or writing these days so there's less separation between topics than there are in separate repos.
I'm a fan human pruning (which you refer to as "write gates").
At this point, I'd argue any "automated memory" is a failure over time. I don't know if I'll be convinced otherwise.
If one were to go full automation, then I'd want generations of what to prune ("I haven't used this memory in a while... "). Actually, that might be useful in your tool as well. "Remove-gates"?
I built something similar for my needs[1]. I really like your idea of having write-gated memories.
Love the idea and the approach, both. Intend to try it.
Dislike READMEs written by or with the LLM.
They're filled with tropes and absolutes, as if written by a PdM to pitch his budget rather than for engineers needing to make it work.
At some point, reading these becomes like hearing a rhythm in daily life (riding subway, grinding espresso, typing in a cafe) and a rhythm-matched earwig inserts itself in your brain. Now you aren't hearing whatever made that rhythmic sound, but the unrelated earwig. Trying to think about your README or AskHN, instead thinking about LLM slop and confabulation and trust.
(Just like new account ChatEngineer's comment opening with “The [hard thing] is real.” which leaves the otherwise natural rest of comment more sus.)
Unsolicited opinion: Shouldn't be called total-recall, but curated-recall or selective-recall (prefer this one) or partial-recall or anything that doesn't confuse users or LLM as to (trope incoming, because where did they learn tropes anyway?): what it is (and isn't) …
the daily-log-first approach is a smart design choice — it decouples capture from commitment. curious about one edge case though: what happens when two parallel claude code sessions write to the same daily log simultaneously? with long-running tasks it's common to have multiple sessions open on the same project, and the daily logs are plain markdown files with no locking.
also, how consistent is the model at applying the five-point write gate? "does this change future behavior" feels clear in theory, but in practice i'd expect the model to be overly conservative (dropping things that matter) or overly permissive (saving trivia that felt important mid-session) depending on context. have you noticed any patterns in what slips through vs what gets filtered incorrectly?
Such a feature is very much needed, but I'll wait for the first-party, battle-tested solution
From a first read, the memory folder should also go into .gitignore by default
I like the name total recall haha!
I just want an infinite scroll in Claude Code, where I can easily search and view all my past conversations. Is that asking too much?
Nice work - the daily-log-first approach resonates. We hit the same "re-onboarding Claude every morning" problem and went a different direction with MemoryLane (https://github.com/deusXmachina-dev/memorylane): it sits in the background capturing your activity (screenshots + OCR + summaries) and makes that context available to any AI chat via MCP.
Different tradeoff - Total Recall is curated (daily logs) and lean, MemoryLane for now captures broadly and relies on search to surface what's relevant. I think they are complementary: your write gate keeps project knowledge tight, broad context with search fills in the "wait, what tab/webpage was that" gaps.
We applied to this batch (YC S26), still waiting on Apple notarization before a wider release. Happy to chat if anyone's curious about the screen-context approach.