Back

Show HN: Stop Claude Code from forgetting everything

151 points13 hoursgithub.com

I got tired of Claude Code forgetting all my context every time I open a new session: set-up decisions, how I like my margins, decision history. etc.

We built a shared memory layer you can drop in as a Claude Code Skill. It’s basically a tiny memory DB with recall that remembers your sessions. Not magic. Not AGI. Just state.

Install in Claude Code:

  /plugin marketplace add https://github.com/mutable-state-inc/ensue-skill
  /plugin install ensue-memory
  # restart Claude Code
What it does: (1) persists context between sessions (2) semantic & temportal search (not just string grep). Basically git for your Claude brain

What it doesn’t do: - it won’t read your mind - it’s alpha; it might break if you throw a couch at it

Repo: https://github.com/mutable-state-inc/ensue-skill

If you try it and it sucks, tell me why so I can fix it. Don't be kind, tia

ramoz11 hours ago

I struggle with these abstractions over context windows, esp when anthropic is actively focused on improving things like compaction, and knowing the eventual* goal is for the models to yave real memory layers baked in. Until then we have to optimize with how agents work best and ephemeral context is a part of that (they weren’t RL’d/trained with memory abstractions so we shouldn’t use them at inference either). Constant rediscovery that is task specific has worked well for me, doesn’t suffer from context decay, though it does eat more tokens.

Otherwise the ability to search back through history is a valuable simple git log/diff or (rip)grep/jq combo over the session directory. Simple example of mine: https://github.com/backnotprop/rg_history

AndyNemmity11 hours ago

There is certainly a level where at any time you could be building some abstraction that is no longer required in a month, or 3.

I feel that way too. I have a lot of these things.

But the reality is, it doesn't really happen that often in my actual experience. Everyone is very slow as a whole to understand what these things mean, so far you get quite a bit of time just with an improved, customized system of your own.

ramoz10 hours ago

My somewhat naive heuristic would be that memory abstractions are a complete mistep in terms of optimization. There is no "super claude mem" or "continual claude" until there actually is.

https://backnotprop.com/blog/50-first-dates-with-mr-meeseeks...

AndyNemmity10 hours ago

I tend to agree with you, however compacting has gotten much worse.

So... it's tough. I think memory abstractions are generally a mistake, and generally not needed, however I also think that compacting has gotten so wrong recently that they are also required until Claude Code releases a version with improved compacting.

But I don't do memory abstraction like this at all. I use skills to manage plans, and the plans are the memory abstraction.

But that is more than memory. That is also about having a detailed set of things that must occur.

+1
ramoz10 hours ago
gbnwl10 hours ago

I'm not sure how many HN users frequent other places related to agentic coding like the subreddits of particular providers, but this has got to be the 1000th "ultimate memory system"/break-free-of-the-context-limit-tyranny! project I've seen, and like all other similar projects there's never any evidence or even attempt at measuring any metric of performance improved by it. Of course it's hard to measure such a thing, but that's part of exactly why it's hard to build something like this. Here's user #1001 that's been told by Claude "What a fascinating idea! You've identified a real gap in the market for a simple database based memory system to extend agent memory."

beefsack8 hours ago

I feel like so many of these memory solutions are incredibly over-engineered too.

You can work around a lot of the memory issues for large and complex tasks just by making the agent keep work logs. Critical context to keep throughout large pieces of work include decisions, conversations, investigations, plans and implementations - a normal developer should be tracking these and it's sensible to have the agent track them too in a way that survives compaction.

wfn1 hour ago

Yes. I have (as part of Claude output) a

- `FEATURE_IMPL_PLAN.md` (master plan; or `NEXT_FEATURES_LIST.md` or somesuch)

- `FEATURE_IMPL_PROMPT_TEMPLATE.md` (where I replace placeholders with next feature to be implemented; prompt includes various points about being thorough, making sure to validate and loop until full test pipeline works, to git version tag upon user confirmation, etc.)

- `feature-impl-plans/` directory where Claude is to keep per-feature detailed docs (with current status) up to date - this is esp. useful for complex features which may require multiple sessions for example

- also instruct it to keep main impl plan doc up to date, but that one is limited in size/depth/scope on purpose, not to overwhelm it

- CLAUDE.md has summary of important code references (paths / modules / classes etc.) for lookup, but is also restricted in size. But it includes full (up-to-date) inventory of all doc files, for itself

- If I end up expanding CLAUDE.md for some reason or temporarily (before I offload some content to separate docs), I will say as part of prompt template to "make sure to read in the whole @CLAUDE.md without skipping any content"

ramoz7 hours ago

Great advise. For large plans I tell the agent to write to an “implementation_log.md” and make note of it during compaction. Additionally the agent can also just reference the original session logs.

hasperdi2 hours ago

The problem with this approach, is that the model may forget to update the log... It usually happens when the context window >50% filled

ilvez57 minutes ago

.. and not only those, but the baseline as well aka CLAUDE.md.. I've countless of times told it basics, in the same session without compacting etc etc

SkyPuncher4 hours ago

Yep. I just have my agents write out key details to a markdown file. Doesn’t have to be perfect. Just enough to reorient itself to a problem.

christinetyip2 hours ago

This is fair, many memory projects out there boil down to better summaries or prompt glue without any clear way to measure impact.

One thing I’d clarify about what we’re building is that it’s not meant to be “the best memory for a single agent.”

The core idea is portability and sharing, not just persistence.

Concretely:

- you can give Codex access to memory created while working in Claude

- Claude Code can retrieve context from work done in other tools

- multiple agents can read/write the same memory instead of each carrying their own partial copy

- specific parts of context can be shared with teammates or collaborators

That’s the part that’s hard (or impossible) to do with markdown files or tool-local memory, and it’s also why we don’t frame this as “breaking the context limit.”

