Cherry Studio Tool Guide
CherryHQ/cherry-studio
Routes an agent inside Cherry Studio to the right first-party tool or bundled runtime for local scripts, documents, memory, schedules, knowledge bases, MCP servers and more.
Runs a nightly or on-demand sleep cycle for a local Codex agent: review past sessions, replay recurring tasks and stage validated skill and memory edits for adoption.
$ npx skills add microsoft/SkillOpt --skill skillopt-sleep -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/SkillOpt skillopt-sleep --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/microsoft/SkillOpt.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .claude/skills/skillopt-sleep && 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 "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .claude/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleepType 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 microsoft/SkillOpt --skill skillopt-sleep -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/SkillOpt skillopt-sleep --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/SkillOpt.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .agents/skills/skillopt-sleep && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .agents/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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 microsoft/SkillOpt --skill skillopt-sleep -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/SkillOpt skillopt-sleep --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/SkillOpt.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .cursor/skills/skillopt-sleep && 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 "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .cursor/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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/microsoft/SkillOpt.git --path plugins/codex/skills/skillopt-sleep--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 microsoft/SkillOpt --skill skillopt-sleep -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/SkillOpt skillopt-sleep --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/SkillOpt.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .gemini/skills/skillopt-sleep && 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 "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .gemini/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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 microsoft/SkillOpt skillopt-sleepInstalls 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 microsoft/SkillOpt --skill skillopt-sleep -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/SkillOpt.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .github/skills/skillopt-sleep && 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 "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .github/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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 microsoft/SkillOpt --skill skillopt-sleep -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/SkillOpt skillopt-sleep --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/SkillOpt.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/codex/skills/skillopt-sleep .opencode/skills/skillopt-sleep && 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 "skillopt-sleep" agent skill from https://github.com/microsoft/SkillOpt/tree/main/plugins/codex/skills/skillopt-sleep into .opencode/skills/skillopt-sleep/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillopt-sleep", 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.
skillopt-sleepRuns a nightly or on-demand sleep cycle for a local Codex agent: review past sessions, replay recurring tasks and stage validated skill and memory edits for adoption.
SkillOpt-Sleep gives a local Codex agent a sleep cycle: on demand or on a nightly schedule it reviews past local sessions, replays recurring tasks through a chosen backend and proposes changes to a configured skill and to the project's `CLAUDE.md`. With the default validation gate on, only edits that raise a held-out score are kept. Nothing live changes until you adopt a proposal (or ask for `--auto-adopt`), and no model weights are trained.
The cycle has seven stages: harvest session transcripts into digests, mine recurring tasks, replay them under the current skill and memory, consolidate failures into bounded edits, gate them on the validation score, stage the proposal under `.skillopt-sleep/staging/` and adopt it with backups. The agent drives a bundled runner through the shell for `status`, `harvest`, `dry-run`, `run` and `adopt`. The engine does not write `AGENTS.md`, so a Codex skill must be named with `--target-skill-path`, and `evolve_memory` can be turned off in the config to leave `CLAUDE.md` alone.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 343db22. 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.
Shell commands in SKILL.md call:
bashpythonFrom 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.
SkillOpt-Sleep Self-Improvement Cycle loads about 2.3k tokens when it runs. Until then it costs about 122 tokens; SKILL.md has 926 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 microsoft/SkillOpt at commit 343db22, republished under its MIT licence (© microsoft). 926 words, ~2,344 tokens.
.claude/skills/skillopt-sleep/SKILL.md (or your agent's skills folder).SkillOpt-Sleep gives the user's Codex agent a sleep cycle. On demand or on a
nightly schedule, it reviews past local sessions, re-runs recurring tasks
through the selected backend, and proposes changes to a configured skill and to
the project's CLAUDE.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. There is no model-weight
training.
The current shared engine does not write AGENTS.md. For a Codex-visible
result, always select a Codex skill explicitly with --target-skill-path (for
example .agents/skills/<name>/SKILL.md). If project CLAUDE.md is not a
desired secondary target, set "evolve_memory": false in
~/.skillopt-sleep/config.json before running.
Trigger when the user wants any of:
status, harvest, dry-run, run, or adopt for SkillOpt-Sleep.TaskRecords with outcomes and
checkable references where possible.<project>/.skillopt-sleep/staging/<date>/; nothing live changes.Invoke the bundled runner via shell (Codex exec has shell access). The runner
finds the engine and a Python >= 3.10 automatically.
# point at the repo if it isn't auto-detected from CWD:
export SKILLOPT_SLEEP_REPO=/path/to/SkillOpt
TARGET_SKILL=.agents/skills/example/SKILL.md
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" status --project "$(pwd)"
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" harvest --project "$(pwd)" \
--source codex --target-skill-path "$TARGET_SKILL"
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" dry-run --project "$(pwd)" \
--source codex --target-skill-path "$TARGET_SKILL" --backend mock
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" run --project "$(pwd)" \
--source codex --target-skill-path "$TARGET_SKILL" --backend codex \
--max-sessions 5 --max-tasks 3 --progress
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" status --project "$(pwd)"
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" adopt --project "$(pwd)" --legacyFor a fan-out night, select reviewed proposals with repeatable
--skill NAME or --all-skills; do not treat bare adopt as “adopt everything.”
On Windows (CMD / PowerShell):
:: CMD
set SKILLOPT_SLEEP_REPO=C:\path\to\SkillOpt-Sleep
"%SKILLOPT_SLEEP_REPO%\plugins\run-sleep.cmd" status --project "%CD%"# PowerShell
$env:SKILLOPT_SLEEP_REPO = "C:\path\to\SkillOpt-Sleep"
powershell -File "$env:SKILLOPT_SLEEP_REPO\plugins\run-sleep.ps1" status --project "$(pwd)"Actions are status, harvest, dry-run, run, adopt, schedule, and unschedule.
mock, which is deterministic and spends no API budget.--backend codex uses the user's Codex budget for model-driven optimization.
An accepted held-out gain is run-specific evidence, not a guarantee of
broader improvement; results depend on the tasks, model, and checks.--source codex reads Codex Desktop archived sessions from ~/.codex/archived_sessions;
use --codex-home /path/to/.codex if the archive lives elsewhere.--target-skill-path is required for a Codex skill target. Without it, the
shared default is a Claude-managed skill under ~/.claude/skills/, not an
.agents skill.dry-run --backend mock as the first smoke check unless the user
explicitly asked for a real optimization run.bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" schedule --project "$(pwd)" \
--backend codex --hour 3 --minute 17
bash "$SKILLOPT_SLEEP_REPO/plugins/run-sleep.sh" unschedule --project "$(pwd)"The scheduler persists the project, backend, time, and optional auto-adopt flag;
it does not persist --source or --target-skill-path from this command. Before
scheduling a Codex-targeted run, set "transcript_source": "codex" and an
absolute "target_skill_path" in ~/.skillopt-sleep/config.json. On systems
without crontab, schedule prints a line for manual installation.
unschedule --all removes every managed entry.
--backend mock — deterministic, no API spend (default)--backend claude — uses the Claude CLI--backend codex — uses the Codex CLI--backend copilot — uses the GitHub Copilot CLI--backend handoff — emits prompt/answer files for an interactive session--backend azure_openai — uses the configured Azure OpenAI endpoint| Flag | Description |
|---|---|
--auto-adopt | Auto-adopt if the gate passes (default: stage only) |
--edit-budget N | Max bounded edits per night (default: 4) |
--lookback-hours N | Harvest window in hours (default: 72) |
--json | Machine-readable JSON output |
~/.skillopt-sleep/config.json)preferences — free-text house rules for the optimizergate_mode — on (validation-gated, default) or off (greedy)gate_metric — hard | soft | mixed (default)gate_no_regression — false by default; set it to true to reject a candidate when any validation task's gate score decreasesdream_rollouts — >1 for multi-rollout contrastive reflectionrecall_k — >0 recalls similar past tasks from the archiveThe shared sleep cycle consolidates project memory (CLAUDE.md) and the
selected skill (SKILL.md) by default. It does not update AGENTS.md.
Each target is independently toggleable through evolve_memory /
evolve_skill, and both are gated by the same held-out validation score.
dry-run and run, report the held-out baseline -> candidate score,
gate action, task count, session count, and exact proposed edits.report.md before summarizing.run stages by default; if --auto-adopt was explicitly supplied, report
the paths it updated instead of claiming nothing changed.CLAUDE.md or target skill as a substitute
for the engine's adopt path; adoption is the safety boundary and backs up
existing targets first.--tasks-file workflow when the data boundary matters./sleep slash commands for this
Codex integration. This skill is the entrypoint.python -m skillopt_sleep dry-run --project "$(pwd)" --source codex \
--target-skill-path .agents/skills/example/SKILL.md --backend mock --json
python -m skillopt_sleep.experiments.run_gbrain --backend codex \
--seeds brief-writer --data-root /path/to/gbrain-evals/eval/data/skillopt-v1 \
--nights 2 --limit-replay 3 --limit-holdout 3In the recorded brief-writer gbrain run, the deliberately deficient fixture
went 0.00 -> 1.00 on that run's held-out set. Treat this as reproducible
benchmark evidence for that configuration, not a guarantee for other skills,
tasks, or models; see the
recorded results
for context and limitations.
© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in plugins/codex/skills/skillopt-sleep of microsoft/SkillOpt.
Open the folder on GitHubat commit 343db22
SkillOpt-Sleep Self-Improvement Cycle 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 |
|---|---|---|---|---|---|---|
| SkillOpt-Sleep Self-Improvement Cycle this skillmicrosoft/SkillOpt | 18k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Cherry Studio Tool GuideCherryHQ/cherry-studio | 52k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 | |
| Mem0 CLI Memory Commandsmem0ai/mem0 | 67k | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| MemPalace Setup and OperationMemPalace/mempalace | 59k | — | ~2.2k | Automated safety check: Pass | MIT | |
| PicoClaw Agentsipeed/picoclaw | 30k | — | ~7.2k | Automated safety check: Notes | MIT | |
| Agent Memorytigerless-labs/agent-memory | 2.4k | — | ~1.2k | Automated safety check: Pass | MIT |
CherryHQ/cherry-studio
Routes an agent inside Cherry Studio to the right first-party tool or bundled runtime for local scripts, documents, memory, schedules, knowledge bases, MCP servers and more.
mem0ai/mem0
Adds, searches, lists, updates and deletes memories on the Mem0 platform from the terminal with the mem0 command, including a JSON mode built for agents.
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
sipeed/picoclaw
Answers questions about running and changing PicoClaw, from onboarding and model selection to MCP server setup, skill loading and scheduled jobs.
tigerless-labs/agent-memory
Read and write the shared long-term memory store. An agent skill from tigerless-labs/agent-memory.
mindscale-noah/MindMemOS
Give an AI agent persistent, cross-session long-term memory through MindMemOS.
microsoft/SkillOpt
Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.
microsoft/SkillOpt
Mines recurring tasks from recent local Cursor sessions, replays them to test bounded skill edits, and stages validated improvements to a project Cursor skill for review.
microsoft/SkillOpt
Runs a usage-driven self-improvement cycle for the dsh agent: harvest past sessions, mine recurring tasks, replay them and stage validated skill edits.
microsoft/SkillOpt
Reference-only OpenClaw adaptation of SkillOpt-Sleep. Use it to study or port the contributed DeepSeek wrapper, not as a ready-to-run installation.
Works with
Categories
Runs a nightly or on-demand sleep cycle for a local Codex agent: review past sessions, replay recurring tasks and stage validated skill and memory edits for adoption. md`. With the default validation gate on, only edits that raise a held-out score are kept.
SkillOpt-Sleep Self-Improvement Cycle fits situations like: letting a Codex agent learn from past sessions and improve a skill; running a dry run before adopting proposed skill edits; scheduling a nightly self-optimization run; checking the status of a SkillOpt-Sleep run.
Run `npx skills add microsoft/SkillOpt --skill skillopt-sleep -a claude-code`. Or copy the skill folder (plugins/codex/skills/skillopt-sleep in microsoft/SkillOpt) into .claude/skills/skillopt-sleep in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/SkillOpt --skill skillopt-sleep -a codex`. Or copy the skill folder (plugins/codex/skills/skillopt-sleep in microsoft/SkillOpt) into .agents/skills/skillopt-sleep 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 microsoft/SkillOpt --skill skillopt-sleep -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skillopt-sleep, .gemini/skills/skillopt-sleep, .github/skills/skillopt-sleep and .opencode/skills/skillopt-sleep in your project.
Going by SKILL.md and its folder, SkillOpt-Sleep Self-Improvement Cycle needs the command-line tools its instructions call (bash and python). Our summary lists: Python 3.10 or later; A SkillOpt checkout providing the sleep engine (set SKILLOPT_SLEEP_REPO if it is not auto-detected).
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.
SkillOpt-Sleep Self-Improvement Cycle is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.4k 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 SkillOpt-Sleep Self-Improvement Cycle: Cherry Studio Tool Guide (CherryHQ/cherry-studio, 52k stars), Mem0 CLI Memory Commands (mem0ai/mem0, 67k stars), MemPalace Setup and Operation (MemPalace/mempalace, 59k stars) and PicoClaw Agent (sipeed/picoclaw, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/SkillOpt, which has 18,087 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 6, 2026.
Source: microsoft/SkillOpt on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.