engram

engram is a skill for Claude Code, Codex from techtheist/engram. It costs 78 tokens per session (6,647 once invoked), scanned A, a copy of engram, MIT.

A project memory system that stores durable decisions, reasons, cautions, problems, and insights in a local graph. It supplements normal project files and keeps only high-value knowledge that should remain useful later.

In plain words
What is it for?
Recalling relevant project context before substantial work, recording important decisions and lessons, tracking why things are configured a certain way, and closing knowledge gaps.
Why use it?
It prevents teams and agents from repeatedly rediscovering settled decisions or known pitfalls. Careful capture keeps the shared memory trustworthy and avoids copying ordinary code details.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/techtheist/engram/relaxed
Any agent
npx skills add techtheist/engram --skill relaxed
Clone the repo
git clone --depth 1 https://github.com/techtheist/engram

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for engram

README.md
[![agentmods](https://agentmods.dev/badge/skills/techtheist/engram/relaxed.svg)](https://agentmods.dev/skills/techtheist/engram/relaxed)
Your own site
<a href="https://agentmods.dev/skills/techtheist/engram/relaxed"><img src="https://agentmods.dev/badge/skills/techtheist/engram/relaxed.svg" alt="Measured on agentmods" height="20"></a>
Per session 78 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,647 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 100% copy Near-identical to another mod in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00078 $0.06647
Opus 5 $0.00039 $0.03324
Sonnet 5 $0.00016 $0.01329
Haiku 4.5 $0.00008 $0.00665

Measured 4d ago against content hash e711f0d529fa, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

engram scanned grade A with 0 findings 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 4d 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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

This is a copy

100% identical to engram — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

skills/engram/relaxed/SKILL.md · 197 lines

How it starts

The opening of the file, as written. The whole thing — 197 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Engram — project memory (Relaxed)

Engram is a local, user-owned graph of why things are the way they are in this project: decisions and their reasons, gotchas that bit us, problems and how they were solved, stable preferences. Not code structure, not implementation detail — the codebase already holds those.

What good capture buys. A session that recalls well starts where the last one stopped: settled decisions don't get relitigated, known rakes don't get stepped on twice, and "why is it like this?" gets a real answer instead of archaeology. A session that captures well pays that forward. And because the graph is a pane the user curates — not hidden plumbing — every node you write is something they will see. That's also the failure mode to respect: a graph that's noisy or wrong stops being trusted, and an untrusted graph stops being read. Quality of nodes, honesty of edges, and closed loops matter more than volume.

This is the Relaxed variant: capture only durable, high-value, non-obvious knowledge. When in doubt, prefer fewer, better nodes.

Claude Code already has memory of its own (CLAUDE.md, auto-memory) — don't mirror it. Engram is additional: it holds the project's reasoning — decisions with reasons, conflicts, gotchas — not user preferences, session workflow, or code structure.

You interact with it through the engram MCP tools. Three jobs: recall (read before you act), capture (write durable knowledge after you act), and maintenance (keep what's already there honest).

  • At the start of a session, call brief once: a compact digest of the canon — unresolved conflicts, suspects to judge, recent changes, the open worklist, principles, decisions, cautions. Every record carries its node id; act on ids directly. If the session already opens with an injected "# Engram brief" (the session-start hook provides it), that IS the brief — read it and don't call the tool again.
  • Before any non-trivial decision, call search with a natural-language description of what you're about to do. Hits carry their 1-hop neighbors, conflicts-with/replaces first — read those especially. Search takes a detail level — start compact (id/title/score only) when scanning broadly, default snippet when working, full (bodies attached) only for the hits you'll actually act on: expand on demand instead of paying for depth up front. If a prior Decision or Caution covers your situation, follow it or, if you're about to contradict it, surface that to the user.
  • Respect the reply's confidence verdict. strong — the top hit cleared the calibrated line; act on it. weak — likely not in memory: nothing cleared this graph's calibrated line (auto-tune fits it per graph), so the hits are the nearest candidates rather than a found answer — they are never cut, but verify against the code or the user before relying on one. none — the graph is silent: say so instead of inventing a memory, and capture the fact once this session establishes it. Weak tail hits and the noise past the score cliff are already trimmed before delivery, so what arrives is what deserves your attention.
  • On a weak or none verdict, reformulate before concluding absence. One phrasing is one probe, and the graph's register is rarely the user's: try two or three angles before deciding the memory isn't there — entity-first (name the thing: "tepin store lock", not "why won't the daemon start"), paraphrased into the graph's vocabulary (the words a note would have used, not the words the question used), and date-anchored (after: "last week", or during_version when you roughly know the cycle). Each is one cheap call. Only after that is "the graph is silent" an honest answer rather than a failed first guess.
  • Scope in time when the question is temporal. search takes after / before — a day (2026-08-14), an ISO instant, or a relative expression the daemon resolves (today, yesterday, last week, last 3 days, 2 hours ago, a month ago, this year) — plus during_version ("0.8.4", resolved from the graph's own recorded version switches) and order (chronological to read how something developed, recent for the current value of something that changed). Don't compute dates yourself — pass the expression and let the daemon resolve it against one clock. The window filters before the confidence verdict, so a scoped verdict describes the scoped set, and the same grammar works on scope: "memory" and scope: "history". Hits carry created_at, so a result's place in time is always visible.
  • Use get_node / traverse to pull the reasoning around a hit (e.g. a Decision and the Principle it stands on).
  • For history: timeline walks a node's replaces chain oldest-first, each retired generation carrying the note that explains why it was replaced. audit pages the mutation journal — "what changed while I was away", "who wrote this".
  • For whole-graph work: list_nodes pages complete nodes (full bodies, filters by type/status/tag) — the lossless read for reviews and exports like a decisions.md; update_nodes / add_notes batch a curation sweep or a multi-note capture into one call (same per-item dupe checks and warnings).
  • list_open shows the live worklist (open Problems and Intents) — check it when picking up work.

Read the full file on GitHub · 197 lines

Changes

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.

  1. 4d ago First seen · 197 lines · 78 tokens per session scan A e711f0d529fa

Subscribe to this mod's changes

engram is a skill published in the GitHub repository techtheist/engram (18 stars, last pushed yesterday), licensed MIT. It adds 78 tokens to every session and 6,647 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to engram, differing in 0 lines, and is treated as a copy.

Related

Other skills, from other repositories

garden-tending

Tend the knowledge garden — diagnose vault health, condense project memos into project.md overviews, create/merge cross-project topics, fix broken links, archive superseded notes, extend trails. Trigger on "tend the garden", "condense", "update project overview", "check vault health", "where are we with X?", "what…

linxule/memex-plugin · 131 tokens

curator-practice

Operating philosophy for autonomous memex curator tending — orientation protocol, signal triage, bounded work units, initiative thresholds, logging conventions. Trigger on cron-launched runs with no user prompt, "use your judgment", "tend without instructions", "do a pass on the vault", "I'll be away — do what needs…

linxule/memex-plugin · 153 tokens

recall

Retrieve session memory across 4 modes — TEMPORAL (date browsing), KEYWORD (FTS lookup), DEEP (cross-session synthesis), LOAD (specific file). Trigger on "what did I do yesterday/last week", "why did we...", "remind me...", "find the memo about...", "last time we...", "patterns across projects", "load the X topic". Do…

linxule/memex-plugin · 112 tokens

memo-writing

How to write effective session memos — format, frontmatter schema, observation extraction, topic-signal append. Trigger on /memex:save, "save this for later", "remember this", "save what we discussed", "document this session", "create a memo", or when the [memex] activity nudge appears in context. Do NOT trigger for…

linxule/memex-plugin · 125 tokens

health

Vault health audit — orphans, broken links, type-aware stale-review candidates, growth stats. Use whenever the user mentions vault maintenance, orphans, broken links, 'is my vault clean', 'проверь vault', 'сироты', 'битые ссылки', 'здоровье базы знаний', 'здоровье памяти', 'здоровье обсидиана', or asks for vault…

jojoprison/mnemo · 123 tokens

save

Use right after something worth keeping appears — you solved a tricky bug, made a non-obvious decision, hit a gotcha, or the user voiced a business rule, a pain, or how they think/decide — proactively, without being asked, so a future session doesn't relearn it. Also when the user says 'remember this', 'save this'…

jojoprison/mnemo · 249 tokens