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.
npx skills add scarletkc/Perenna --skill perenna-memorygit clone --depth 1 https://github.com/scarletkc/PerennaWrote 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/scarletkc/perenna/perenna-memory)<a href="https://agentmods.dev/skills/scarletkc/perenna/perenna-memory"><img src="https://agentmods.dev/badge/skills/scarletkc/perenna/perenna-memory/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/scarletkc/perenna/perenna-memory"><img src="https://agentmods.dev/badge/skills/scarletkc/perenna/perenna-memory.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00057 | $0.00889 |
| Opus 5 | $0.00028 | $0.00445 |
| Sonnet 5 | $0.00011 | $0.00178 |
| Haiku 4.5 | $0.00006 | $0.00089 |
Grade A, and why
perenna-memory 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Perenna Memory
Treat permanent memory as a curated knowledge base, not a transcript, task log, or substitute for inspecting the current workspace.
Keep one durable memory
When the host also provides built-in memory, treat it in this workflow as a host-local advisory cache unless the user explicitly assigns it another role; do not assume it has Perenna's durability, Git auditability, or sharing scope. Use Perenna for knowledge meant to survive across sessions and be shared by clients or instances using the same Perenna store.
Do not mirror, dual-write, or repeatedly reconcile the same fact. Query only the layer needed, curate a durable fact in Perenna once after checking for an existing memory, and never bulk-import built-in memory without an explicit, scoped request.
Default authority order: current user instructions, designated current workspace instructions and canonical sources together with validated runtime evidence, Perenna, then host-provided memory. The user may explicitly choose another authority for a particular task.
Decide whether to use memory
Read memory when prior preferences, constraints, decisions, project history, or workflows could change a non-trivial task. Also read when the user asks what was decided or done previously.
Skip memory for self-contained requests such as a simple translation, a one-line rewrite, or a fact fully supplied in the current prompt.
If the Perenna tools are absent or a call fails, follow Perenna unavailable. Do not simulate a memory call or claim that anything was read, remembered, or forgotten.
Retrieve only relevant context
For a relevant task:
- Use
memory_readwithaction: "list"to inspect the lightweight index. Include the current project slug when it is known. - Use
action: "search"with a task-specific query when the index does not identify the needed topic directly. Include the project slug so unrelated project memories are excluded before ranking. - Treat ranked passages as candidates, not proof. Use
action: "get"before relying on a complete memory, updating it, or deleting it.
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 10d ago First seen · 94 lines · 57 tokens per session scan A 147613b786d9
perenna-memory is a skill published in the GitHub repository scarletkc/Perenna (39 stars, last pushed 10d ago), licensed MIT. It adds 57 tokens to every session and 889 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
membrain
Shared long-term memory over MCP. Call memorycontext once at the start of any session/task to load what is already known; use searchmemory before answering questions about the user or their projects; save durable facts, preferences, and decisions with savememory / savememories. All agents and the user share the same…
memory-audit
An entry point for reviewing and maintaining an AI agent's stored memories. It describes how to remove repetition, preserve useful reasoning, and update memories when old conclusions no longer fit.
memory-audit-discoverability
A review guide for checking whether stored memories can be found at the right time. It focuses on where memories are attached, when they are triggered, whether aliases are missing, and whether a parent has too many children.
memory-audit-pattern-extraction
A method for investigating repeated mistakes by comparing related memories and checking whether an earlier reminder failed. It looks at where the reminder was stored, when it was created, and whether it was strong enough to prevent the mistake.
plur-create-engrams
Create or improve PLUR engrams from conversations, documents, decisions, observations, and explicit preferences. Use for memory extraction, engram authoring, or reviewing proposed memories, including global, scoped, pinned, retrieved, and provisional knowledge. Ordinary use of existing memories does not require this…
deja-search
Search deja before re-deriving past work: when the user refers to earlier sessions or decisions, before debugging an error, and before implementing something that may already exist. It searches this machine's own history across every AI coding tool used on it, going back further than deja itself was installed.