skillopt-sleep
Use when the user wants their Claude agent to self-improve from past usage, asks about a nightly/offline 'sleep' or 'dream' cycle, memory/skill consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences', 'consolidate what you learne…
Install / Use
npx skills add microsoft/SkillOpt --skill skillopt-sleepInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of skillopt-sleep
skillopt-sleep scores 95/100 on our quality scale, 189th of 1,947 Development & Engineering skills we index (top 10%).
Its SKILL.md is 8.8 KB long, well organised into 11 sections with 3 code examples: a thorough specification that gives an agent plenty to work with.
With 17,426 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 20 days ago, so skillopt-sleep is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.
Automated pattern scan on 2026-09-26. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
skillopt-sleep compared with similar skills
All 4 of these similar skills score higher than skillopt-sleep; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| skillopt-sleep (this skill)by microsoft | 95 | 17.4k | 20d ago | SKILL.md |
| ai-job-searchby MadsLorentzen | 100 | 44.0k | 4d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.7k | today | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 3d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 3d ago | SKILL.md |
Frequently asked questions
- How do I install skillopt-sleep?
- Run
npx skills add microsoft/SkillOpt --skill skillopt-sleep. The install tabs above show the steps for each supported agent. - Which AI agents does skillopt-sleep work with?
- It is written for Claude Code, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is skillopt-sleep safe to use?
- Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is skillopt-sleep still maintained?
- The repository was last updated 20 days ago, so skillopt-sleep is actively maintained.
Skill content
View source on GitHubname: skillopt-sleep description: "Use when the user wants their Claude agent to self-improve from past usage, asks about a nightly/offline 'sleep' or 'dream' cycle, memory/skill consolidation, or says things like 'make my agent better the more I use it', 'review my past sessions', 'learn my preferences', 'consolidate what you learned', 'run the sleep cycle', or wants to schedule background self-optimization. Drives the skillopt_sleep engine: harvest past sessions -> mine recurring tasks -> replay through a selected backend -> consolidate validated CLAUDE.md/SKILL.md behind a held-out gate."
SkillOpt-Sleep: usage-driven self-evolution for a local Claude agent
SkillOpt-Sleep gives the user's agent a sleep cycle. On demand or on a
nightly schedule, it reviews real past Claude Code sessions, re-runs recurring
tasks through the selected backend, and consolidates what it
learns into memory (CLAUDE.md) and skills (SKILL.md). With the
default validation gate enabled, it keeps only changes that improve a held-out
score. Live files change only through explicit adoption or a user-requested
--auto-adopt. It aims to improve this user's recurring work, while making
each accepted proposal measurable on the run's held-out tasks,
with no model-weight training. It is the deployment-time analogue of training:
short-term experience → long-term competence.
It synthesizes three ideas:
- SkillOpt — the skill/memory doc is trainable text; bounded add/delete/replace edits; accepted only through a held-out gate; rejected edits are recorded in the run report for review.
- Claude Dreams — consolidation that reads past sessions and proposes changes inside protected learned blocks; the input is never mutated, and output is reviewed before adoption.
- Agent sleep — periodic background replay turns episodes into durable skill.
When to use this skill
Trigger when the user wants any of:
- "make my agent learn from how I use it" / "get better the more I use it" / "remember my preferences across sessions"
- a nightly/scheduled or on-demand offline self-improvement / dream / sleep run
- to review past sessions/trajectories and distill recurring tasks
- to consolidate feedback into
CLAUDE.mdor a managed skill - to schedule the cycle (cron) or adopt a staged proposal
The cycle (six stages)
- Harvest — read
~/.claude/projects/*/<session>.jsonl+~/.claude/history.jsonl(READ-ONLY) → session digests. - Mine — digests →
TaskRecords (recurring intents + outcome labels + checkable refs where possible). - Replay — re-run tasks through the selected backend under the current skill+memory → (hard, soft) scores.
- Consolidate — reflect on failures → propose bounded edits → gate on a held-out slice; with the default gate enabled, accept only if it strictly improves.
- Stage — write the accepted
proposed_CLAUDE.mdand/orproposed_SKILL.md, plusreport.md,report.json,manifest.json, anddiagnostics.jsoninto<project>/.skillopt-sleep/staging/<timestamp>/. Nothing live changes. A rejected run still has a report but no proposed live-file replacement. - Adopt — explicit (or opt-in auto): copy staged files over live ones, backing up first.
How to drive it
Prefer the /skillopt-sleep command. Under the hood it calls the bundled runner:
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" status # what's happened
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" dry-run --project "$(pwd)" # no-staging preview
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" run --project "$(pwd)" # full cycle, stages a proposal
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" adopt --project "$(pwd)" # apply staged proposal (with backup)
- Default backend is
mock(deterministic, no API spend) — good for trying the plumbing. - Add
--backend claudeor--backend codexto spend the user's real budget for model-driven optimization. A held-out gain is run-specific evidence, not a guarantee of broader improvement; results depend on the tasks, model, and checks. - Scope defaults to the invoked project;
--scope allharvests every Claude project into the current run's configured targets. - A real backend sends truncated transcript/task content to its provider. See the data-boundary rules below before using one with sensitive sessions.
Scheduling
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" schedule --project "$(pwd)" --hour 3 --minute 17
"${CLAUDE_PLUGIN_ROOT}/scripts/sleep.sh" unschedule --project "$(pwd)"
Installs a nightly cron entry. unschedule --all removes every managed entry.
Common CLI flags
| Flag | Default | Description |
|------|---------|-------------|
| --project PATH | cwd | Project directory to evolve |
| --scope all\|invoked | invoked | Harvest scope |
| --backend mock\|claude\|codex\|copilot\|handoff\|azure_openai | mock | Backend (mock = no provider calls) |
| --model NAME | backend default | Override the model used for replay |
| --source claude\|codex\|auto | claude | Transcript source |
| --lookback-hours N | 72 | Harvest window |
| --max-sessions N | derived | Cap harvested sessions; defaults to 3 × max tasks (120 with current defaults) |
| --max-tasks N | 40 | Cap mined tasks |
| --target-skill-path PATH | ~/.claude/skills/skillopt-sleep-learned/SKILL.md | Explicit SKILL.md to evolve |
| --tasks-file PATH | — | Reviewed TaskRecord JSON (skip harvest) |
| --progress | off | Print phase progress to stderr |
| --auto-adopt | off | Auto-adopt if gate passes |
| --edit-budget N | 4 | Max bounded edits per night |
| --preferences TEXT | empty | Add house rules to the optimizer's reflection prior |
| --json | off | Machine-readable JSON output |
The CLI also has source/runtime path overrides (--claude-home, --codex-home,
and --codex-path) and action-specific flags. Use
python -m skillopt_sleep <action> --help as the authoritative surface.
Config keys (~/.skillopt-sleep/config.json)
Beyond the CLI flags, advanced behavior is controlled via config:
preferences— free-text house rules injected into the optimizer's reflect step (e.g. "Always use async/await", "Answers in\boxed{}").gate_mode—on(default, validation-gated) oroff(greedy, accept all edits).gate_metric—hard,soft, ormixed(default). Controls how the held-out gate scores.gate_no_regression—falseby default. Set totrueto reject a candidate when any validation task's configured gate score decreases.dream_rollouts— >1 enables multi-rollout contrastive reflection per task.recall_k— >0 recalls K similar past tasks into the dream (long-term memory).evolve_memory/evolve_skill— independently toggle CLAUDE.md vs SKILL.md consolidation.
Memory consolidation
The sleep cycle can consolidate both:
- SKILL.md — the managed skill file (bounded edits: add/delete/replace)
- CLAUDE.md — the project memory (same bounded edits)
With the default gate enabled, both are evaluated by the same held-out score.
Set evolve_memory: false to consolidate only skills, or evolve_skill: false
for only memory.
Hard rules
- Never hand-edit the user's
CLAUDE.md/SKILL.mdas part of this skill. Let the engine's explicitadoptor user-requested--auto-adoptpath apply the staging manifest and back up existing live files first. - Harvest is read-only.
mockreplay has no side effects. - Real backends send truncated transcript excerpts and derived tasks to the
selected provider for mining, replay, judging, and reflection. The Claude
transcript path is not guaranteed to remove every secret before those calls.
Review provider policy and session contents first. For sensitive data, use
mockor runharvest --output <file>, inspect/redact the JSON, set"reviewed": true, and replay it with--tasks-file; real backends refuse an unreviewed task file. - Always show the user the held-out baseline → candidate score and the exact proposed edits before suggesting adoption. Evidence before adoption.
- If asked to demonstrate the mechanism without provider calls, run
python -m skillopt_sleep.experiments.run_experiment --persona researcher --json— a deterministic synthetic demo of held-out lift and gate rejection. It validates the mechanism, not effectiveness on the user's own tasks.
Validate / demo
# deterministic synthetic demo (no API): score rises and the gate blocks a regression
python -m skillopt_sleep.experiments.run_experiment --persona researcher --assert-improves
python -m skillopt_sleep.experiments.run_experiment --persona programmer --assert-improves
See the SkillOpt-Sleep documentation for recorded results, limitations, and the supported integration surface.
Related Skills
ai-job-search
44.0kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.7kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
