grandma
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 42 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in demo/setup-demo.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
A memory layer for Claude Code that learns as you work. Persistent, per-context memory as plain markdown in your own git repo. No server, no telemetry.
grandma
A memory layer for Claude Code that learns as you work.
Your AI forgets everything between sessions. Every morning you re-explain your stack, your conventions, your client, your life. Grandma fixes that. She gives Claude Code a persistent memory that is yours (plain markdown in your own git repo), separated by sweater (one per part of your life, kept apart), and learned passively while you work.
A sweater is a context you keep separate memory in — one company, one client, your
job hunt, your writing. Open a sweater and grandma remembers everything about that part
of your life and nothing from the others. Your projects live inside a sweater.
Grandma does three things a single session never can:
- Keeps your worlds apart. Client A's memory never shows up in a client B session — enforced by a test, not by discipline.
- Remembers across all of them, forever. Tell her once, in any session; every future session in that sweater knows.
- Analyzes your whole history and acts on it. She can study weeks of your chats and turn what she finds into memory:
$ grandma "analyse my last 2 weeks of chats, write how I actually write, and make it part of my identity"
grandma> read 1,297 of your messages across 19 sessions.
✓ wrote global/style.md (3 registers: how you type, how your work should read, how you write prompts)
✓ updated global/identity.md
review it: git -C ~/.grandma diff
Here is the everyday loop. Teach her once, and a brand new session already knows:
# Monday
$ grandma acme
you> we use pnpm here, never yarn. and never push to main directly.
grandma> ✓ noted (preference) -> acme/facts.md: pnpm only, no direct pushes to main
...continues your actual task...
# Thursday, brand new session
$ grandma acme
grandma> ▣ memory: acme loaded · 4 files · ~1.9k tokens
you> set up the new billing service
grandma> Scaffolding with pnpm. I'll open a PR rather than pushing to main.
Watch it happen:
Install
curl -fsSL https://raw.githubusercontent.com/anshulforyou/grandma/master/install.sh | bash
That clones the engine, creates your private memory home, and offers a two-minute interview where grandma learns who you are. Or manually:
git clone https://github.com/anshulforyou/grandma && cd grandma && ./bin/grandma init
Requirements: Claude Code, git, jq, python3. macOS or Linux (Windows via WSL). grandma doctor checks everything and tells you how to fix what is missing.
Tab completion
Optional, and worth it. With it on, grandma <TAB> lists your sweaters, grandma per<TAB> completes the one you mean, and grandma acme <TAB> lists the projects under acme. Add one line to your shell rc:
# bash: add to ~/.bashrc
eval "$(grandma completions bash)"
# zsh: add to ~/.zshrc, below an existing `autoload -Uz compinit && compinit`
eval "$(grandma completions zsh)"
Start a new shell and press TAB after grandma. Grandma does not touch your rc file for you, so turning this on stays your call.
How it works
Three layers of memory, loaded in the right amounts at the right times:
global/ who you are, how you like to work always loaded
<sweater>/ one folder per context: a job, a client, loaded for that sweater only
a side project, your job hunt
project CLAUDE.md deep per-project instructions auto-loaded in that folder
grandma acmeassembles global + acme memory and launches Claude Code with it.grandma acme billing-apialso drops you into that project so its CLAUDE.md rides along.grandmaalone shows a picker, including "describe a new sweater" where you explain a new context in plain words and grandma scaffolds it.
Memory lives in GRANDMA_HOME (default ~/.grandma), a git repo that belongs to you. The engine never stores your data next to its own code.
She learns while you work
During a session, when something worth keeping comes up (a preference, a correction, a fact that changed, a lesson), grandma writes it to the right memory file and tells you in one line:
✓ noted (correction) -> global/preferences.md: never auto-commit, review diffs first
Writes land as uncommitted diffs in your memory repo. git diff is your review queue. Nothing is committed behind your back.
She survives the context window
Long sessions hit Claude Code's compaction and normally lose their instructions. Grandma installs a hook that re-injects your memory the moment compaction happens, so hour six behaves like minute one. When you exit, grandma looks over the session right then and shows you what she noted — the live diffs plus a drafted proposal — and asks whether to review now or leave it. Nothing is applied without you. (Sessions you didn't start with grandma get the same distill quietly in the background, surfaced at your next launch.)
She watches for your blind spots
grandma watch start "why are my sessions getting longer?" --weeks 2
For two weeks grandma measures every session (duration, turns, tokens, compactions, tool calls) and reads the substantial ones. When the window closes you get a notification and a grounded report: the patterns, the numbers, what to change. It found real bugs in its own development. It will find your habits too.
Day to day
Eight recipes with real transcripts in docs/use-cases.md:
- Stop re-explaining your stack every session
- The correction that sticks forever
- Client A and client B, with contexts that cannot bleed
- Onboard a new project in five minutes
- Survive a marathon session
- End the day, review what she learned
- Find out why your sessions drag
- Grandma is not just for work
Why files, why git
| grandma | one big CLAUDE.md | hosted AI memory | vector memory stores | |
|---|---|---|---|---|
| Your data lives | your disk, your git repo | your repo | their servers | a database |
| Sweater isolation | hard guarantee, tested | one file for everything | opaque | query-dependent |
| Review changes | git diff |
manual | no | no |
| Learns passively | yes | no | sometimes | app-dependent |
| Survives compaction | yes, self-heals | partially | n/a | n/a |
| Telemetry | none | none | yes | varies |
Trust
- 12 tested invariants guard the core promise: loading sweater X injects exactly global + X and nothing else, the engine contains no sweater jargon and no personal data, no secrets in memory, hooks cannot recurse or run away. The suite gates every commit and runs in CI on macOS and Linux.
- No telemetry, no server, no accounts. Your memory never leaves your machine.
- Failure modes are documented, not hidden: docs/architecture.md includes the war stories, like the day a hook recursion produced 4,718 files before the circuit breaker existed.
Commands
grandma pick a sweater, or describe a new one
grandma <sweater> [project] launch a remembered session
grandma init | doctor setup and health checks
grandma save <sweater> [project] distill a finished session into memory
grandma review [sweater] review what background distills proposed
grandma ingest [sweater] catalog an existing folder of projects
grandma watch ... analysis campaigns over your sessions
grandma test [sweater] verify the integrity invariants
grandma completions bash|zsh print the shell tab-completion script
grandma knit coming next: share a project's memory with a teammate (see below)
Known quirks (v0.1)
- Exit sessions with Ctrl+D, not
/exit. Claude Code's/exitskips SessionEnd
hooks (upstream issue), so the end-of-session distill only runs on Ctrl+D. Manual
fallback always works:grandma save <sweater>. - Sweater names that collide with subcommands (
init,save,review,ingest,watch,test,doctor,help) are reserved. - macOS is the daily-driven platform. Linux is CI-tested but younger: if something
misbehaves,grandma doctorfirst, then an issue with its output.
Where this is going: remember, watch, knit
Grandma is being built in three phases, and you are looking at the first two.
Remember (shipped). Scoped memory: who you are, how you work, what each
context needs. Loaded every session, learned passively, reviewed via git.Watch (shipped). She analyzes how you actually work:
grandma watchmeasures
your sessions, reads the substantial ones, and reports the patterns behind your
long sessions and wasted tokens.Knit (next). The sharing phase. Two people work the same project, and each one
builds their own memory of it locally: the sharp edges, the decisions, the things
that only bite you once. Knit lets you trade those. You rungrandma knit share <sweater>and your project memory, personal scope stripped out, goes to your teammate. They
get a ping, pull it with grandma, and see it laid against their own: a diff between
your memory and theirs, so each side keeps what it wants. Think git, but for the
context in your heads instead of the code on disk. Remember builds your memory.
Watch sharpens it. Knit reconciles yours with a teammate's. It is early and open
for design: how the two memories merge when they disagree, what gets shared versus
kept private, how a note's origin is tracked. Contributions and design ideas for
knit are welcome: open an issue with theknitlabel.
Roadmap
- grandma knit: share a project's memory with your team (see above)
- Adapters beyond Claude Code (Cursor, Codex CLI, aider)
- Community sweater templates (share your best sweater setups)
- Memory rollup (old logs compress instead of growing)
License
MIT. Built by @anshulforyou. Knitted by a grandma who never forgets.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found