Show HN: Persistent memory for Claude Code sessions

Posted by tonyystef 7 days ago

Counter20Comment14OpenOriginal

Comments

Comment by tonyystef 7 days ago

I kept watching Claude Code spend 10 minutes re-exploring files it already analyzed yesterday. Same patterns, same architecture, every session starting from zero.

So I built grov. It runs a local proxy that intercepts Claude Code's API calls, captures reasoning from each session (via LLM extraction), stores it in SQLite, and auto-injects relevant context into future sessions.

In testing: baseline task took 10-11 min with 3+ explore agents launched. With context injection: 1-2 min, zero explore agents. Claude just reads the files directly because it already knows the codebase patterns.

How it works:

-Run grov init

- Run grov proxy (keep it running)

- Use Claude Code normally

- Grov captures what Claude learns, injects it next session

It's local-only (SQLite), nothing leaves your machine. Currently ~250 npm downloads with no promotion, which pushed me to share it here.

Still early (v0.2.2). Would love feedback from Claude Code users. Please report bugs!

Comment by tom1337 1 day ago

Why don’t you just resume the previous session with Claude so it keeps the context?

Comment by tonyystef 1 day ago

Resume keeps one session alive. Grov gives you knowledge from all past sessions (yours + your team's), filtered to what's relevant right now. It's really built for teams using coding agents to build software together.

Example: My cofounder debugged the payment flow last week. When I touch payment code today, his reasoning is automatically injected into my session.

Comment by tom1337 1 day ago

Alright sounds nice - I guess for teams it makes sense then but as a soll developer, claude resume currently works well:)

Comment by jatins 1 day ago

What value does it provide over, say, just asking Claude to keep state in a markdown file that it can access across sessions?

Comment by tonyystef 1 day ago

Good question!

1. Automatic capture with structured extraction: Grov uses Haiku to extract reasoning_trace (conclusions + insights) and decisions (choice + why) from each session. You don't write anything, it captures automatically.

2. Intelligent injection by file match: When you edit src/auth/login.ts, Grov queries past sessions that touched auth files and injects only that context. A markdown file would be read entirely every time, wasting tokens. (next version will also include semantic search)

3.Team sync: Automatically syncs to a team dashboard. When dev A explains the auth system, dev B's Claude knows it automatically while doing related work.

Technically this was the core idea of Grov, for my coding agent to know the reasoning behind why my cofounder's coding agent chose to implement xyz in such way.

Comment by karn97 1 day ago

[dead]

Comment by uptownhr 1 day ago

I also built something similar. Utilizes ZEP for building a temporal graph that keeps track of facts.

https://github.com/Zabaca/temporal-bridge

Comment by smcleod 12 hours ago

I see it requires an ANTHROPIC_API_KEY, does that mean it does not work with Claude Max plans?

Comment by henryquillin12 7 days ago

How do you ensure each memory is still relevant?

Comment by simgt 1 day ago

That thing is 15kLOC of Typescript vibe-coded over the span of two days. At this point you're better off asking an AI if you have a question about what the code does...

Comment by Zetaphor 1 day ago

The repo history shows about two weeks of development. If you can't be bothered to do basic due diligence before critiquing, your opinion is just as 'vibe-based' as you claim the code is.

Comment by simgt 1 day ago

Fair enough, my comment was unnecessarily harsh.

Comment by 1 day ago

Comment by tonyystef 1 day ago

Appreciate it.

Comment by tonyystef 1 day ago

Currently we match by:

File paths: If you're touching src/auth/, we inject memories that touched auth files. Recency: Most recent memories first, limited to top 10

Semantic search is on the roadmap but not implemented yet. Right now it's straightforward file matching + recency.

(Appreciate the question, really have to start working on this; not the first time someone asked :))