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.
git clone --depth 1 https://github.com/TerminallyLazy/Tree-Ring-MemoryWrote 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/commands/terminallylazy/tree-ring-memory/tree-ring-capture)<a href="https://agentmods.dev/commands/terminallylazy/tree-ring-memory/tree-ring-capture"><img src="https://agentmods.dev/badge/commands/terminallylazy/tree-ring-memory/tree-ring-capture/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/commands/terminallylazy/tree-ring-memory/tree-ring-capture"><img src="https://agentmods.dev/badge/commands/terminallylazy/tree-ring-memory/tree-ring-capture.svg" alt="Reviewed on agentmods" width="80" 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.00013 | $0.00921 |
| Opus 5.5 | $0.00005 | $0.00368 |
| Sonnet 5.5 | $0.00003 | $0.00184 |
| Haiku 4.5 | $0.00001 | $0.00092 |
Grade A, and why
tree-ring-capture 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 1mo 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.
Copies of this mod
1 near-identical copy found in the catalogue:
- tree-ring-capture — 89% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 102 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Tree Ring Capture
Capture only durable, useful memory. Do not store transcripts, secrets, credentials, raw chain-of-thought, or unverified claims as truth.
Lifecycle Stop Checkpoint
Stop and SubagentStop hooks enforce one agent-mediated checkpoint. The hook
never inspects or persists transcript_path, last_assistant_message, prompts,
or transcript content. Evaluate the grounded work already in the active agent's
context. If there is no durable, normal-sensitivity candidate, do not write a
memory.
For each qualifying candidate, use the exact identity-bound template returned by the lifecycle handler. Its strict shape is:
tree-ring --root .tree-ring capture "<concise summary>" \
--event-type <preference|decision|lesson|warning|correction|seed> \
--ring <cambium|scar|seed> \
--project <project> \
--agent-profile <profile> \
--workflow-id <workflow> \
--session-id <session> \
--operation-id auto-<checkpoint>-<1..3> \
--source-ref agent-checkpoint:<checkpoint> \
[--tag <tag>]
Do not invent or edit the supplied identity, checkpoint, operation, or source
values. Strict capture fixes scope=agent, requires identity and provenance,
adds the automatic-capture tag, and accepts normal sensitivity only. Use no more
than three candidates in the single checkpoint. Never replace this with a raw
transcript summary, remember, evidence, or an import.
Use cambium for preferences, decisions, lessons, and corrections; scar for
warnings; and seed for future work. A candidate still must be durable and
grounded regardless of its ring.
The manual command flow below remains available for an explicit user-directed capture outside a lifecycle checkpoint.
Read project-local .tree-ring/SKILL.md and .tree-ring/CLI.md first when
present. Follow the skill's Runtime Bootstrap And Updates procedure and confirm
the selected project-local or global binary reports 0.15.0 or newer. Bootstrap
or upgrade when the user's request already authorizes it; otherwise obtain
permission before downloading or changing software. Never invent a stored
memory.
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.
- 1mo ago First seen · 102 lines · 13 tokens per session scan A a5c746323caa
tree-ring-capture is a command published in the GitHub repository TerminallyLazy/Tree-Ring-Memory (20 stars, last pushed 1mo ago), licensed MIT. It adds 13 tokens to every session and 921 once invoked, about $0.0001 per session on Opus 5.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 commands, from other repositories
memorywhale-check
Explicitly check the reviewed MemoryWhale MCP connection; this does not enable capture or write memory.
slm-remember
Capture durable facts, decisions, constraints, and gotchas into SuperLocalMemory. Use when the user says "remember that", "save this decision", "note this constraint", or when a session produces a conclusion worth persisting across sessions. Always recall first to avoid duplicates.
slm-status
Health and optimization stats for SuperLocalMemory — call slmoptimizestats() for live compression and cache counters (compressruns, tokenssavedcompress, cacheproxyhits, cacheproxymisses, cachekvhits, cachekvmisses); run slm status [--json] for system state (mode, profile, DB size, fact/entity/edge counts) and slm…
slm-session
Manage SuperLocalMemory session lifecycle — call sessioninit once at the start of every fresh session to load relevant project context and get a sessionid; call closesession when work is meaningfully complete to commit temporal summaries. Correct lifecycle hygiene is what makes SLM's learning loop work.
slm-bot-memory
Cross-bot memory on a shared computer (Grok Bot, Cursor plugin, any host where several agents share one machine). Explains agentid attribution vs. profile/scope access, how to namespace by agentid + profile + scope, and what must never be written to memory. Read this before the first remember/recall on a new…
slm-getting-started-bot
First-session orientation for SuperLocalMemory on a headless bot host (Grok Bot, or any Cursor-format plugin install with no hooks, no dashboard, and no interactive setup wizard). What is different here vs. Claude Code/Codex, which 19 tools are actually available, and the first three calls to make.