#97 by GitHub stars

microsoft/SkillOpt

SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/claude-code/skills/skillopt-sleep/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Network or broad shell

e2edfa9721ce → 01e41dbcdf9e

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → e2edfa9721ce

No earlier version was observed for comparison.

Compare on GitHub

plugins/codex/skills/skillopt-sleep/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Network or broad shell

e2edfa9721ce → 01e41dbcdf9e

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → e2edfa9721ce

No earlier version was observed for comparison.

Compare on GitHub

plugins/cursor/skills/skillopt-sleep/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Network or broad shell

e2edfa9721ce → 01e41dbcdf9e

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → e2edfa9721ce

No earlier version was observed for comparison.

Compare on GitHub

plugins/dsh/skills/skillopt-sleep/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Network or broad shell

e2edfa9721ce → 01e41dbcdf9e

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → e2edfa9721ce

No earlier version was observed for comparison.

Compare on GitHub

plugins/openclaw/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

e2edfa9721ce → 01e41dbcdf9e

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → e2edfa9721ce

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 01e41dbcdf9ea6e20d6428c152c14178bd1c80f3

git clone --filter=blob:none --no-checkout https://github.com/microsoft/SkillOpt.git .hotskills/microsoft-skillopt && git -C .hotskills/microsoft-skillopt checkout --detach 01e41dbcdf9ea6e20d6428c152c14178bd1c80f3 # Copy each selected skill directory from .hotskills/microsoft-skillopt into .claude/skills/<skill-name>/
18.9kGitHub stars
135stars in 7 days
5skills in this repository
26commits in 30 days

Heat

6.9
  • Star growth, last 7 daysAhead of 80% of tracked repositories
  • Star growth, last 24 hoursAhead of 70% of tracked repositories
  • Rank movement, last 7 daysAhead of 81% of tracked repositories
  • Commits, last 30 daysAhead of 86% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 202618,919

Individual skills in this repository

How it works

skillopt-sleep

When your agent uses it

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.

What it loads into context

Frontmatter

132 tokens

Always available to the agent

SKILL.md

2,209 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. When to use this skill
  2. The cycle (six stages)
  3. How to drive it
  4. Common CLI flags
  5. Config keys (`~/.skillopt-sleep/config.json`)
  6. Memory consolidation
  7. Hard rules
  8. Validate / demo

Scripts executed separately

  • ../../scripts/sleep.sh
  • ../../scripts/sleep.sh
  • ../../scripts/sleep.sh
  • ../../../run-sleep.sh

Files

  • ../../.claude-plugin/marketplace.jsonasset1,157 bytes
  • ../../.claude-plugin/plugin.jsonasset877 bytes
  • ../../hooks/hooks.jsonasset273 bytes
  • ../../scripts/sleep.shruns1,369 bytes
  • ../../scripts/sleep.shruns1,369 bytes
  • ../../scripts/sleep.shruns1,369 bytes
  • SKILL.mdcore9,054 bytes
  • SKILL.mdcore9,054 bytes
  • SKILL.mdcore9,054 bytes
  • ../../../run-sleep.shruns3,602 bytes
Read SKILL.md

# 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:
View the complete source on GitHub

Skills included

  • skillopt-sleep
  • skillopt-sleep
  • skillopt-sleep
  • skillopt-sleep
  • skillopt-sleep

Repository facts

License
MIT
Created
May 8, 2026
Last pushed
Nov 5, 2026
Forks
1,800
Open issues
32
Project activity
Active

Rank over the last 12 weeks

Now #97 · best #91 · down 2 in 30 days

  1. #98 on Oct 25
  2. #97 from Oct 28 to Oct 29
  3. #98 from Oct 30 to Nov 1
  4. #97 on Nov 2
  5. #98 on Nov 3
  6. #97 since Nov 4
32 earlier periods
  1. #88 on Aug 2
  2. #91 from Aug 7 to Aug 8
  3. #90 on Aug 9
  4. #91 from Aug 10 to Aug 13
  5. #92 from Aug 14 to Aug 15
  6. #91 on Aug 16
  7. #92 from Aug 17 to Aug 21
  8. #91 on Aug 22
  9. #92 from Aug 23 to Aug 24
  10. #93 on Aug 25
  11. #94 from Aug 26 to Aug 29
  12. #93 on Aug 30
  13. #94 on Aug 31
  14. #95 on Sep 1
  15. #94 on Sep 2
  16. #95 on Sep 3
  17. #94 on Sep 4
  18. #96 on Sep 5
  19. #95 on Sep 6
  20. #96 from Sep 7 to Sep 9
  21. #97 from Sep 10 to Sep 14
  22. #96 from Sep 15 to Sep 18
  23. #97 on Sep 19
  24. #98 from Sep 20 to Sep 25
  25. #97 from Sep 26 to Sep 27
  26. #95 from Sep 28 to Oct 2
  27. #96 from Oct 3 to Oct 5
  28. #95 from Oct 6 to Oct 14
  29. #94 from Oct 15 to Oct 17
  30. #95 from Oct 18 to Oct 20
  31. #96 on Oct 21
  32. #97 from Oct 22 to Oct 24

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 36 notes
  • plugins/claude-code/scripts/sleep.sh:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/claude-code/scripts/sleep.sh:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/claude-code/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/claude-code/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/codex/skills/skillopt-sleep/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 73 signals by file