Measuring impact here is tricky, but the problem we’re solving shows up as fragmentation rather than forgetting: duplicated explanations, divergent state between agents, and lost context when switching tools or models.

If someone only uses a single agent in a single tool and already are using their customized CLAUDE.md, they probably don’t need this. The value shows up once you treat agents as interchangeable workers rather than a single long-running conversation.

xnx3 hours ago

Some with a coding background love prompt engineering, contrived supporting systems, json prompting and any other superstition that makes it feel like they're really doing something.

They refuse to believe that it's possible to instruct these tools in terse plain English and get useful results.

stingraycharles3 hours ago

imho, if it’s not based on a RAG, it’s not a real memory system. the agent often doesn’t know what it doesn’t know, and as such relevant memories must be pushed into the context window by embedding distance, not actively looked up.

austinbaggio9 hours ago

Which of the 1000 is your favorite? There does seem to be a shallow race to optimizing xyz benchmark for some narrow sliver of the context problem, but you're right, context problem space is big, so I don't think we'll hurry to join that narrow race.

gbnwl9 hours ago

| Which of the 1000 is your favorite?

None, that's what I'm trying to say. My favorite is just storing project context locally in docs that agents can discover on their own or I can point to if needed. This doesn't require me to upload sensitive code or information to anonymous people's side projects and has and equivalent amount of hard evidence for efficacy (zero), but at least has my own anecdotal evidence of helping and doesn't invite additonal security risk.

People go way overboard with MCPs and armies of subagents built on wishes and unproven memory systems because no one really knows for sure how to get past the spot we all hit where the agentic project that was progressing perfectly hits a sharp downtrend in progress. Doesn't mean it's time to send our data to strangers.

gck14 hours ago

> no one really knows for sure how to get past the spot we all hit where the agentic project that was progressing perfectly hits a sharp downtrend in progress.

FWIW, I find this eventual degradation point comes much later and with fewer consequences when there are strict guardrails inside and outside of the LLM itself.

From what I've seen, most people try to fix only the "inside" part - by tweaking the prompts, installing 500 MCPs (that ironically pollute the context and make problem worse), yell in uppercase in hopes that it will remember etc, and ignore that automated compliance checks existed way before LLMs.

Throw the strictest and most masochistic linting rules at it in a language that is masochistic itself (e.g. rust), add tons of integration tests that encode intent, add a stop hook in CC that runs all these checks and you've got a system that is simply not allowed to silently drift and can put itself back on track with feedback it gets from it.

Basically, rather than trying to hypnotize an agent to remember everything by writing a 5000 line agents.md, just let the code itself scream at it and feed the context.

Davidzheng7 hours ago

Wait.

AndyNemmity9 hours ago

The funny part is, the vast majority of them are barely doing anything at all.

All of these systems are for managing context.

You can generally tell which ones are actually doing something if they are using skills, with programs in them.

Because then, you're actually attaching some sort of feature to the system.

Otherwise, you're just feeding in different prompts and steps, which can add some value, but okay, it doesn't take much to do that.

Like adding image generation to claude code with google nano banana, a python script that does it.

That's actually adding something claude code doesn't have, instead of just saying "You are an expert in blah"

austinbaggio9 hours ago

It sounds like you've used quite a few. What programs are you expecting? Assuming you're talking about doing some inference on the data? Or optimizing for some RAG or something?

AndyNemmity9 hours ago

An example of a skill i gave, adding image generation to nano banana.

another is one claude code ships with, using rip grep.

Those are actual features. It's adding deterministic programs that the llm calls when it needs something.

+1
austinbaggio8 hours ago
troupo3 hours ago

> You can generally tell which ones are actually doing something if they are using skills, with programs in them.

> Otherwise, you're just feeding in different prompts and steps

"skills" are literally just .md files with different prompts and steps.

> That's actually adding something claude code doesn't have, instead of just saying "You are an expert in blah"

It's not adding anything but a prompt saying "when asked to do X invoke script Y or do steps Z"

willtemperley5 hours ago

Replace "Automation" with "Agentic coding" here:

https://xkcd.com/1319/

Forgeties799 hours ago

Have you tried using it? Not being flippant and annoying. Just curious if you tried it and what the results were

Game_Ender8 hours ago

Why should he put effort into measuring a tool that the author has not? The point is there are so many of these tools an objective measure that the creators of these tools can compare against each other would be better.

So a better question to ask is - Do you have any ideas for an objective way to a measure a performance of agentic coding tools? So we can truly determine what improves performance or not.

I would hope that internal to OpenAI and Anthropic they use something similar to the harness/test cases they use for training their full models to determine if changes to claude code result in better performance.

morkalork6 hours ago

Well, if I were Microsoft and training co-pilot, I would log all the <restore checkpoint> user actions and grade the agents on that. At scale across all users, "resets per agent command" should be useful. But then again, publishing the true numbers might be embarrassing..

kuboble4 hours ago

I'm not sure it's a good signal.

I often use restore conversion checkpoint after successfully completing a side quest.

gbnwl9 hours ago

Who has time to try this when there's this huge backlog here: https://www.reddit.com/r/ClaudeAI/search/?q=memory

Forgeties799 hours ago

Have you tried any of those?

+1
gbnwl8 hours ago
troupo3 hours ago

It does nothing but send a bunch of data to a "alpha use at your own risk" third-party site that may or may not run some LLM on your data: https://ensue-network.ai/login

johnnyfived9 hours ago

I imagine HN, despite being full of experts and vet devs, also might have a prevalent attitude of looking down on using tools like MCP servers or agentic AI libraries for coding, which might be why something like this advertised seems novel rather than redundant.

troupo3 hours ago

Because experts snd vets can uduslly quickly disassemble layers of marketing bullshit and see through false promises?

Because experts snd vets often use these tools and find them extremely lacking?

DrewADesign7 hours ago

> I imagine HN, despite being full of experts and vet devs, also might have a prevalent attitude of looking down on using tools like MCP servers or agentic AI libraries for coding, which might be why something like this advertised seems novel rather than redundant.

