memory-tasks — Claude Code skill: tasks that survive context
Keeps work-in-progress as notes in the Basic Memory knowledge graph, so you can find active tasks and resume them after compaction or a restart.
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a claude-codeWhat memory-tasks does
This skill stores tasks as notes with type: Task. They sit in the Basic Memory knowledge graph, are checked against the schema/Task.md schema, and outlive context compaction. Fields such as status, assigned_to, current_step and steps go into both metadata and observations: metadata drives bm_search filters, observations drive bm_schema(command="validate").
A task is created with bm_write using note_type="Task" and a metadata block. The body carries Observations, a Steps list with checkboxes, and a Context section. Write that context as if explaining the work to someone who knows nothing about it — file paths, decisions already made, what you tried. After a session is compacted, the skill searches for active tasks with bm_search(note_types=["task"], filters={"status": "active"}) and picks up from current_step.
Before editing, read the task as JSON and pass its checksum as expected_checksum. Two sessions often touch the same task, for instance during a pre-compaction flush. A revision conflict means the other session wrote first, so re-read before writing. The skill advises one task per unit of work and closing finished ones instead of leaving them active.
What it helps with
- open a task for multi-step work and keep it across context compaction
- find active tasks after a restart and resume from the right step
- write down context before compaction so the work is not lost
- filter tasks by status, assignee or blockers
- validate tasks against the schema and spot drift in the notes
Example prompts for the agent
- Create a task for refactoring the auth module, three steps, status active
- Find all active tasks and resume from the current step
- Update the context of active tasks before compaction
How to install memory-tasks
1Skills CLI (Vercel)
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a claude-code2Manually: put the files in place
~/.claude/skills/memory-tasks/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/memory-tasks/
1Skills CLI (Vercel)
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a codex2Manually: put the files in place
.agents/skills/memory-tasks/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a cursor2Manually: put the files in place
.cursor/skills/memory-tasks/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install basicmachines-co/basic-memory memory-tasks2Manually: put the files in place
.github/skills/memory-tasks/SKILL.md1Skills CLI (Vercel)
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a gemini-cli2Platform CLI
gemini skills install https://github.com/basicmachines-co/basic-memory --path skills/memory-tasksManually: put the files in place
.devin/skills/memory-tasks/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add basicmachines-co/basic-memory --skill memory-tasks -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about memory-tasks
How do I install memory-tasks in Claude Code?
Run npx skills add basicmachines-co/basic-memory --skill memory-tasks -a claude-code. The skill lands in ~/.claude/skills/memory-tasks/SKILL.md.
What does memory-tasks do?
It manages tasks as Basic Memory notes with type: Task: creates them via bm_write, updates steps and context, and finds active ones with bm_search. Tasks stay reachable after context compaction.
Why do I get a revision conflict when updating a task?
Two sessions can edit the same task at once, for example during a pre-compaction flush. A conflict means the other session wrote first — re-read the note and retry with the fresh checksum.