docs/sleep/README.md

  • Network accessline 10
    > **Preview.** This is an early preview we are actively iterating on; interfaces and > defaults may change. The engine lives in the top-level [`skillopt_sleep/`](https://github.com/microsoft/SkillOpt/tree/main/skillopt_sleep)
  • Network accessline 11
    > defaults may change. The engine lives in the top-level [`skillopt_sleep/`](https://github.com/microsoft/SkillOpt/tree/main/skillopt_sleep)
  • Network accessline 171
    One engine, thin per-agent shells (see [`plugins/`](https://github.com/microsoft/SkillOpt/tree/main/plugins)):
  • Network accessline 173
    | Platform | Folder | Install | |---|---|---| | **Claude Code** | [`plugins/claude-code`](https://github.com/microsoft/SkillOpt/tree/main/plugins/claude-code) | `/plugin marketplace add ./plugins/claude-code` → `/skillopt-sleep` |
  • Network accessline 174
    |---|---|---| | **Claude Code** | [`plugins/claude-code`](https://github.com/microsoft/SkillOpt/tree/main/plugins/claude-code) | `/plugin marketplace add ./plugins/claude-code` → `/skillopt-sleep` | | **Codex** | [`plugins/codex`](https://g
  • Network accessline 175
    | **Claude Code** | [`plugins/claude-code`](https://github.com/microsoft/SkillOpt/tree/main/plugins/claude-code) | `/plugin marketplace add ./plugins/claude-code` → `/skillopt-sleep` |
  • Network accessline 176
    | **Codex** | [`plugins/codex`](https://github.com/microsoft/SkillOpt/tree/main/plugins/codex) | `bash plugins/codex/install.sh` → `skillopt-sleep` skill |
  • Network accessline 177
    | **Cursor** | [`plugins/cursor`](https://github.com/microsoft/SkillOpt/tree/main/plugins/cursor) | `bash plugins/cursor/install.sh` → `/skillopt-sleep` |
  • Network accessline 178
    | **Copilot** | [`plugins/copilot`](https://github.com/microsoft/SkillOpt/tree/main/plugins/copilot) | register `plugins/copilot/mcp_server.py` as an MCP server |
  • Network accessline 179
    | **Devin** | [`plugins/devin`](https://github.com/microsoft/SkillOpt/tree/main/plugins/devin) | register `plugins/devin/mcp_server.py` as an MCP server |
  • Network accessline 180
    | **OpenClaw** | [`plugins/openclaw`](https://github.com/microsoft/SkillOpt/tree/main/plugins/openclaw) | adapt the reference wrapper and paths for your installation |
  • Network accessline 323
    For model calls, install and configure OpenCode using its [official documentation](https://opencode.ai/docs/), then confirm the CLI is
  • Network accessline 324
    [official documentation](https://opencode.ai/docs/), then confirm the CLI is
  • Network accessline 556
    **(a) End-to-end on real agents — [gbrain-evals](https://github.com/garrytan/gbrain-evals) `skillopt-v1`.**
  • Network accessline 592
    See the [SkillOpt documentation index](../index.md), the [CLI reference](../reference/cli.md), and the integration-specific READMEs under [`plugins/`](https://github.com/microsoft/SkillOpt/tree/main/plugins).
  • Network accessline 594
    [`plugins/`](https://github.com/microsoft/SkillOpt/tree/main/plugins).

plugins/claude-code/.claude-plugin/marketplace.json

  • Network accessline 1
    {   "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  • Network accessline 2
    "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
  • Network accessline 17
    "source": {         "source": "git-subdir",         "url": "https://github.com/microsoft/SkillOpt.git",
  • Network accessline 18
    "source": "git-subdir",         "url": "https://github.com/microsoft/SkillOpt.git",         "path": "plugins/claude-code",
  • Network accessline 19
    "url": "https://github.com/microsoft/SkillOpt.git",
  • Network accessline 21
    "ref": "main"       },       "homepage": "https://github.com/microsoft/SkillOpt"
  • Network accessline 22
    },       "homepage": "https://github.com/microsoft/SkillOpt"     }
  • Network accessline 23
    "homepage": "https://github.com/microsoft/SkillOpt"

plugins/claude-code/.claude-plugin/plugin.json

  • Network accessline 7
    "email": "yifanyang@microsoft.com"   },   "homepage": "https://github.com/microsoft/SkillOpt",
  • Network accessline 8
    },   "homepage": "https://github.com/microsoft/SkillOpt",   "repository": "https://github.com/microsoft/SkillOpt",
  • Network accessline 9
    "homepage": "https://github.com/microsoft/SkillOpt",
  • Network accessline 10
    "repository": "https://github.com/microsoft/SkillOpt",

plugins/claude-code/scripts/sleep.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable

plugins/claude-code/skills/skillopt-sleep/SKILL.md

  • Network accessline 155
    See the [SkillOpt-Sleep documentation](https://github.com/microsoft/SkillOpt/tree/main/docs/sleep)

plugins/codex/skills/skillopt-sleep/SKILL.md

  • Network accessline 187
    benchmark evidence for that configuration, not a guarantee for other skills, tasks, or models; see the [recorded results](https://github.com/microsoft/SkillOpt/blob/main/docs/sleep/RESULTS.md)
  • Network accessline 188
    tasks, or models; see the [recorded results](https://github.com/microsoft/SkillOpt/blob/main/docs/sleep/RESULTS.md) for context and limitations.
  • Network accessline 189
    [recorded results](https://github.com/microsoft/SkillOpt/blob/main/docs/sleep/RESULTS.md)

plugins/dsh/skills/skillopt-sleep/SKILL.md

  • Network accessline 8
    SkillOpt-Sleep is Microsoft's [SkillOpt](https://github.com/microsoft/SkillOpt)
  • Network accessline 120
    See the [SkillOpt-Sleep docs](https://github.com/microsoft/SkillOpt/tree/main/docs/sleep)

plugins/openclaw/README.md

  • Network accessline 3
    This directory is a contributed reference for connecting [SkillOpt-Sleep](https://github.com/microsoft/SkillOpt) to
  • Network accessline 4
    [SkillOpt-Sleep](https://github.com/microsoft/SkillOpt) to
  • Network accessline 5
    [OpenClaw](https://github.com/openclaw/openclaw) with a custom DeepSeek/Ollama
  • Network accessline 49
    git clone https://github.com/microsoft/SkillOpt.git

plugins/openclaw/run_sleep.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/openclaw/run_sleep_cron.sh

  • Executable scriptline 1
    #!/bin/bash
  • Access to secretsline 43
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]

plugins/openclaw/skillopt_sleep_openclaw.py

  • Executable scriptline 1
    Executable file
  • Network accessline 24
    """Call DeepSeek V4 Pro via curl + jq. No extra Python deps needed."""
  • Access to secretsline 28
    [Credential-related source omitted]
  • Access to secretsline 29
    [Credential-related source omitted]
  • Access to secretsline 30
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]
  • Access to secretsline 36
    [Credential-related source omitted]
  • Network accessline 39
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]
  • Network accessline 46
    "stream": False,     }     req = urllib.request.Request(
  • Network accessline 47
    }     req = urllib.request.Request(         f"{base}/chat/completions",
  • Network accessline 48
    req = urllib.request.Request(
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 55
    )     try:         with urllib.request.urlopen(req, timeout=180) as resp:
  • Network accessline 56
    try:         with urllib.request.urlopen(req, timeout=180) as resp:             data = _json.loads(resp.read().decode("utf-8"))
  • Network accessline 57
    with urllib.request.urlopen(req, timeout=180) as resp:
  • Network accessline 69
    try:         req = urllib.request.Request(
  • Network accessline 70
    req = urllib.request.Request(
  • Network accessline 71
    "http://127.0.0.1:11434/api/embeddings",
  • Network accessline 73
    headers={"Content-Type": "application/json"},         )         with urllib.request.urlopen(req, timeout=30) as resp:
  • Network accessline 74
    )         with urllib.request.urlopen(req, timeout=30) as resp:             data = _json.loads(resp.read().decode("utf-8"))
  • Network accessline 75
    with urllib.request.urlopen(req, timeout=30) as resp:

plugins/openclaw/slash_sleep.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/openclaw/tests/devops-tasks.json

  • Network accessline 5
    "rubric": "Score 1.0 if output matches the exact format [STATUS] devops-agent | Site Uptime \u2192 geoxylia.com OK (200) | DD/MM HH:MM MYT, with a real current time. Score 0.5 if format is close but missing one field. Score 0.0 if wrong for
  • Network accessline 6
    "project": "devops-infrastructure-check",     "intent": "Site Uptime check. Run: `curl -o /dev/null -s -w '%{http_code}' https://geoxylia.com`. Interpret the result 200, and report in our standard format: 'STATUS | TASK \u2192 RESULT | TIME
  • Network accessline 7
    "intent": "Site Uptime check. Run: `curl -o /dev/null -s -w '%{http_code}' https://geoxylia.com`. Interpret the result 200, and report in our standard format: 'STATUS | TASK \u2192 RESULT | TIME'. If not 200, escalate.",

plugins/run-sleep.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 1 fact
Signal confidence: 58 facts

and 8 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest plugins/claude-code/.claude-plugin/plugin.json.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md plugins/claude-code/skills/skillopt-sleep/SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/claude-code/skills/skillopt-sleep/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/claude-code/skills/skillopt-sleep/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/claude-code/skills/skillopt-sleep/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md plugins/claude-code/skills/skillopt-sleep/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

microsoft/SkillOpt: #97 on hotskills, 18.9k stars

[![microsoft/SkillOpt on hotskills](https://hotskills.dev/badge/microsoft-skillopt.svg)](https://hotskills.dev/skill/microsoft-skillopt/)