I’m not sure where the ‘despite’ comes in. Experts and vets have opinions and this is probably the best online forum to express them. Lots of experts and vets also dislike extremely popular unrelated tools like VB, Windows, “no-code” systems, and Google web search… it’s not a personality flaw. It doesn’t automatically mean they’re right, either, but ‘expert’ and ‘vet’ are earned statuses, and that means something. We’ve seen trends come and go and empires rise and fall, and been repeatedly showered in the related hype/PR/FUD. Not reflexively embracing everything that some critical mass of other people like is totally fine.

gbnwl7 hours ago

I think maybe the point they were trying to make is that despite people on HN being very technically experienced, skepticism and distrust of LLM-assisted coding tools may have prevented many of them from exploring the space too deeply yet. So a project like this may seem novel to many readers here, when the reality for users who've been using and following tools like Claude Code (and similar) closely for a while now is that claims like the one's this project is making come out multiple times per week.

johnnyfived7 hours ago

They pretty much perfectly encapsulated the point in their fired up response haha.

christinetyip1 hour ago

A lot of the discussion here is about memory inside a single tool, which makes sense.

I’m curious how people think about portability: e.g. letting Claude Code retrieve context that was created while using Codex, Manus, or Cursor, or sharing specific parts of that context with other people or agents.

At that point, log parsing and summaries become per-tool views of state rather than shared state. Do people think a shared external memory layer is overkill here, or a necessary step once you have multiple agents/tools in play?

ossa-ma11 hours ago

There are a quadrillion startups (mem0, langmem, zep, supermemory), open source repos (claude-mem, beads), and tools that do this.

My approach is literally just a top-level, local, git version controlled memory system with 3 commands:

- /handoff - End of session, capture into an inbox.md

- /sync - Route inbox.md to custom organised markdown files

- /engineering (or /projects, /tasks, /research) - Load context into next session

I didn't want a database or an MCP server or embeddings or auto-indexing when I can build something frictionless that works with git and markdown.

Repo: https://github.com/ossa-ma/double (just published it publicly but its about the idea imo)

Writeup: https://ossa-ma.github.io/blog/double

fastball9 hours ago

What is the purpose of a separate /handoff and /sync command? It seems like handoff could just write learnings straight to their final destinations without needing an .inbox.md buffer in-between.

ossa-ma9 hours ago

I like to read and review what was captured in .inbox.md before it is committed and synced across my knowledge base. Allows me to catch mistakes, tweak preferences, add context and decide whether something is actually worth pushing.

I will typically make multiple '/handoff's per day as I use Claude code whereas I typically use '/sync' at the end of the day to organise them all at once.

bl4ckneon10 hours ago

The extention Cline has a "memory bank" feature. It's just a markdown you add as an instruction. Works well for me. Worked with agents.md as well so not just with the Cline extention. Pretty much the same idea.

AndyNemmity10 hours ago

Your approach essentially matches mine, but I call them plans. I agree with you that the other tools don't seem to add any value compared to this structure.

I think at this point in time, we both have it right.

kaizenb6 hours ago

Will explore this idea, thanks.

minikomi2 hours ago

I use gptel[0] with my denote[1] notes, and a tool that can search/retrieve tags/grep/create notes (in a specific sub folder). It's been good enough as a memory for me.

0: https://github.com/karthink/gptel

1: https://protesilaos.com/emacs/denote

photios3 hours ago

Can it run with a local DB? I have zero interest in another monthly subscription pretending to be "an open source tool".

coffeeboy2712 hours ago

What's the data retention/deletion policy and is there a self-hosted option planned? I'd prefer not to send proprietary code to third-party servers.

austinbaggio12 hours ago

Honestly, very reasonable ask, you're not the first person to ask for a self-hosted version. We have a privacy policy we've drafted that is up-to-date with the current version of the product https://www.ensue-network.ai/privacy-policy.

The project is still in alpha, so you could shape what we build next - what do you need to see, or what gets you comfortable sending proprietary code to other external services?

frumplestlatz11 hours ago

> what do you need to see, or what gets you comfortable sending proprietary code to other external services?

Honestly? It just has to be local.

At work, we have contracts with OpenAI, Anthropic, and Google with isolated/private hosting requirements, coupled with internal, custom, private API endpoints that enforce our enterprise constraints. Those endpoints perform extensive logging of everything, and reject calls that contain even small portions of code if it's identified as belonging to a secret/critical project.

There's just no way we're going to negotiate, pay for, and build something like that for every possible small AI tooling vendor.

And at home, I feed AI a ton of personal/private information, even when just writing software for my own use. I also give the AI relatively wide latitude to vibe-code and execute things. The level of trust I need in external services that insert themselves in that loop is very high. I'm just not going to insert a hard dependency on an external service like this -- and that's putting aside the whole "could disappear / raise prices / enshittify at any time" aspect of relying on a cloud provider.

austinbaggio9 hours ago

Yeah I get the dependency concern, and also I think about the trust and pricing challenge a lot. I might be getting ahead of my skis here, but living in a future world, assuming there is a local service, what would you want to see with a context management service for your team to actually use it? Or even better - pay for it?

huali3 hours ago

I've built a lightweight Memory MCP service to efficiently store conversation memories. It only implements essential *CRUD* (Create, Read, Update, Delete) methods, minimizing token usage.

Deploy the service on your cloud server or your local computer, then add the streamable MCP and skill to Claude Code.

To activate in a new conversation, simply reference the skill first: `@~/.claude/skills/mem/SKILL.md`.

If you like this project, please give it a star on GitHub!

huali3 hours ago

[dead]

vintagedave57 minutes ago

“Not magic. Not AGI. Just state.”

AI writing slop is infecting everything. Nothing turns me off this product more than the feeling you can’t even write about it as a human. If you can’t do that, why would I use or value it?

