by nagisanzenin
Evidence-based learning engine for Claude Code — first-principles curricula, free-recall verification with receipts, FSRS-scheduled memory, and explorable artifacts. Learn anything; keep it.
# Add to your Claude Code skills
git clone https://github.com/nagisanzenin/engramengram is an open-source ide extensions skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by nagisanzenin. Evidence-based learning engine for Claude Code — first-principles curricula, free-recall verification with receipts, FSRS-scheduled memory, and explorable artifacts. Learn anything; keep it. It has 69 GitHub stars.
engram'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/nagisanzenin/engram" and add it to your Claude Code skills directory (see the Installation section above).
engram is primarily written in Python. It is open-source under nagisanzenin on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other IDE Extensions skills you can browse and compare side by side. Open the IDE Extensions category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh engram 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.
claude plugin marketplace add nagisanzenin/engram
claude plugin install engram@engram
Then, inside Claude Code:
/learn kalman filters ← or music theory, or Rust lifetimes, or anything
That's the whole onboarding. No config, no account, no cards to write. Requires python3 (stock macOS/Linux one is fine — stdlib only).
You already ask Claude to explain things. It explains beautifully. You nod, you feel smart, and ten days later it's gone — because a chat has no memory of you, no test of whether you really got it, and no plan for the forgetting that starts the moment you close the terminal.
Engram is what's missing around the explanation: a tutor that makes you do the thinking, an examiner that checks you actually got it, and a scheduler that brings each idea back right before your brain drops it.
| Engram is | Engram is not |
|---|---|
| a tutor that makes you produce answers before it explains | a chatbot that explains while you nod along |
| a memory system — every concept gets a future review date | notes and summaries you'll never reopen |
| an independent examiner that grades you blind, in writing | self-assessed "yeah, makes sense" |
| plain JSON files on your machine | a cloud service, account, or subscription |
Concretely, installing it gives you: three slash commands (/learn, /review, /coach), a quiet session hook that tells you when reviews are due (and says nothing otherwise), and a state folder at ~/.claude/learning/ that you own and can read.
recall
100% ─┐ just reading 100% ─┐ with engram
│\ │\ ●╌╌╌●╌╌╌╌╌●╌╌╌╌╌╌╌●╌╌
│ \ │ \ ╱ ╲╱ ╲╱
│ \__ │ ●──╱
│ \____ │
│ \_______ │ each ● = a 2–4 minute /review,
0% ─┴──────────────────── day 30 0% ─┴─ booked just before you'd forget
YOU ──→ /learn transformers
│
▼
┌────────────────────────────────────────────────────────────────┐
│ CURRICULUM ARCHITECT │
│ breaks the topic into a first-principles concept map: │
│ "what must be understood before what" — never chapter order. │
│ flags the few THRESHOLD concepts † that unlock everything. │
└────────────────────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ THE TUTOR (your normal Claude chat, under strict rules) │
│ │
│ per concept: open a question → you PREDICT → struggle a │
│ little (hints, not answers) → resolve → you EXPLAIN IT BACK │
│ │
│ threshold concepts get a generated interactive HTML │
│ explorable — sliders and prediction gates, not more text. │
└────────────────────────────────────────────────────────────────┘
│ your answers, verbatim (crash-safe stash on disk)
▼
┌────────────────────────────────────────────────────────────────┐
│ THE ASSESSOR (separate agent — grades blind) │
│ sees only the rubric and your words, never the lesson. │
│ every grade becomes a receipt on disk. no receipts, │
│ no mastery claim. │
└────────────────────────────────────────────────────────────────┘
│ receipts
▼
┌────────────────────────────────────────────────────────────────┐
│ THE SCHEDULER (engram.py — deterministic code, not vibes) │
│ FSRS-4.5 fits your personal forgetting curves and books │
│ each concept's next review just before you'd lose it. │
└────────────────────────────────────────────────────────────────┘
│
▼
next session: [engram] 6 reviews due (transformers: 6) · ~4 min
│
├──→ /review 2–4 minutes of free recall
└──→ /coach weekly: stats · dashboard · tuning
From the first live topic taught with Engram (transformer internals). Note who does the thinking:
◆ node 6/13 · nonlinearity-necessity †
engram Delete σ for a second. The FFN is now just W₂·(W₁·x).
What is W₂·W₁ — and what has the two-layer FFN collapsed into?
you i dont know really
engram Fine — that's a commitment. Forget matrices. W₁ = "×2",
W₂ = "×3". Run a number through both, nothing in between.
Two steps of computation… or secretly one?
you basically 2x3
engram That's the whole secret, and you just said it. ×2 then ×3 = ×6:
two linear layers fuse into ONE. Fifty of them? Still one matrix.
Depth means nothing until a nonlinearity blocks the fuse —
and that's why σ is not optional.
At session end, the assessor — which never saw that dialogue — graded the learner's six answers: 1 recalled · 4 partial · 1 first-retrieval, while the tutor was convinced the session went great. The schedule believed the assessor. That separation is the point: your future reviews are built on verified evidence, not on the tutor's enthusiasm (or yours).
| Command | What happens | Time |
|---|---|---|
/learn <topic> |
Intake (your goal, your background) → concept map → pretest → generation-first teaching → blind grading → everything scheduled | 5–60 min, you pick |
/review |
Due concepts, free recall, interleaved across topics. The habit that makes it all permanent | 2–4 min |
/coach |
Retention stats, calibration, local HTML dashboard, schedule tuning, n-of-1 experiments | weekly-ish |
Everything else is ambient: the session hook nudges when reviews are due and is silent otherwise.
Engram implements the four most-replicated findings in learning science — and deliberately skips the popular myths (no "learning styles"; that theory failed every controlled test):
The load-bearing evidence: retrieval practice (Roediger & Karpicke 2006; Karpicke & Blunt 2011, Science; Dunlosky et al. 2013 "high utility"), distributed practice (Cepeda et al. 2006; Rawson & Dunlosky 2011), desirable difficulties & the fluency illusion (Bjork 1994; Koriat & Bjork 2005), pretesting (Richland, Kornell & Kao 2009), the ~85% difficulty sweet spot (Wilson et al. 2019), self-explanation & ICAP (Chi et al. 1994; Chi & Wylie 2014), multimedia principles behind the explorables (Mayer; Paivio), step-level tutoring ≈ human tutors (VanLehn 2011), FSRS scheduling (open-spaced-repetition, Anki's modern default), and the learning-styles refutation (Pashler, McDaniel, Rohrer & Bjork 2008).
Full treatment with design consequences: docs/01-foundations.md · what exists and what's missing in every other tool: docs/02-prior-art.md · system design: docs/03-architecture.md · roadmap & constitution: docs/04-roadmap.md
Your mastery map, any time (/learn shows it, /coach renders the full dashboard):
transformers — Transformers from first principles
██▒▒▒▒▒▒▒▒▒▒▒░░░░░░░░░░░ 1 retained · 6 learning · 6 untouched
● contextual-meaning due 2026-07-09 S=3.7d
◐ residual-stream † due 2026-07-06 S=1.4d
◐ nonlinearity-necessity † due 2026-07-06 S=1.4d
· depth-necessity † due — S=—
Interactive explorables for threshold concepts — self-contained HTML with prediction gates (content stays locked until you commit a guess), manipulable models, and embedded retrieval prompts. A local HTML dashboard (/coach dashboard) with per-topic maps, retention-by-strength bars vs. the 85% target band, honest calibration, and your next-7-days forecast. Both live in ~/.claude/learning/artifacts/ — no network, ever.
How is this different from just asking Claude to explain? Asking produces understanding; understanding decays on the same curve as everything else. Engram adds the three things a chat can't: verification (did you actually get it?), memory across sessions (a