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.
Maintains a structured running-notes document during long work sessions.
$ npx skills add oaustegard/claude-skills --skill session-memory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install oaustegard/claude-skills session-memory --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/oaustegard/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/session-memory .claude/skills/session-memory && 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 "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .claude/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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/oaustegard/claude-skills/tree/main/session-memoryType 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 oaustegard/claude-skills --skill session-memory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install oaustegard/claude-skills session-memory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/session-memory .agents/skills/session-memory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .agents/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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 oaustegard/claude-skills --skill session-memory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install oaustegard/claude-skills session-memory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/session-memory .cursor/skills/session-memory && 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 "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .cursor/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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/oaustegard/claude-skills.git --path session-memory--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 oaustegard/claude-skills --skill session-memory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install oaustegard/claude-skills session-memory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/session-memory .gemini/skills/session-memory && 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 "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .gemini/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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 oaustegard/claude-skills session-memoryInstalls 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 oaustegard/claude-skills --skill session-memory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/session-memory .github/skills/session-memory && 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 "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .github/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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 oaustegard/claude-skills --skill session-memory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install oaustegard/claude-skills session-memory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/oaustegard/claude-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/session-memory .opencode/skills/session-memory && 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 "session-memory" agent skill from https://github.com/oaustegard/claude-skills/tree/main/session-memory into .opencode/skills/session-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-memory", 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.
session-memoryMaintains a structured running-notes document during long work sessions.
Session Memory is an agent skill from oaustegard/claude-skills. Maintains a structured running-notes document during long work sessions. Use when the user says "session notes", "update notes", "start session notes", "show session notes", or when you recognize the current session has accumulated enough state (decisions, corrections, files touched, errors) that it risks being lost under context pressure. Stores notes as a procedure memory tagged [session-memory, active] so they survive container death within the same session thread.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `CHANGELOG.md`).
It sits in Agent Workflows, covering Agent memory and Session handoff. The repository describes itself as: My collection of Claude skills. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 559a6cd. 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 and python).
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 no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Session Memory loads about 1.6k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 603 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 oaustegard/claude-skills at commit 559a6cd, republished under its MIT licence (© oaustegard). 603 words, ~1,562 tokens.
.claude/skills/session-memory/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Maintain a single structured markdown document that tracks what is happening
right now in the current work session. This is within-session continuity,
distinct from remember() (cross-session semantic memory) and stash
(coarse checkpoint).
Invoke on any of these triggers:
Do NOT invoke for:
remember()stashEvery session note uses exactly these sections, in this order, with these
headers. Preserve the structure on every update. Never rename or reorder
sections. Update the content within sections; leave empty sections present
with a single _(nothing yet)_ placeholder.
# Session: {short title, 3-8 words, derived from the initial task}
## Current State
_What is actively being worked on right now. Explicit next step._
## Task Specification
_What the user originally asked for. Constraints, acceptance criteria,
design decisions that framed the work._
## Files and Functions
_Important paths touched or referenced, one per line, with a one-line
note on what they contain and why they matter._
## Errors & Corrections
_Errors encountered and how they were fixed. User corrections to my
approach — these have priority over routine progress entries._
## Key Decisions
_Choices made during the session with their rationale. One bullet per
decision. Lead with the choice, then the why._
## Worklog
_Terse, append-only, chronological. One line per attempt or step.
Prefix with ✓ (done), ✗ (failed), → (in progress), or ↺ (reverted)._Persist as a procedure memory via the remembering skill, so notes
survive container death within the session thread.
from remembering.scripts import remember, recall, supersede
# First write in a session: create the memory
note_id = remember(
note_markdown,
"procedure",
tags=["session-memory", "active"],
priority=1,
)
# Subsequent updates: find the active note and supersede it
existing = recall(tags_all=["session-memory", "active"], n=1)
if existing:
note_id = supersede(existing[0].id, updated_markdown, "procedure",
tags=["session-memory", "active"], priority=1)Session boundary: when the user says "session done", "wrap up",
"end session", or the conversation is clearly winding down, retag the
active note from active to archived by superseding it with the same
body and tags=["session-memory", "archived"].
One note is active at a time. If recall(tags_all=["session-memory", "active"]) returns more than one, the oldest is stale — archive it before
updating the current one.
On each invocation:
recall(tags_all=["session-memory", "active"], n=1). Work from its current body — do not regenerate from
scratch.## Worklog.
Do not drop prior content unless it is now wrong (then move the correction
to ## Errors & Corrections).## Errors & Corrections before other updates.remember() call, reference it by ID rather
than restating. Notes are supplementary, not duplicative.supersede(). This keeps exactly one active note per session.Target ~12K tokens for the note document. Prefer concise phrasing, but do
not truncate substantive content to hit the target — trigger
## Key Decisions consolidation (collapse related bullets) before cutting.
If the document exceeds ~20K tokens, compress ## Worklog first (merge
consecutive ✓ entries into a single summary line, keep corrections and
decisions intact).
Rationale: we run on 200K–1M context models, so the original 2K budget from the issue spec was over-constrained. 12K matches Claude Code's upstream design and leaves ample room for the surrounding conversation.
When the user asks to "show session notes", print the current note body verbatim in a fenced code block. Do not paraphrase.
When updating silently (you triggered it yourself), confirm with a single
line: Updated session notes (note id: <short-id>). Do not dump the full
body unsolicited.
session-memory + active memory exists per session. Stale
actives are archived, not left dangling.remembering — cross-session memory store (where these notes persist)© oaustegard, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in session-memory of oaustegard/claude-skills.
Open the folder on GitHubat commit 559a6cd
Session 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Session Memory this skilloaustegard/claude-skills | 150 | — | ~1.6k | 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.
oaustegard/claude-skills
Deprecated sampler that captures short windows of the Bluesky firehose, clusters trending terms and builds an HTML report; replaced by the browsing-bluesky skill.
oaustegard/claude-skills
Builds interactive Vega-Lite charts from uploaded data: analyzes the fields, picks five to ten fitting chart types, and produces a React artifact with the data embedded inline.
oaustegard/claude-skills
Builds self-contained single-file HTML pages such as reports, decks, postmortems, flowcharts and prototypes from a small spec using a bundled Python composer and templates.
oaustegard/claude-skills
Rewrites model-sounding prose into plain technical writing and checks that every claim survives, for PR text, docs, commit messages and similar drafts.
oaustegard/claude-skills
Zero-shot univariate time series forecasting using the Reverso foundation model (NumPy/Numba CPU-only inference).
oaustegard/claude-skills
Guides building standards-based Preact apps with native-first choices, HTM syntax, import maps and vendored ESM, from single-file demos to larger builds.
Categories
Maintains a structured running-notes document during long work sessions. Session Memory is an agent skill from oaustegard/claude-skills. Maintains a structured running-notes document during long work sessions.
Session Memory fits situations like: the user says session notes; start session notes; show session notes; you recognize the current session has accumulated enough state (decisions.
Run `npx skills add oaustegard/claude-skills --skill session-memory -a claude-code`. Or copy the skill folder (session-memory in oaustegard/claude-skills) into .claude/skills/session-memory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add oaustegard/claude-skills --skill session-memory -a codex`. Or copy the skill folder (session-memory in oaustegard/claude-skills) into .agents/skills/session-memory 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 oaustegard/claude-skills --skill session-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/session-memory, .gemini/skills/session-memory, .github/skills/session-memory and .opencode/skills/session-memory in your project.
SKILL.md names no scripts, command-line tools or credentials: Session Memory is instructions for the agent only. Our summary lists: Python 3.
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 Memory 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.6k tokens (SKILL.md is roughly 6.2k 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 Memory: 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.
oaustegard (a GitHub user) maintains it in oaustegard/claude-skills, which has 150 GitHub stars. The repository holds 93 skills in this directory. The repository was last updated on October 2, 2026.
Source: oaustegard/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.