
Codex builds faster than I can understand what it built. So I built Engram, a learning system that runs inside the agent (real memory science, 100% local)
Why I built this
Codex ships the feature in twenty minutes. I'm still the one who reviews it, debugs it at 11pm, and explains it in front of people. That gap is the uncomfortable part of this era for me: the bottleneck quietly moved from "how fast can we build" to "how fast can we genuinely learn." We got a 10x tool for building. I wanted one for understanding.
So I built Engram. An engram is the physical trace a memory leaves in your brain, which is literally what this thing is supposed to produce.
Full honesty up front: this started as a Claude Code plugin, and a post about it recently blew up on r/claudeskill. But learning infrastructure shouldn't be locked to one agent, so I made the repo omni-agent: same skills, same engine (they're the open SKILL.md standard, shared verbatim), now running natively on Codex, with more agentic platforms coming in the next few days.
How it works
Three skills: $learn, $review, $coach. Underneath is the boring learning science that actually replicates, and none of the fun stuff that doesn't:
- retrieval practice: it tests you constantly, because testing IS the treatment, not the measurement (Roediger & Karpicke 2006)
- real spaced repetition: FSRS, the same modern scheduler Anki uses, fitted to your own review history over time
- generation first: you predict or attempt before it explains. It won't just hand you the answer, unless you say "just tell me", in which case it complies and quietly books that concept for an earlier review, because told-not-derived decays faster
- every topic becomes a first-principles concept graph ("why must this be true given that"), never textbook chapter order
- threshold concepts get generated interactive HTML explorables, sliders and prediction gates, because some things you have to poke
- explicitly no "learning styles". That theory failed every controlled test. It adapts from your measured retention instead.
The design decision I'm happiest with: the tutor never grades you. A separate assessor agent grades your free recall blind, rubric in hand, without ever seeing the lesson, and writes a receipt to disk. In my first real session the tutor was convinced things went great; the assessor came back with 1 recalled, 4 partial, 1 lapsed. It was right. (It also once logged confidence scores I never actually stated, so "never invent the learner's confidence" is now a hard rule in the code. A system that pushes back on its own optimism turned out to be the whole point.)
One Codex-specific difference: Codex spawns subagents only when you name them, so you summon the examiner explicitly with $engram-assessor at the end of a session. It stays exactly as blind, it just doesn't appear uninvited.
Does it work
Same honest answer as the original post: the science underneath is some of the most replicated stuff in psychology, the plugin itself is still small-n, and my retention data is still cooking. What I can report is that I used it to learn transformer internals and derived about half the concepts myself before being shown anything, which never happens when I just read.
And the part I want you to hold me to: the Codex glue is the newest code in the repo. The skills and the stdlib-only Python engine are shared verbatim with the Claude Code version and selftested, but the plugin route hasn't seen many live Codex installs yet. If it misbehaves, "npx skills add nagisanzenin/engram" installs the skills directly and carries the whole loop, and an issue describing what you saw is worth gold to me.
Install
codex plugin marketplace add nagisanzenin/engram
codex plugin add engram@engram
Then $learn anything. It's not code-only: history, music theory, anatomy all work. $review takes 2-4 minutes of free recall when reviews come due (a session-start hook pings you, and stays silent otherwise). $coach shows retention stats and a local HTML dashboard. Everything is plain JSON on your machine, and the engine has zero network code. Set ENGRAM_HOME=~/.engram if you'd rather not host a .claude folder.
Needs python3, no pip installs, MIT licensed. Repo: https://github.com/nagisanzenin/engram
If you try it, tell me where it feels annoying. The failure mode of every learning tool ever made is that you stop showing up, so friction reports are worth more to me than praise.