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/hamr0/liteagentsWrote 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/hamr0/liteagents/remember)<a href="https://agentmods.dev/commands/hamr0/liteagents/remember"><img src="https://agentmods.dev/badge/commands/hamr0/liteagents/remember/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/hamr0/liteagents/remember"><img src="https://agentmods.dev/badge/commands/hamr0/liteagents/remember.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.00010 | $0.06442 |
| Opus 5.5 | $0.00004 | $0.02577 |
| Sonnet 5.5 | $0.00002 | $0.01288 |
| Haiku 4.5 | $0.00001 | $0.00644 |
Grade B, and why
remember 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 14d 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.
Subtle steeringmediumPrompt injection
Instructions that bias recommendations or shape behaviour without the user noticing.
- **Not set up** — no `docs/.docs-builder/` directory (docs-builder never ran), or `due` prints "no ledger yet": print one line telling the user to run `/docs-builder reorg`. Never tell them to run `ledger` — it would st Copies of this mod
1 near-identical copy found in the catalogue:
- remember — 91% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 256 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Run friction analysis, then consolidate .factory/stash/*.md + friction antigens into one project-local .factory/remember/MEMORY.md and inject it into AGENTS.md. Friction runs automatically (best-effort) — there is no separate /friction command. A detect-only docs check runs at the end. Why each rule exists: docs/product/remember-README.md.
Rules
- Simple and scoped: minimal implementation, only the requested outcome.
- Scripts: call every bundled script (
friction.cjs,version-check.cjs,sync-rules.cjs,stub-check.cjs,docs-builder.cjs) by its absolute path — the cwd is the target repo, not this package, so a cwd-relative path fails. - Precision over recall: a false antigen loaded via
@.factory/remember/MEMORY.mdsteers every future session — unsure → do not promote; leave it to recurrence. - Mid-tier model: steps 2, 3 and 4a use your tool's balanced mid tier — never the cheapest tier, never a vendor model name.
- Batch stashes: up to 5 stashes per extraction agent, as few agents as possible (3 → 1 agent, 7 → 2); if more than one, run them concurrently.
- Facts are short rules, not prose: one line, target 160 chars, hard stop 180, stating a rule that changes future behaviour. Events and history are not facts.
- Never re-read session logs: work from the quotes in
antigen_clusters.json. - Never hand-compute counts:
friction.cjs countdoes them. - Relay script output verbatim, never re-worded (a paraphrase loses the filename the user needs). This covers output meant for the user; JSON a step consumes (e.g.
friction.cjs count) is input, not something to relay. - Tiers (defined once): High = 5+ distinct sessions → loaded hot via
@MEMORY.md; Medium = 3-4 → recorded under Antigens, not loaded; Low = under 3 → ledgerobservingat 2 sessions, nothing at 1. Grouping consolidates evidence, never elevates it. Never auto-promote below High.
Steps
-
Run friction first (best-effort — friction analyzes ALL your usage, so point it at the tool's global sessions root, not a per-project directory)
- Locate
friction.cjs— bundled atremember/friction.cjsbeside this file (installed or run from the package). If it exists nowhere, skip to step 1 (stash-only) and tell the user it is missing. - Check for a newer liteagents (best-effort, one line, never blocking):
If that path does not exist, use the directory you resolved fornode ~/.factory/commands/remember/version-check.cjsfriction.cjs(the two ship side by side). It prints one advice line if the install is behind the registry, else nothing; it exits 0 always, caches 24h, and is bounded to ~2s. If it prints a line, relay it verbatim in the final report; never act on it, never run the install yourself. - Script missing from both locations → say so (one line). A failed check (offline, registry down, timeout) stays silent by design; a missing script means an incomplete install.
- Resolve the global sessions root — probe top-to-bottom, use the first that exists and holds
.jsonlfiles directly or one level down in per-project subdirectories (friction scans exactly those two levels). Never prompt the user.# ── Add your own global sessions root at the TOP so it is checked first ── ~/.claude/projects/ # Claude Code ~/.factory/projects/ # Droid / Factory ~/.config/amp/projects/ # Amp ~/.config/opencode/projects/ # opencode ~/.codex/sessions/ # Codex CLI (use $CODEX_HOME/sessions/ if set) ~/.gemini/antigravity-cli/brain/ # AntigravityNote:
friction.cjsparses Claude Code's session schema. The Codex/Antigravity roots will resolve but yield no signals until friction learns their formats — open an issue to request one: https://github.com/hamr0/liteagents/issues - Run
node <friction.cjs> "<resolved-root>". It writes to.factory/remember/friction/in the current project. Run it as its own command — nothing chained before or after it — with a 10-minute tool timeout: it scans the whole sessions root and can take a minute or more. - On any miss — loud, never silent. If no root resolves, friction errors, or it finds no usable sessions, print this and continue stash-only:
⚠️ Friction didn't run — no sessions found. To enable it, open this skill's own file and add your tool's global sessions root to the TOP of the probe list in step 0, then re-run
/remember. Consolidating stashes only this time.
- Locate
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.
- 14d ago Changed 05466681ec7e
- 15d ago Changed · -367 lines scan A → B f6d21c1b87fe
- 1mo ago Changed · +70 lines · -2 tokens per session 0452b4d71fb0
- 1mo ago Changed · +33 lines 974ec81fffef
- 1mo ago First seen · 520 lines · 12 tokens per session scan A d5c44176d8ba
remember is a command published in the GitHub repository hamr0/liteagents (25 stars, last pushed 2d ago), licensed Apache-2.0. It adds 10 tokens to every session and 6,442 once invoked, about $0.0000 per session on Opus 5.5. A static security scan graded it B with 1 finding (subtle steering). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
kg-query
Query KG (supports: active, recent, search , decisions , plan ).
kg-setup
Configure Knowledge Graph path and create config file.
speckit.archive
Archive a feature specification into main project memory after merge, resolving gaps and conflicts.
memory-forget
Command "memory-forget" from waittim/MemoryCustodian, covering memory-forget and review the preview, then apply its plan id.
rclone_listremotes
List all the remotes in the config file and defined in environment variables.
rclone_config_password
Update password in an existing remote.