Agent skill

Memory

by iii-hq in iii-hq/workers

Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall.

Apache-2.0Auto-check passedAgent Workflows

Install Memory

skills CLI
$ npx skills add iii-hq/workers --skill memory -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install iii-hq/workers memory --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/iii-hq/workers.git skills-src && mkdir -p .claude/skills && cp -r skills-src/memory/skills .claude/skills/memory && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
memory
GitHub stars
113
Token cost
~1.3k tokens
SKILL.md length
641 words
Files
1
Skills in repo
19
Repo updated
First seen
Licence
Apache-2.0

At a glance

Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall.

  • Works in 3 steps: Why bind — memory::item-changed fires on… → When to bind — a UI or index that must… → How to bind — two steps: register a…
  • Asks you to remember
  • SKILL.md covers When to Use, Boundaries, Functions and Reactive triggers
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Memory is an agent skill from iii-hq/workers. Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall. Reach for it when the user asks you to remember, forget, or inspect what is remembered.

Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Session handoff. The licence is Apache-2.0.

When your agent uses it

  • Asks you to remember
  • Inspect what is remembered

Example prompts

  • “/memory”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Why bind — memory::item-changed fires on every memory create / update /
  2. When to bind — a UI or index that must stay current with background
  3. How to bind — two steps: register a handler function, then register a

What it can do on your machine

Read from SKILL.md and the folder at commit 72ae6ab. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Memory loads about 1.3k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 641 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from iii-hq/workers at commit 72ae6ab, republished under its Apache-2.0 licence (© iii-hq). 641 words, ~1,318 tokens.