dmos623 hours ago

I consider the "perfect fortgetfulness" of LLMs a great feature, because I can then precisely select what the context is for a given task. Context is additive, so once something's in it, it's doing something: most I could do is try to counteract it, which is like playing jailbreak.

Then again, this might be just me. When there's a task to be done, even without an LLM my thought process is about selecting the relevant parts of my context for solving it. What is relevant? What starting point has the best odds of being good? That translates naturally to tasking an LLM.

Let's say I have a spec I'm working on. It's based off of a requirements document. If I want to think about the spec in isolation (let's say I want to ask the LLM what requirements are actually being fulfilled by the spec), I can just pass the spec, without passing the requirements. Then I'll compare the response against the actual requirements.

At the end of the day, I guess I hate the automagicness of a silent context injection. Like I said, it also negates the perfect forgetfulness of LLMs.

qudat12 hours ago
jswny10 hours ago

Can you give an example of how beads would be used by Claude to do something it otherwise couldn’t? I can’t quite tell what it is useful for

frankc7 hours ago

Personally, I have been using beads for a few days on a couple of projects. I also like https://github.com/Dicklesworthstone/beads_viewer which is a nice tui for beads (with some additional workflow i haven't tried). I have found its been useful for longer, multi-session implementations. Its easier to get back into the work. I wouldn't go so far as to it couldn't do the work without it, but so far it seems smoother. These things are hard to measure. I think the it's really not that different than how an engineering team would use jira but more hierarchical, which helps preserve context, and with prebuilt instructions for how the agent should use it.

zyan1de12 hours ago

oh yeah beads is awesome! I'd say this is a bit more general purpose rn especially what is in the skill!

JoshGlazebrook12 hours ago

Is anyone else just completely overwhelmed with the number of things you _need_ for claude code? Agents, sub agents, skills, claud.md, agents.md, rules, hooks, etc.

We use Cursor where I work and I find it a good medium for still being in control and knowing what is happening with all of the changes being reviewed in an IDE. Claude feels more like a black box, and one with so many options that it's just overwhelming, yet I continue to try and figure out the best way to use it for my personal projects.

Claude code suffers from initial decision fatigue in my opinion.

levocardia8 hours ago

I just take a grug brain approach. I do touch CLAUDE.md and then just explain how the code/files/project spec work, like I'm writing a slack message or email to a really smart colleague, and then let it rip, always using biggest model with thinking on. If something consistently goes wrong I add more to CLAUDE.md or even better, have Claude Code just update CLAUDE.md itself with the new issue explained. I'm probably 3 months behind what you could get with absolute SOTA practices but it still works so well that I'm amazed and amused on a daily, if not hourly, basis.

dimitri-vs11 hours ago

I'm in Claude Code 30+ hr/wk and always have a at least three tabs of CC agents open in my terminal.

Agree with the other comments: pretty much running vanilla everything and only the Playwright MCP (IMO way better than the native chrome integration) and ccstatusline (for fun). Subagents can be as simple as saying "do X task(s) with subagent(s)". Skills are just self @-ing markdown files.

Two of the most important things are 1) maintaining a short (<250 lines) CLAUDE.md and 2) having a /scratch directory where the agent can write one-off scripts to do whatever it needs to.

jswny10 hours ago

I also specifically instruct Claude how to use a globally git ignored scratch folder “tmp” in each repo. Curious what your approach is

austinbaggio9 hours ago

You store your project context in an ignored tmp folder? Share more plz - what does it look like? What do you store?

jswny8 hours ago

Not memory, I just instruct it to freely experiment with temporary scripts and artifacts in a specific folder.

This helps it organize temporary things it does like debugging scripts and lets it (or me) reference/build on them later, without filling the context window. Nothing fancy, just a bit of organization that collects in a repo (Git ignored)

brigandish11 hours ago

How can you - or any human - review that much code?

Normal_gaussian9 hours ago

When I'm coding I have about 6 instances of VSCode on the go at once; each with their own worktree and the terminal is a dangerous cc in docker. most of the time they are sitting waiting for me. Generally a few are doing spec work/reporting for me to understand something - sometimes with issue context; these are used to plan or redirect my attention if I might've missed something. A few will be just hacking on issues with little to no oversight - I just want it to iterate tests+code+screenshots to come up with a way to do a thing / fix a thing, I'll likely not use the code it generates directly. Then one or two are actually doing work that I'll end up PR'ing or if I'm reviewing they'll be helping me do the review - either mechanically (hey claude, give me a script to launch n instances with a configuration that would show X ... ok, launch them ... ok, change to this ... grab X from the db ... etc.) or insight based (hey claude, check issue X against code Y - does the code reflect their comments; look up the docs for A and compare to the usage in B, give me references).

I've TL'd and PM'd as well as IC'd. Now my IC work feels a lot more like a cross between being a TL and being a senior with a handful of exuberant and reasonably competent juniors. Lots of reviewing, but still having to get into the weeds quickly and then get out of their way.

bpolly9 hours ago

From personal experience, most of my time in Claude Code is spent experimenting, iterating, and refining approaches. The amount of code it produces as it relates to time spent working on it tends to be pretty logarithmic in practice.

asdev11 hours ago

you really don't need any of this crap. you just need Claude Code and CLAUDE.MD in directories where you need to direct it. complicated AI set ups are mid curve

parpfish11 hours ago

I refuse to learn all the complicated configuration because none of it will matter when they drop the next model.

Things that need special settings now won’t in the future and vice versa.

It’s not worth investing a bunch of time into learning features and prompting tricks that will be obsoleted soon

AndyNemmity10 hours ago

I wish that were true. Models don't feel like they've really had massive leaps.

They do get better, but not enough to change any of the configuration I have.

But you are correct, there is a real possibility that the time invested with be obsolete at some point.

For sure the work towards MCPs are basically obsolete via skills. These things happen.

