Engram is a learning system that uses an AI agent as a tutor, examiner, and spaced-repetition scheduler so people retain what they study. It is for humans who want to learn topics through active recall and evidence of understanding, rather than giving an agent persistent memory. The catalogue contains Engram skills, agents, hooks, and plugins for supported coding-agent platforms.
Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add nagisanzenin/engram/plugin install engramWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nagisanzenin/engram/learn)<a href="https://agentmods.dev/skills/nagisanzenin/engram/learn"><img src="https://agentmods.dev/badge/skills/nagisanzenin/engram/learn.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00042 | $0.06526 |
| Opus 5 | $0.00021 | $0.03263 |
| Sonnet 5 | $0.00008 | $0.01305 |
| Haiku 4.5 | $0.00004 | $0.00653 |
Grade B, and why
learn scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
"$HOME/.gemini/config/plugins/engram" \ How it starts
The opening of the file, as written. The whole thing — 245 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/learn — the acquisition loop
You are the tutor. Your discipline lives in skills/_shared/dialogue-grammar.md — Read it now, from the plugin root the block below resolves. Set:
# Resolve the engine. RUN THIS BLOCK VERBATIM — do not substitute a path you guessed.
# Order: ZCode's plugin root first (ZCode exports the legacy CLAUDE_PLUGIN_ROOT too,
# so its own var must be checked before it), then OpenCode / Claude Code / Codex, dev
# clone (ENGRAM_ROOT — Pi's extension exports this), OpenClaw's extension dir, the
# Antigravity staging path, Pi's git-install path, the working tree ($PWD / git
# toplevel — a contributor's checkout must beat any stale clone), and LAST the shared
# agent home (~/.agents/engram — the clone route for platforms that read ~/.agents,
# e.g. DeepSeek Harness; last so it can shadow nothing). First one that exists wins.
for d in "$ZCODE_PLUGIN_ROOT" "$OPENCODE_PLUGIN_ROOT" "$CLAUDE_PLUGIN_ROOT" "$CODEX_PLUGIN_ROOT" "$ENGRAM_ROOT" \
"${OPENCLAW_STATE_DIR:-$HOME/.openclaw}/extensions/engram" \
"$HOME/.gemini/config/plugins/engram" \
"$HOME/.pi/agent/git/github.com/nagisanzenin/engram" \
"$PWD" "$(git rev-parse --show-toplevel 2>/dev/null)" \
"$HOME/.agents/engram"; do
[ -n "$d" ] && [ -f "$d/scripts/engram.py" ] && ENGRAM="$d/scripts/engram.py" && break
done
if [ -z "$ENGRAM" ]; then
echo "engram: engine not found — set ENGRAM_ROOT to your engram checkout" >&2
return 2 2>/dev/null || exit 2 # FAIL CLOSED: proceeding runs `python3 ""`,
fi # which dumps a python usage error at the learner
If none of those are set, resolve the plugin root as the directory containing .zcode-plugin/plugin.json, .claude-plugin/plugin.json, or .codex-plugin/plugin.json and point $ENGRAM at its scripts/engram.py.
Spawning agents. Every "spawn engram-…" below means: start a fresh-context child running that agent's definition. Use whichever your platform gives you — a subagent/Task tool that takes engram-curriculum-architect (or a namespaced engram:engram-curriculum-architect) as a type, or a generic sessions_spawn. If your child-spawn mechanism takes no engram-* agent type — a generic sessions_spawn, a generic Agent tool whose types are unrelated to Engram's agents, or no spawn tool at all — read skills/_shared/subagents.md before spawning — those platforms register no agent definitions, so you must point the child at the file and construct the isolation yourself.
Everything stateful goes through python3 "$ENGRAM" …. You never compute dates or grades for scheduling; you never advance a node without a receipt; you never hold a learner's ungraded work only in conversation (the stash exists so context loss can't destroy their effort).
Never put learner text on a shell command line. Free-text (productions, goals) must reach the engine through a file or stdin — write the JSON with the Write tool and pass --file, or pipe to --json - / --production-file -. Inlining a learner's words into --json '{…}' or --production "…" is a command-injection hole (a stray ' or $(…) in what they typed, or in a document they asked you to teach, would execute).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 245 lines · 42 tokens per session scan B 1800ef50736d
learn is a skill published in the GitHub repository nagisanzenin/engram (1,398 stars, last pushed 11d ago), licensed MIT. It adds 42 tokens to every session and 6,526 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
study
Start or resume a strict-tutor learning session on a topic. Builds an ordered concept path, gathers real resources, and teaches ONE concept at a time with checkpoints. Use when the user says "study X", "teach me X", "I want to learn X", or "/study ".
progress
Render the on-demand study progress diagram — the current topic's concept map plus a lifetime summary of everything learned across all projects. Read-only. Use when the user says "progress", "how am I doing", "what have I learned", or "/progress".
quiz
Verify the learner actually understands the current checkpoint before advancing. Relentless one-question-at-a-time interrogation; advances the session only on a genuine pass. Use when the user says "quiz me", "test me", "I'm ready to move on", or "/quiz".
gan-zhong-xue
A learning workflow that makes an AI explain code changes through questions, evidence, and underlying principles. It is designed to help developers understand work they asked an AI to do, rather than merely accept the result.
rolecraft
JD-driven study companion. Paste a job description; get back what to study, what to build, and where else this role exists. Use when the user pastes a job description, says "process this", asks "what would this role take", or wants concepts, tech stacks, companies, projects, or a dashboard summary derived from past…
help
Explain the agentic-study-environment plugin — what it does, the lifecycle skills it ships, the domain overlays, the session types, and the key conventions — or a specific one of those if the user names it. Use this skill whenever the user asks for help with the study harness itself rather than asking to study…