Download SKILL.mdSave it as .claude/skills/memory/SKILL.md (or your agent's skills folder).
name
memory
description
Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall. Reach for it when the user asks you to remember, forget, or inspect what is remembered.
tags
memory, banks, rules, recall, cross-session, pinning

memory

Cross-session memory is automatic here. The session's bank injects its rules and relevant memories into your context each turn, new memories are extracted in the background after each turn, and standing instructions (style directives, workflow corrections) graduate into the bank's auto-managed learned rule on their own. When the user asks you to remember something, acknowledge it — no save call is required, though an explicit memory::save makes it durable immediately instead of after the turn.

Rules are markdown documents injected whole into the system prompt on every turn (memory::rule::*, on disk under the bank's rules/ folder). Memories are recalled records, ranked against the current question (memory::save/list/recall). Durable identity-grade guidance belongs in a rule; point-in-time information belongs in memories.

When to Use

  • The user says "remember X", or corrects you in a way that should stick — save it now: memory::save { "text": "...", "entities": [...], "pinned": true }. Pin anything they explicitly ask to keep. Re-saving reinforces, never duplicates.
  • The user asks what you remember about a topic — memory::recall { "query": "..." } returns the exact ranked memories a turn on that topic would be given.
  • The user asks to fix or forget something — find it via recall/list, then memory::update (corrected text) or memory::delete (tombstone), and memory::pin to protect the corrected version.
  • The user wants a style or convention set enforced everywhere — memory::rule::set { "bank": "...", "name": "style", "content": "..." }.
  • Separate contexts deserve separate banks (blog vs coding): a session selects its bank via session metadata memory_bank (session::set-meta) or the console composer's bank picker; memory::bank::create makes one.
  • Memory seems absent — memory::doctor {} runs a real save→recall roundtrip and names which sibling (router, session-manager) is degraded.

Boundaries

  • Not a transcript store: session history lives in session-manager; memory keeps distilled records that point back at their source session.
  • Not per-turn context compression: that is context-manager's job. This worker is the durable cross-session sibling.
  • Deletes are tombstones and bank deletion moves to .trash/ — nothing is destroyed; include_superseded: true on list/recall shows history.
  • Extraction never edits or removes existing memories (ADD-only, fingerprint reinforced); dedup/merge/promote hygiene belongs to the memory-consolidate sibling worker.
  • Injection is bounded (max_rule_chars, recall_budget_tokens) — an over-budget rule is truncated visibly, never silently dropped.
Show full SKILL.md (292 more words)Show less

Functions

  • memory::save — explicit save; content-fingerprinted, repeat saves reinforce.
  • memory::get / list / update / delete / pin — memory CRUD; delete tombstones, update bumps a revision, pinned records are untouchable by automatic paths.
  • memory::recall — rank a bank's memories against a query (the injection hook's exact scorer); response names the retrieval mode that ran; tag narrows to one label.
  • memory::preview — the FULL injection dry-run for a hypothetical chat message: the system-prompt rules section, the memories a turn would be handed (floor + budget applied), and the appended message verbatim.
  • memory::tags — a bank's distinct tags with counts. Add tags on save when the user wants memories organized within a bank.
  • memory::bank::create / list / delete — named memory scopes; delete trashes.
  • memory::rule::list / set — always-injected markdown rules; empty content removes a rule.
  • memory::supersede — retire one memory in favor of another (tombstone + pointer); the consolidation seam, agent-denied by default.
  • memory::doctor — end-to-end self-test plus sibling reachability.
  • memory::reload — re-read every bank from disk after hand-editing files.

Reactive triggers

The worker emits two trigger types; bind to them for live views instead of polling memory::list / memory::bank::list.

  1. Why bind — memory::item-changed fires on every memory create / update / supersede / delete ({ event_type, bank, memory }); memory::bank-changed fires on bank create / trash and rule changes ({ event_type, bank }). A consumer that mutates memory already has the new record in its return payload — bind only when you need to observe changes made by OTHERS (extraction, other sessions, the console).
  2. When to bind — a UI or index that must stay current with background extraction; a worker reacting to new memories in a specific bank (use the bank filter in the binding config).
  3. How to bind — two steps: register a handler function, then register a trigger of the wanted type pointing at it, optionally with config: { "bank": "blog" } to filter. Delivery is fire-and-forget, at-least-once, unordered.

© iii-hq, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in memory/skills of iii-hq/workers.

Open the folder on GitHubat commit 72ae6ab

Compare with similar skills

Memory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Memory compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Memory this skilliii-hq/workers113—~1.3kAutomated safety check: PassApache-2.0
Orca CLIstablyai/orca87k2 repos~593Automated safety check: PassMIT
Coding Agent Session Findercode-yeongyu/oh-my-openagent70k1 repos~2.8kAutomated safety check: PassCustom licence
Beads Task Memorygastownhall/beads28k—~1.2kAutomated safety check: PassMIT
Session History Searchslopus/happy24k—~3.1kAutomated safety check: PassMIT
Paseo Agent Handoffgetpaseo/paseo20k1 repos~606Automated safety check: PassCustom licence

Similar skills

  • Orca CLI

    stablyai/orca

    Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…

    87k GitHub starsUsed in 2 repos~593 tokens
    Agent WorkflowsAuto-check passed
  • Coding Agent Session Finder

    code-yeongyu/oh-my-openagent

    Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.

    70k GitHub starsUsed in 1 repo~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Beads Task Memory

    gastownhall/beads

    Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.

    28k GitHub stars~1.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.

    24k GitHub stars~3.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Paseo Agent Handoff

    getpaseo/paseo

    Hands off the current task, including context, decisions and failed attempts, to a fresh agent through Paseo by writing a self-contained briefing prompt and launching that agent.

    20k GitHub starsUsed in 1 repo~606 tokens
    Agent WorkflowsAuto-check passed
  • Memori Long-Term Memory

    MemoriLabs/Memori

    Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.

    17k GitHub stars~2k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check: notes

More from iii-hq/workers

All 19 skills in this repo
  • Cron

    iii-hq/workers

    Schedule any registered function on a 6- or 7-field cron expression with the standalone cron worker.

    113 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Email

    iii-hq/workers

    Send and read email from the iii engine — SMTP send, IMAP read, and real-time IDLE push as a subscribable trigger type.

    113 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • HTTP

    iii-hq/workers

    Expose registered functions as HTTP endpoints with the standalone http worker.

    113 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Kanban

    iii-hq/workers

    File-backed kanban board: create, read, move and comment on tickets by key or uuid, assign agent profiles, and wake on comments through the kanban:comment trigger instead of polling.

    113 GitHub stars~1.3k tokensUpdated today
    Auto-check passed
  • Pubsub

    iii-hq/workers

    Fire-and-forget topic pub/sub: broadcast an event with publish and every matching subscribe trigger receives it.

    113 GitHub stars~989 tokensUpdated today
    Auto-check passed
  • Release Sync

    iii-hq/workers

    Organize worker release tags into Linear release waves — one team document plus one release/<date label per same-day batch of worker releases, with shipped MOT issues labeled and linked.

    113 GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Memory

What does Memory do?

Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall. Memory is an agent skill from iii-hq/workers. Durable cross-session memory: named banks of always-injected markdown rules and auto-extracted memories with hybrid recall.

When should I use Memory?

Memory fits situations like: asks you to remember; inspect what is remembered.

How do I install Memory in Claude Code?

Run `npx skills add iii-hq/workers --skill memory -a claude-code`. Or copy the skill folder (memory/skills in iii-hq/workers) into .claude/skills/memory in your project. Claude Code loads it when a task matches its description.

How do I install Memory in Codex?

Run `npx skills add iii-hq/workers --skill memory -a codex`. Or copy the skill folder (memory/skills in iii-hq/workers) into .agents/skills/memory in your project. Codex loads it when a task matches its description.

Can I use Memory in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add iii-hq/workers --skill memory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/memory, .gemini/skills/memory, .github/skills/memory and .opencode/skills/memory in your project.

What does Memory need to run?

SKILL.md names no scripts, command-line tools or credentials: Memory is instructions for the agent only.

Does Memory access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Memory safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Memory use?

Memory is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Memory use?

About 1.3k tokens (SKILL.md is roughly 5.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Memory?

Skills that share tags, products or a category with Memory: Orca CLI (stablyai/orca, 87k stars), Coding Agent Session Finder (code-yeongyu/oh-my-openagent, 70k stars), Beads Task Memory (gastownhall/beads, 28k stars) and Session History Search (slopus/happy, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Memory?

iii-hq (a GitHub organization) maintains it in iii-hq/workers, which has 113 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 8, 2026.

Source: iii-hq/workers on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.