+1
parpfish9 hours ago
+2
dnautics9 hours ago
wouldbecouldbe11 hours ago

It seems to mostly ignore Claude.md

csar8 hours ago

It’s told to only use it if relevant because most people write bad ones. Someone should write a tool to assess CLAUDE.md quality.

songodongo10 hours ago

If you can test how often it is being used by having a line in there saying something like “You must start every non-code response with ‘Woohoo!’”

AndyNemmity11 hours ago

It does, Claude.md is the least effective way to communicate to it.

It's always interesting reading other people's approaches, because I just find them all so very different than my experience.

I need Agents, and Skills to perform well.

_the_inflator11 hours ago

I like the finetuning aspect to it quite a lot. It makes sense to me. What I achieved now is a very streamlined process of autonomous work of an agent, which can more and more often be simply managed than controlled on a code review level basis for everything.

I agree that this level of finetuning feels overwhelming and might let yourself doubting whether you do utilize Claude to its optimum and the beauty is, that finetunging and macro usage don't interfere, when you stay in your lane.

For example I now don't use the planing agent anymore instead incorporated this process into the normal agents much to the project's advantage. Consistency is key. Anthropic did the right thing.

Codex is quite a different beast and comes from the opposite direction so to say.

I use both, Codex and Claude Opus especially, in my daily work and found them complementary not mutual exclusive. It is like two different evangelists who are on par exercising with different tools to achieve a goal, that both share.

AndyNemmity9 hours ago

Yeah, at a certainly level, it's just a ton of fun to do. I think that's why so many of us are playing with it.

It's also deeply interesting because it's essentially unsolved space. It's the same excitement as the beginning of the internet.

None of us know what the answers will be.

eterm11 hours ago

This isn't necessary. Claude will read CLAUDE.md from both:

  1. Current directory ./CLAUDE.md
  2. User directory ~/.claude/CLAUDE.md
I stick general preferences in what it calls "user memory" and stick project specific preferences in the working directory.
wouldbecouldbe11 hours ago

All I use is curse words and it does a damn great job most of the time

lobito2510 hours ago

Same here :)))), he's really good at understanding when you're pissed off.

nineteen9999 hours ago

I thought I was the only one.

anonzzzies11 hours ago

Yep, that usually works best.

austinbaggio11 hours ago

It feels like Claude is taking more of the Android approach of a less opinionated, but more open stack, so people are bending it to the shape they want to match their workflow. I think of the amnesia problem as pretty agent-agnostic, though, knowing what happens while you're delivering product is more of an agent execution layer problem than a tool problem, and it gets bigger when you have swarms coordinating - Jaya wrote a pretty good article about this https://x.com/AustinBaggio/status/2004599657520123933?s=20

AndyNemmity11 hours ago

I'm the opposite, I find it straight forward to use all these things, and am surprised people aren't getting it.

I've been trying to write blogs explaining it recently, but I don't think I'm very good at making it sound interesting to people.

What can I explain that you would be interested in?

Here was my latest attempt today.

https://vexjoy.com/posts/everything-that-can-be-deterministi...

majormajor11 hours ago

You say "My Claude Code Setup" but where is the actual setup there? I generally agree with everything about how LLMs should be called you say, but I don't see any concrete steps of changing Claude Code's settings in there? Where are the "35 agents. 68 skills. 234MB of context."? Is the implementation of the "Layer 4" programs intended to be left to the reader? That's hardly approachable.

AndyNemmity11 hours ago

I got similar feedback with my first blog post on my do router - https://vexjoy.com/posts/the-do-router/

Here is what I don't get. it's trivial to do this. Mine is of course customized to me and what I do.

The idea is to communicate the ideas, so you can use them in your own setup.

It's trivial to put for example, my do router blog post in claude code and generate one customized for you.

So what does it matter to see my exact version?

These are the type of things I don't get. If I give you my details, it's less approachable for sure.

The most approachable thing I could do would be to release individual skills.

Like I have skills for generating images with google nano banana. That would be approachable and easy.

But it doesn't communicate the why. I'm trying to communicate the why.

+1
majormajor11 hours ago
minimaxir11 hours ago

With Opus 4.5 in Claude Code, I'm doing fine with just a (very detailed) CLAUDE.md.

austinbaggio11 hours ago

Do you find you want to share the .md with the teams you work with? Or is it more for your solo coding?

Myrmornis8 hours ago

Not saying you were suggesting it but people committing AGENTS.md in shared repos is pretty annoying IMO. Those things are personal.

lukev11 hours ago

A claude.md file will give you 90% of what you need.

Consider more when you're 50+ hours in and understand what more you want.

AndyNemmity11 hours ago

In my experience, I'm at the most where I entirely ignore Claude.md - so it's very interesting how many people have very different experiences.

austinbaggio10 hours ago

It is overwhelming. We have support for Cursor mcp as well, but you lose a lot of the auto-magic stuff you get with the Claude Code plugin. Unfortunately, skills are pretty sticky to the Claude Code stack. It is kind of the vim of AI coding agents. . . One of the goals for this tool was to address context management in a single place. i.e instead of setting up all of the rules, claude.md, and skill.md you just semantic query a specific namespace in your knowledge base.

the docs if you are curious: https://www.ensue-network.ai/docs

einsteinx29 hours ago

I use both Cursor and Claude Code in VS Code at work (so I get similar control as Cursor). I don’t really use Claude Code any differently than cursor. People way over complicate it.

pigpop11 hours ago

You don't need all that, just have Claude write the same documentation you would (should) write for any project. I find it best to record things chronologically and then have Claude do periodic reviews of the docs and update key design documents and roadmap milestones. The best part is you get a written record of everything that you can review when you need to remember when and why something changed. They also come in handy for plan mode since they act as a guide to the existing code.

The PMs were right all along!

csar8 hours ago

