New to Claude Skills? Learn how to install them →

alirezarezvani on GitHub

SkillOpt-Sleep

Free

Enhance your Claude agent's performance while you rest.

Get this skill

Free · Opens the source repo

What SkillOpt-Sleep does

SkillOpt-Sleep is designed for users who want their Claude agent to improve autonomously during offline periods. This skill enables the agent to undergo a 'sleep cycle' where it reviews past interactions, consolidates knowledge, and refines its skills based on user preferences. By leveraging historical session data, the agent can identify recurring tasks and optimize its performance without requiring direct input during the process. This self-improvement mechanism is particularly beneficial for users who engage in repetitive tasks or seek to enhance their agent's understanding of their unique workflow.

The skill operates through a structured six-stage cycle, starting with the harvesting of past session data. It reads from session logs and history files to create session digests, which are then analyzed to extract recurring tasks. The agent replays these tasks offline, scoring its performance and reflecting on any failures. Proposed edits to the agent's memory and skills are only accepted if they improve performance, ensuring that the learning process is both effective and safe. Users can schedule these sleep cycles to run automatically, allowing for seamless integration into their workflow.

SkillOpt-Sleep is particularly useful for developers and designers who rely on Claude for coding tasks or design work. By allowing the agent to learn from past interactions, users can expect a more tailored experience that evolves over time. The skill is also beneficial for those who want to maintain a high level of control over the learning process, as it provides options for staging and reviewing changes before they are adopted. With the ability to consolidate both memory and skills, this tool ensures that the agent becomes increasingly competent in handling the user's specific needs.

When to use it

Use this skill when you want your agent to learn from past sessions and improve autonomously during offline periods, such as overnight.

When not to use it

This skill may not be suitable for users who require immediate feedback or real-time adjustments, as it operates during offline cycles and does not provide instant updates.

What you can build with it

Nightly Self-Improvement

Schedule the sleep cycle to run every night, allowing your agent to learn from the day's interactions and improve for the next session.

Review Past Sessions

Use the skill to analyze and consolidate feedback from previous sessions, ensuring your agent becomes more effective in handling recurring tasks.

Controlled Learning Process

Stage proposed changes before adopting them, giving you control over how your agent evolves based on your preferences.

How to install SkillOpt-Sleep

View source

1. Install with the skills CLI

npx skills add alirezarezvani/claude-skills/skillopt-sleep --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by alirezarezvani

SkillOpt-Sleep: offline self-evolution for a local Claude agent

SkillOpt-Sleep gives the user's agent a sleep cycle. While the user is offline (e.g. nightly), it reviews their real past Claude Code sessions, re-runs recurring tasks on their own API budget, and consolidates what it learns into memory (CLAUDE.md) and skills (SKILL.md) — but only keeps changes that pass a held-out validation gate, and only after the user adopts them. The agent gets measurably better at this user's recurring work, 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 become negative feedback.
  • Claude Dreams — offline consolidation that reads past sessions and rebuilds memory (dedup/merge/resolve); the input is never mutated; output is reviewed then adopted.
  • Agent sleep — periodic offline 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.md or a managed skill
  • to schedule the cycle (cron) or adopt a staged proposal

The cycle (six stages)

  1. Harvest — read ~/.claude/projects/*/<session>.jsonl + ~/.claude/history.jsonl (READ-ONLY) → session digests.
  2. Mine — digests → TaskRecords (recurring intents + outcome labels + checkable refs where possible).
  3. Replay — re-run tasks offline under the current skill+memory → (hard, soft) scores.
  4. Consolidate — reflect on failures → propose bounded edits → gate on a held-out slice; accept only if it strictly improves.
  5. Stage — write proposed_CLAUDE.md, proposed_SKILL.md, a diff, and report.md into <project>/.skillopt-sleep/staging/<date>/. Nothing live changes.
  6. 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)"    # safe 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 claude or --backend codex to spend the user's real budget for genuine improvement.
  • Scope defaults to the invoked project; --scope all harvests every project.

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.

All CLI flags

FlagDefaultDescription
--project PATHcwdProject directory to evolve
--scope all|invokedinvokedHarvest scope
--backend mock|claude|codex|copilotmockReplay backend (mock = no API spend)
--model NAMEbackend defaultOverride the model used for replay
--source claude|codex|autoclaudeTranscript source
--lookback-hours N72Harvest window
--max-sessions NunlimitedCap harvested sessions
--max-tasks N40Cap mined tasks
--target-skill-path PATHautoExplicit SKILL.md to evolve
--tasks-file PATHReviewed TaskRecord JSON (skip harvest)
--progressoffPrint phase progress to stderr
--auto-adoptoffAuto-adopt if gate passes
--edit-budget N4Max bounded edits per night
--jsonoffMachine-readable JSON output

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_modeon (default, validation-gated) or off (greedy, accept all edits).
  • gate_metrichard, soft, or mixed (default). Controls how the held-out gate scores.
  • 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)

Both are gated by the same held-out validation 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.md as part of this skill. Only the adopt action changes live files, and it backs them up first.
  • Harvest is read-only. mock replay has no side effects.
  • Always show the user the held-out baseline → candidate score and the exact proposed edits before suggesting adoption. Evidence before adoption.
  • If asked whether it really helps, run python -m skillopt_sleep.experiments.run_experiment --persona researcher --json — a deterministic demo that proves held-out lift and that the gate blocks harmful edits.

Validate / demo

# deterministic proof (no API): held-out score rises, gate blocks regressions
python -m skillopt_sleep.experiments.run_experiment --persona researcher --assert-improves
python -m skillopt_sleep.experiments.run_experiment --persona programmer  --assert-improves

See the upstream SkillOpt-Sleep guide section (https://microsoft.github.io/SkillOpt/docs/guideline.html#sleep) for recorded output and the full design. (The original repo-relative design-doc path, docs/superpowers/specs/..., is not vendored into this repo — see this skill's README.md "What was and wasn't vendored" table.)

Frequently asked questions about SkillOpt-Sleep

Similar skills