by anshulforyou
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.
# Add to your Claude Code skills
git clone https://github.com/anshulforyou/grandmaGuides for using cli tools skills like grandma.
grandma is an open-source cli tools skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by anshulforyou. 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. It has 58 GitHub stars.
grandma's catalog security scan is still queued. You can run an instant dependency and prompt-injection check now with the "Scan for vulnerabilities" button above.
Clone the repository with "git clone https://github.com/anshulforyou/grandma" and add it to your Claude Code skills directory (see the Installation section above).
grandma is primarily written in Shell. It is open-source under anshulforyou on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other CLI Tools skills you can browse and compare side by side. Open the CLI Tools category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh grandma against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Unlocks once the catalog security scan passes (runs nightly).
The deep catalog scan for this skill is still queued. Run an instant dependency check now instead.
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:
$ 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:
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.
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.
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 acme assembles global + acme memory and launches Claude Code with it.grandma acme billing-api also drops you into that project so its CLAUDE.md rides along.grandma alone 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.
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.
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.)
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.
Eight recipes with real transcripts in docs/use-cases.md:
| 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 |
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)
/exit. Claude Code's /exit skips SessionEnd
hooks (upstream issue), so the end-of-session distill only runs on Ctrl+D. Manual
fallback always works: grandma save <sweater>.init, save, review, ingest,
watch, test, doctor, help) are reserved.grandma doctor first, then an issue with its output.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 watch measures
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 run
grandma 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 sharpe