Claude Code is better out of the box, so all that other stuff is orthogonal or optional. If you eg want to give your agent access to your company’s Notion docs you need a skill.

metadat11 hours ago

Don't forget about the co-agents.. yeah.

animitronix11 hours ago

Nope, I spend time learning my tools.

saidcooldude211 hours ago

[dead]

itissid7 hours ago

The general process feels very much like having kids over for a birthday party. Except you have to get them all to play nice and you have no idea what this other kid was conditioned on by their parents. Generally it would all work fine, all the kids know how the party progresses and what their roles are — if any.

But imagine how hard it would be if these kids had short term memory only and they would not know what to focus on except what you tell them to. You literally have to tell them "Here is A-Z pay attention to 'X' only and go do your thing". Add in other managers for this party like a caterer, clowns, your spouse and they also have to tell them that and remember, communicate what other managers have done. No one has solved for this, really.

This is what it felt like in 2025 to code with LLMs on non trivial projects, with some what of an improvement as the year went by. But I am not sure much progress was made in fixing the process part of the problem.

rmonvfer5 hours ago

Looks cool but as others have said, it’s really hard to just try all similar projects because all of them promise the same thing but I haven’t seen any of them provide any benchmarks.

Claude Code keeps all the conversation logs stored on-disk right? Why not parse them asynchronously and then use hooks to enrich the context as the conversation goes? (I mean in the most broad and generic way, I guess we’d have to embed them, do some RAG… the whole thing)

christinetyip1 hour ago

Yep, parsing logs + async RAG works fine if you’re staying inside a single tool.

The issue we ran into when building agent systems was portability. Once you want multiple agents or models to share the same evolving context, each tool reconstructing its own memory from transcripts stops scaling.

We’re less focused on “making agents smarter” and more on avoiding fragmentation when context needs to move across agents, tools, or people — for example, using context created in Claude from Codex, or sharing specific parts of that context with a friend or a team.

That’s also why benchmarks are tricky here. The gains tend to show up as less duplication and less state drift rather than a single accuracy metric. What would constitute convincing proof in this space for you?

scubbo9 hours ago

