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.
Saves the essential state of a coding session to memory.md at the end, restores it at the start of the next one, and keeps secrets out of the saved notes.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill remember --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/remember .claude/skills/remember && rm -rf skills-srcUse ~/.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/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .claude/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/rememberType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill remember --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/remember .agents/skills/remember && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .agents/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill remember --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/remember .cursor/skills/remember && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .cursor/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jsmastery-pro/jsm-agent-skill.git --path skills/remember--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill remember --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/remember .gemini/skills/remember && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .gemini/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jsmastery-pro/jsm-agent-skill rememberInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/remember .github/skills/remember && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .github/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jsmastery-pro/jsm-agent-skill remember --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jsmastery-pro/jsm-agent-skill.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/remember .opencode/skills/remember && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "remember" agent skill from https://github.com/jsmastery-pro/jsm-agent-skill/tree/main/skills/remember into .opencode/skills/remember/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "remember", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
rememberSaves the essential state of a coding session to memory.md at the end, restores it at the start of the next one, and keeps secrets out of the saved notes.
Two commands drive the skill: /remember save at the end of a session and /remember restore at the start of a new one. Running /remember with neither makes the agent ask which one you want. A save is not a transcript or a full recap. The agent writes down only what a skilled colleague who knows nothing about today's work would need to carry on without losing anything.
The saved notes cover what was built, with the exact files created or changed, decisions that would be hard to reverse, and problems that took time to solve, so the next session does not solve them twice. A security boundary applies throughout: API keys, tokens, passwords, cookies, connection strings and anything secret-looking are never written to memory.md. Useful but sensitive details get a redacted placeholder, and when the agent is unsure, it omits the value.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fd85d6a. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
REDACTED_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Session Save and Restore loads about 1.9k tokens when it runs. Until then it costs about 47 tokens; SKILL.md has 844 words of instructions outside code blocks.
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.
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.
The full file from jsmastery-pro/jsm-agent-skill at commit fd85d6a, republished under its MIT licence (© jsmastery-pro). 844 words, ~1,875 tokens.
.claude/skills/remember/SKILL.md (or your agent's skills folder).AI has no memory between sessions. Every new session starts blank. This skill fixes that.
Run it at the end of a session to save. Run it at the start of a new session to restore. That is all it does — but done consistently, it means nothing ever gets lost.
This skill must never persist secrets. If any sensitive value appears in the conversation or context, do not copy it to memory.md.
Sensitive data includes (non-exhaustive):
If a detail is useful but sensitive, store a redacted placeholder instead (for example: [REDACTED_API_KEY]).
If unsure whether something is sensitive, treat it as sensitive and omit or redact it.
To save at end of session:
/remember saveTo restore at start of new session:
/remember restoreIf the developer just runs /remember without specifying — ask them which one they need.
When the developer runs /remember save:
Review the current conversation to extract only what a developer would genuinely need to continue this work in a completely fresh context. Do not include sensitive data such as credentials, API keys, or tokens in the saved memory. Not a transcript. Not a summary of everything that happened. The essential state.
Think like someone handing off a project to a colleague who is equally skilled but knows nothing about what happened today. What would they need to know to continue without losing anything?
Capture:
What was built — specific files created or modified, features completed, components added. Be precise. Not "built the auth flow" — "created app/(auth)/login/page.tsx, app/(auth)/callback/page.tsx, and middleware.ts. OAuth with Google and GitHub working end to end."
Decisions made — choices that would be hard to reverse or that future work depends on. Not implementation details — architectural choices. "Chose to use server-side data fetching over client-side — avoids loading states and keeps sensitive logic off the client."
Problems solved — any issue that took time to figure out. So the next session does not solve the same problem twice. "Third party auth callback requires a trailing slash in the redirect URL — fixed in the callback handler."
Current state — exactly where things stand right now. What works, what is partial, what is known to be broken.
What comes next — the very next thing that needs to happen. Specific enough that the next session can start immediately without figuring out where to begin.
Open questions — anything unresolved that the next session needs to address.
Before writing memory.md, run a final pass over the content to ensure no sensitive value is present.
Write the memory to memory.md in the project root. This file always contains only the most recent session state.
If memory.md already exists, show the developer a brief summary of what is currently saved and ask for confirmation before overwriting:
Step 1 — Read memory.md, provide the one-line summary, and stop to wait for developer input:
memory.md already exists from a previous session.
Current memory covers: [one-line summary of existing content].
Overwrite with this session's memory? (yes / no)Step 2 — After the developer responds:
memory.md.No changes made. memory.md is unchanged.# Memory — [Feature or Session Name]
Last updated: [date and time]
## What was built
[Specific files, components, features completed this session]
## Decisions made
[Architectural and implementation decisions that future work depends on]
## Problems solved
[Issues resolved this session — so they are not solved again]
## Current state
[Exactly where things stand — what works, what is partial, what is broken]
## Next session starts with
[The very first thing to do in the next session — specific and actionable]
## Open questions
[Anything unresolved that needs addressing]After writing the file, confirm to the developer:
Memory saved to memory.md.
Next session: run /remember restore to pick up from here.When the developer runs /remember restore at the start of a new session:
Look for memory.md in the project root. If it does not exist, tell the developer:
No memory.md found in this project.
Either this is the first session, or the file was not saved.
To save memory at the end of a session, run /remember save.Read memory.md first. Then check for these specific context files if they exist and read only those:
CLAUDE.md, .claude/context.md — Claude Code.github/copilot-instructions.md — GitHub Copilot.cursorrules, .cursor/rules/ — Cursor.windsurfrules — WindsurfAGENTS.md — Codex.clinerules — Clinecontext.md — generic fallbackDo not scan or read other files beyond this list. Build the most complete picture possible from what is available.
When restoring, never repeat or surface raw secrets from any source. If a secret appears in restored context, summarise it in redacted form only.
Do not start building. Do not assume the developer wants to continue immediately. Summarise what was restored so the developer can verify Claude understood correctly.
Memory restored. Here is where we are:
**Last session:** [what was built]
**Current state:** [what works right now]
**Decisions in place:** [key decisions that are locked]
**Next up:** [what the next session should start with]
Is this correct? Say yes to continue, or correct anything
that does not look right before we proceed.Only after the developer confirms does the session continue.
If memory.md exists but is missing important context, say so honestly:
I found memory.md but some context seems missing —
[what is unclear or absent].
Should we continue with what we have, or do you want
to fill in the gaps before we start?Do not guess. Do not assume. Surface the gap and let the developer decide.
Every session ends with /remember save.
Every session starts with /remember restore.
That is the whole system. Consistent use is what makes it work. A skill used sometimes is a skill that cannot be relied on.
© jsmastery-pro, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/remember of jsmastery-pro/jsm-agent-skill.
Open the folder on GitHubat commit fd85d6a
Session Save and Restore 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Session Save and Restore this skilljsmastery-pro/jsm-agent-skill | 216 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Beads Task Memorygastownhall/beads | 28k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Session History Searchslopus/happy | 24k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Memori Long-Term MemoryMemoriLabs/Memori | 17k | — | ~2k | Automated safety check: Notes | Custom licence | |
| Coding Agent Session Findercode-yeongyu/oh-my-openagent | 70k | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Deja History Searchvshulcz/deja-vu | 1.1k | 1 repos | ~1.3k | Automated safety check: Pass | MIT |
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.
slopus/happy
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.
MemoriLabs/Memori
Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.
code-yeongyu/oh-my-openagent
Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.
vshulcz/deja-vu
Searches this machine's own history of past AI coding sessions across every tool used on it, before work is redone or something is denied.
MemoriLabs/Memori
Teaches an MCP-connected agent when and how to call Memori's recall, summary, compaction, augmentation, feedback and quota tools to keep context across sessions.
jsmastery-pro/jsm-agent-skill
Runs a short design conversation before coding: aligns on terms, works through the decisions that matter and ends with a plan you confirm.
jsmastery-pro/jsm-agent-skill
Run after building a UI component to record its background, border, radius and text classes in ui-registry.md so later components match what came before.
jsmastery-pro/jsm-agent-skill
Diagnoses which of three failure modes a stalled AI-assisted build is in, then chooses a targeted fix, a hard reset or a rethink instead of more prompting.
jsmastery-pro/jsm-agent-skill
Compares a finished feature with its plan, the project's architecture and design rules, and production-readiness checks, then reports issues without fixing them.
Categories
Saves the essential state of a coding session to memory.md at the end, restores it at the start of the next one, and keeps secrets out of the saved notes. Two commands drive the skill: /remember save at the end of a session and /remember restore at the start of a new one. Running /remember with neither makes the agent ask which one you want.
Session Save and Restore fits situations like: ending a long session and wanting the next one to pick up where this stopped; starting a fresh session that needs the earlier decisions and file changes; handing a project to a colleague or another agent with only the essential state.
Run `npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a claude-code`. Or copy the skill folder (skills/remember in jsmastery-pro/jsm-agent-skill) into .claude/skills/remember in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a codex`. Or copy the skill folder (skills/remember in jsmastery-pro/jsm-agent-skill) into .agents/skills/remember in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jsmastery-pro/jsm-agent-skill --skill remember -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/remember, .gemini/skills/remember, .github/skills/remember and .opencode/skills/remember in your project.
Going by SKILL.md and its folder, Session Save and Restore needs credentials named REDACTED_API_KEY.
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.
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.
Session Save and Restore is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Session Save and Restore: Beads Task Memory (gastownhall/beads, 28k stars), Session History Search (slopus/happy, 24k stars), Memori Long-Term Memory (MemoriLabs/Memori, 17k stars) and Coding Agent Session Finder (code-yeongyu/oh-my-openagent, 70k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jsmastery-pro (a GitHub organization) maintains it in jsmastery-pro/jsm-agent-skill, which has 216 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on July 9, 2026.
Source: jsmastery-pro/jsm-agent-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.