I've been tinkering with building something similar for myself - though for a generic chatbot, rather than for Claude (not every task is coding, and I'd like to keep !). From other comments (e.g. https://news.ycombinator.com/item?id=46428368, https://news.ycombinator.com/item?id=46427950) suggest that many others are already ahead of me. Any recs for tools, libraries, or approaches that I should learn from or adopt? In particular, I've found that - no matter how direct and clear the system prompt is - models have a tendency to respond verbally as if they've made a tool-call recording some gained-knowledge ("thanks! I'll remember that"), but to not actually return the JSON required to trigger the call by the tool.

austinbaggio9 hours ago

Since you've already thought about this problem, I'd love to hear your feedback after giving this skill a try. It should speed up at least your basic need of having to trigger the LLM to store the memory. One of our colleagues has found success asking at the end of a research session what he missed, how he could improve, etc.

ec10968510 hours ago

This is impressive.

Though I have found repo level claude.md that is updated everytime claude makes a mistake plus using —restore to select a previous relevant session works well.

There is no way for Anthropic to optimize Claude code or the underlying models for these custom setups. So it’s probably better to stick with the patterns Anthropic engineers use internally.

austinbaggio9 hours ago

If you give it a try, I think that use case should work, but if not, I would be grateful if you told us what broke.

And also - I genuinely worry about vendor lock-in, do you?

austinbaggio10 hours ago

Do you ever switch tools? I don't love the idea of my context being hostage of whatever LLM I choose first.

austinbaggio9 hours ago

Thanks everyone for the comments, really, I wasn't expecting this.

Quite a few of you have mentioned that you store a lot of your working context across sessions in some md file - what are you actually storing? What data do you actually go back to and refer to as you're building?

EMM_3867 hours ago

> in some md file

1a directly from Anthropic on agentic coding and Claude Code best practices.

"Create CLAUDE.md files"

https://www.anthropic.com/engineering/claude-code-best-pract...

It works great. You can put anything you want in there. Coding style, architecture guidelines, project explanation.

Anything the agent needs to know to work properly with your code base. Similar to an onboarding document.

Tools (Claude Code CLI, extensions) will pick them up hierarchically too if you want to get more specific about one subdirectory in your project.

AGENTS.md is similar for other AI agents (OpenAI Codex is one). It doesn't even have to be those - you can just @ the filename at the start of the chat and that information goes in the context.

The naming scheme just allows for it to be automatic.

ChicagoDave8 hours ago

I use 92% of context, have Claude write a “work summary” to a context folder, commit, push, quit, restart, repeat.

I’m never stopped and Claude always remembers what we’re doing.

This pattern has been highly productive for 8 months.

csar8 hours ago

You should never let context get that high unless you’re doing really basic things. Somewhere 40-60% is generally the time to start thinking about exits for tougher tasks. Get out in the 60s.

ChicagoDave1 hour ago

I keep work chunks small, which is why I can hit 90%. If I do I have a large task like a big planning effort, yes I’d start fresh.

AmiteK6 hours ago

One thing that seems under-discussed is what kind of state is worth persisting. Raw chat logs are cheap; distilled decisions, constraints, and preferences are harder but much more valuable.

Even if most approaches fail, exploring that boundary feels useful - especially if the system is transparent about what it stores and why.

kingkongjaffa1 hour ago

I actively don't want to use LLMs this way.

I use things like claude projects on the web app and skills and stuff, and claude code heavily.

I want to manually curate the context, adding memory is a anti pattern for this, I don't want the LLM grabbing tokens from memory that may or may not be relevant, and most likely will be stale.

linsomniac10 hours ago

The past few weeks I've been experimenting with using less context and less memory and it's been going really well. Where before I'd try to do a bunch of fairly related things in a single session, experimenting with compacting more or less frequently, now I'm clearing my context or exiting and restarting claude and codex. It seems to help it focus on the task at hand, hasn't tended to go off into the weeds as much, and my token costs have dropped way down.

Combined with a good AGENTS.md, it seems to be working really well.

einsteinx29 hours ago

That’s been my experience as well. I find I usually get better output if I create a new conversation for each thing I need. I’ve found that the only times it’s better to continue an existing conversation is if I want to have it make small improvements or changes to something it just wrote, as it tends to do better with the previous context still there. But even that only goes so far, then the scale tips and it works much better with a clean slate. I especially don’t want totally unrelated conversations polluting the context which is why I have all memory features turned off in all the web chat UI’s for the models I use.

amannm11 hours ago

There's a lot of people interested in forming some sort of memory layer around vendored LLM services. I don't think they realize how much impact a single error that disappears from your immediate attention can have on downstream performance. Now think of the accrual of those errors over time and your lack of ability to discern if it was service degradation or a bad prompt or a bad AGENTS.md OR now this "long term memory" or whatever. If this sort of feature will ever be viable, the service providers will offer the best solution only behind their API, optimized for their models and their infrastructure.

altmanaltman12 hours ago

Thank you for specifying it wasn't magic or AGI.

apublicfrog11 hours ago

> Not magic. Not AGI. Just state.

Very clearly AI written

fragmede11 hours ago

You're absolutely right!

austinbaggio12 hours ago

jk it is AGI. First.

AndyNemmity11 hours ago

I don't understand the use case. I think if you don't use agents, and skills currently effectively, then perhaps this is useful.

If you're using them though, we no longer have the problem of Claude forgetting things.

lkbm9 hours ago

I'm curious how those replace this? I've barely used either, and would love to hear more.

AndyNemmity9 hours ago

Okay, Claude.md is an md file with instructions.

Agents are an md file with instructions.

Skills are an md file with instructions.

Commands are.. you get the point.

We're just dealing with instructions. Claude.md is handled by Claude Code. It is forgotten almost entirely often when the context fills.

Okay, what is an agent? An agent is basically a Claude.md file, but you make it extremely granular. So it only has instructions of let's say, Typescript.

We're all just doing context management here. We're trying to make sure our instructions that matter stay.

To do that, we have to remove all other instructions from the picture.

When you're doing typescript, you only know type script things.

Okay, what's a skill? A skill is doing a single thing with type script. Why? So that the context is even smaller.

Instead of the agent having every single instruction you need about typescript, you put them in skills so they only get put into context when that thing is needed.

But skills are also where you connect deterministic programs. For example, I have a skill for creating images in nano banana.

So when the Typescript Agent needs to create an image, it calls the skill, that calls the python script, to create images in nano banana.

We're managing all the context to only be available when it's needed, keeping all other instructions out.

Does that help?

zyan1de12 hours ago

I mostly use it during long Claude Code research sessions so I don’t lose my place between days.

I run it in automatic mode with decent namespacing, so thoughts, notes, and whole conversations just accumulate in a structured way. As I work, it stores the session and builds small semantic, entity-based hypergraphs of what I was thinking about.

Later I’ll come back and ask things like:

what was I actually trying to fix here?

what research threads exist already?

where did my reasoning drift?

Sometimes I’ll even ask Claude to reflect on its own reasoning in a past session and point out where it was being reactive or missed connections.

EMM_38611 hours ago

Just put a claude.md file in your directory. If you want more details about a subdirectory put one in there too.

Claude itself can just update the claude.md file with whatever you might have forgot to put in there.

You can stick it in git and it lives with the project.

robertwt711 hours ago

Congrats for this! how does this differs from claude-mem? I've been using claude-mem for a while now

https://github.com/thedotmack/claude-mem

bgilly4 hours ago

Thanks for mentioning this. I installed claude-mem today and it’s already come in handy. Pretty neat how it can go get individual prompts and replies from previous sessions without consuming a lot of tokens. And I finally have some visibility into what my subagents are doing thanks for the real time feed web dashboard.

itissid6 hours ago

has anyone had good experience with humanlayer's system/process of management?

Just their thought management git system works pretty well for me TBH. https://www.humanlayer.dev/

heliumtera9 hours ago

Stop Claude from forgetting by telling it to not forget

AndyNemmity9 hours ago

and put it in all caps, so it knows you mean business.

wellthisisgreat3 hours ago

alarm emoji alarm emoji alarm emoji

sabareesh11 hours ago

Non starter for us, we cant ship propriety data to a third party servers.

austinbaggio10 hours ago

I assume this is with work? And also assume you do send data, you just need some service agreement or something like with AWS or Microsoft for GH?

bg_tagas9 hours ago

[dead]

devhouse9 hours ago

Feels like this is solving a problem that /compact should solve but doesn't. The fact that post-compaction Claude 'feels dumber' suggests the summarization is too aggressive? Would be interesting if Anthropic exposed more control over what gets preserved vs. compressed ... or let users provide their own summary template.

dr_dshiv11 hours ago

I just ask Claude to look at past conversations where I was working on x… it sometimes thinks it can’t see them, but it can.

I’ll give this a go though and let you know!

ramoz11 hours ago

Here is a simple skill (markdown instruction only) that instructs a nice ripgrep approach - with utility of discovering current session.

https://github.com/backnotprop/rg_history

bgun4 hours ago

I like this. Although - can we stop naming every project with a single short, common, vaguely related English word? Does anyone name software after what it actually does anymore?

It’s almost as if software authors are afraid that if their project names are too descriptive, they won’t be able to pivot to some other purpose, which ends up making every project name sound at once banal and vague.

bilbo-b-baggins11 hours ago

Your site advertises careers in San Francisco/Remote. California law requires compensation disclosures.

austinbaggio11 hours ago

Good flag, we're still pretty early, I think the strict requirement for compensation disclosures is post 15 employees in CA? Did I get this wrong?

senshan12 hours ago

What is the advantage over summarizing previous sessions for the new one?

Or, over continuing the same session and compacting?

austinbaggio11 hours ago

You can use it with summaries for sure, but summaries often miss edge cases and long sessions drift. This makes it easier to jump between tasks, come back days later, and reorient without missing something that the summarization or compaction might have gotten rid of. I've often found post-compaction, the memory of even the current session feels so much dumber.

ec10968510 hours ago

You can go to a previous session and resume from there. Plus keep updating the repo claude.md along the way:

alex_young10 hours ago

Doesn't Claude already use RAG on the backend?

fullstick10 hours ago

I like it when the conversation is new sometimes.

gaigalas9 hours ago

I like the fact that it forgets.

Each time an LLM looks at my project, it's like a newcomer has arrived. If it keeps repeating mistakes, it's because my project sucks.

It's an unique opportunity. You can have lots of repeated feedback from "infinite newcomers" to a project, each of their failures an opportunity to make things clearer. Better docs (for humans, no machine-specific hacks), better conventions, better examples, more intuitive code.

That, in my opinion, is how markdown (for machines only and not humans) will fall. There will be a breed of projects that thrives with minimal machine-specific context.

For example, if my project uses MIDI, I'm much better doing some specialized tools and examples that introduce MIDI to newcomers (machines and humans alike) than writing extensive "skill documents" that explain what MIDI is and how it works.

Think like a human do. Do you prefer being introduced to a codebase by reading lots of verbose docs or having some ready-to-run examples that can get you going right away? We humans also forget, or ignore, or keep redundant context sources away (for a good reason).

zyan1de12 hours ago

maybe you are in a claude code session and think "didn't i already make design doc for system like this one?" Or you could even look at your thought process in a previous session and reflect. but rn i mainly use it for reviewing research and the hypergraph retrieval

graphememes10 hours ago

stop wasting context space with this stuff ミ · · 彡

BonoboIO7 hours ago

Different approach: I continuously refine my global CLAUDE.md (~/.claude/CLAUDE.md) instead of external memory systems.

I work primarily in Python and maintain extensive coding conventions there - patterns allowed/forbidden, preferred libs, error handling, etc. Custom slash commands like `/use-recommended-python` (loads my curated libs: pendulum over datetime, httpx over requests) and `/find-reinvented-the-wheel` to catch when Claude ignored existing utilities.

My use case: multiple smaller Python projects (similar to steipete's workflow https://github.com/steipete), so cross-project consistency matters more than single-codebase context.

Yes, ~15k tokens for CLAUDE.md + rules. I sacrifice context for consistency. Worth it.

Also baked in my dev philosophy: Carmack-style - make it work first, then fast. Otherwise Claude over-optimizes prematurely.

These memory abstractions are too complicated for me and too inconsistent in practice. I'd rather maintain a living document I control and constantly refine.

jMyles9 hours ago

We built one too, with a web frontend and a 'spy' viewer in case your team wants to watch your interactions. Also has secret redaction:

https://github.com/jMyles/memory-lane

lloydatkinson10 hours ago

> Not magic. Not AGI. Just state.

Why did you need to use AI to write this post?

llmslave210 hours ago

Their brains are mush, lost the ability to focus on a task or do any deep thinking. Just proooooooooompt.

CPLX12 hours ago

I absolutely love this concept! It's like the thing that I've been looking for my whole life. Well, at least since I've been using Claude Code, which is this year.

I'm sold.

With that said, I can't think of a way that this would work. How does this work? I took a very quick glance, and it's not obvious at first glance.

The whole problem is, the AI is short on context, it has limited memory. Of course, you can store lots of memory elsewhere, but how do you solve the problem of having the AI not know what's in the memory as it goes from step to step? How does it sort of find the relevant memory at the time that that relevance is most active?

Could you just walk through the sort of conceptual mechanism of action of this thing?

austinbaggio12 hours ago

Appreciate it - yeah, you're right, models don't work well when you just give it a giant dump of memory. We store memories in a small DB - think key/value pair with embeddings Every time you ask Claude something, the skill:

1. Embeds the current request.

2. Runs a semantic + timestamp-weighted search over your past sessions. Returns only the top N items that look relevant to this request.

3. Those get injected into the prompt as context (like extra system/user messages), so Claude sees just enough to stay oriented without blowing context limits.

Think of it like: Attention over your historical work, more so than brute force recall. Context on demand basically giving you an infinite context window. Bookmark + semantic grep + temporal rank. It doesn’t “know everything all the time.” It just knows how to ask its own past: “What from memory might matter for this?”

When you try it, I’d love to hear where the mechanism breaks for you.

skuenzli12 hours ago

It looks to me like the skill sets up a connection to their MCP server at api.ensue-network.ai during Claude session start via https://github.com/mutable-state-inc/ensue-skill/blob/main/s...

Then Claude uses the MCP tools according to the SKILL definition: https://github.com/mutable-state-inc/ensue-skill/blob/main/s...

zyan1de12 hours ago

yeah so you can run it in automatic mode, or read only mode. In automatic mode it hooks onto the conversation and tool calls so you get the entire conversation stored. If you dont want to get super deep, then read only is safe and only stores what you ask. You could ask it things like "why is my reasoning dumb" by recalling passed conversations, or even give it the claude tool call sequence and ask "how can claude be smarter about next time".

I think of it like a file tree with proper namespacing and keep abstract concepts in separate directories. so like my food preferences will be in like /preferences/sandos. or you can even do things like /system-design preferences and then load them into a relevant conversation for next time.

DANmode12 hours ago

Total speculation:

Text Index of past conversations, using prompt-like summaries.

jijji8 hours ago

every time Claude code loads or it compacts the conversation it loses its context so I always type in: read CLAUDE.md .... which usually solves the problem... I run Claude code on a few screen sessions in different directories for months

idiotsecant7 hours ago

Not X, not Y, just slop

incoming12119 hours ago

[dead]