Agent skill

Utils Reclaim Stale Snapshots

by open-thoughts in open-thoughts/OpenThoughts-Agent

Reclaim idle Daytona SNAPSHOTS org-wide to free space under the 60-snapshot cap, using scripts/daytona/daytonasnapshotmanager.py.

Apache-2.0Auto-check passed

Install Utils Reclaim Stale Snapshots

skills CLI
$ npx skills add open-thoughts/OpenThoughts-Agent --skill utils-reclaim-stale-snapshots -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install open-thoughts/OpenThoughts-Agent utils-reclaim-stale-snapshots --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/open-thoughts/OpenThoughts-Agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/utils-reclaim-stale-snapshots .claude/skills/utils-reclaim-stale-snapshots && rm -rf skills-src

Use ~/.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/

Facts

Skill name
utils-reclaim-stale-snapshots
GitHub stars
301
Token cost
~969 tokens
SKILL.md length
289 words
Files
1
Skills in repo
44
Repo updated
First seen
Licence
Apache-2.0

At a glance

Reclaim idle Daytona SNAPSHOTS org-wide to free space under the 60-snapshot cap, using scripts/daytona/daytonasnapshotmanager.py.

  • A datagen/eval launch hits SnapshotCapExceeded
  • SKILL.md covers Why this is safe (and what it…, Which org, How to run and Flags (this tool), plus 2 more sections
  • Calls conda and python; needs DAYTONA_API_KEY and DAYTONA_RL_API_KEY
  • A monitor sweep finds the cap full

What it does

Utils Reclaim Stale Snapshots is an agent skill from open-thoughts/OpenThoughts-Agent. Reclaim idle Daytona SNAPSHOTS org-wide to free space under the 60-snapshot cap, using scripts/daytona/daytonasnapshotmanager.py. Deletes only harbor per- environment snapshots idle past the standing threshold GT'd in .agents/projects/daytona/daytona.md — NEVER the shared base/template images (daytonaio/sandbox:, daytona-, windows-), which do not rebuild-on-demand. Use when a datagen/eval launch hits SnapshotCapExceeded, when a monitor sweep finds the cap full, or as routine cap hygiene. This is the org-wide…

Its SKILL.md is about 970 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: Data recipes and robust infrastructure for training AI agents. The licence is Apache-2.0.

When your agent uses it

  • A datagen/eval launch hits SnapshotCapExceeded
  • A monitor sweep finds the cap full
  • As routine cap hygiene

Example prompts

  • “/utils-reclaim-stale-snapshots”

Requirements

  • Python 3
  • A credential in DAYTONA_API_KEY
  • A credential in DAYTONA_RL_API_KEY

What it can do on your machine

Read from SKILL.md and the folder at commit 3bd1917. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • conda
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DAYTONA_API_KEY
    • DAYTONA_RL_API_KEY
    • DAYTONA_DATA_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Utils Reclaim Stale Snapshots loads about 969 tokens when it runs. Until then it costs about 193 tokens; SKILL.md has 289 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~193
When it runs · the whole SKILL.md, loaded when a task matches
~969

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from open-thoughts/OpenThoughts-Agent at commit 3bd1917, republished under its Apache-2.0 licence (© open-thoughts). 289 words, ~969 tokens.

Download SKILL.mdSave it as .claude/skills/utils-reclaim-stale-snapshots/SKILL.md (or your agent's skills folder).
name
utils-reclaim-stale-snapshots
description
Reclaim idle Daytona SNAPSHOTS org-wide to free space under the 60-snapshot cap, using scripts/daytona/daytona_snapshot_manager.py. Deletes only harbor__ per- environment snapshots idle past the standing threshold GT'd in .agents/projects/daytona/daytona.md — NEVER the shared base/template images (daytonaio/sandbox:*, daytona-*, windows-*), which do not rebuild-on-demand. Use when a datagen/eval launch hits SnapshotCapExceeded, when a monitor sweep finds the cap full, or as routine cap hygiene. This is the org-wide RECLAIM tool; to shrink a SINGLE dataset's unique-environment count instead, use datagen-reduce-dataset-snapshots. Snapshots are a DIFFERENT resource from sandboxes (for sandbox cleanup use utils-cleanup-stale-sandboxes).

utils-reclaim-stale-snapshots

Free Daytona snapshot quota by deleting idle harbor__<hash>__snapshot environments under the hard cap of 60.

Why this is safe (and what it must never touch)

Harbor builds one snapshot per task-environment hash (harbor__<hash>__snapshot). auto_snapshot rebuilds a deleted idle snapshot on demand.

The base/template images (daytonaio/sandbox:*, daytona-gpu, daytona-medium/large/small, windows-*) are shared and do not rebuild on demand. Keep --name-prefix harbor__ so only Harbor snapshots are eligible.

For snapshots, state=active means built and available. Staleness uses last_used_at, falling back to created_at; live-job environments remain below the idle threshold.

Which org

Datagen/eval pre-build uses the cli org and DAYTONA_API_KEY. RL uses the separate DAYTONA_RL_API_KEY org.

How to run

Always audit (read-only) first, then delete.

bash
cd /Users/benjaminfeuer/Documents/OpenThoughts-Agent
source /Users/benjaminfeuer/miniconda3/etc/profile.d/conda.sh && conda activate otagent
source "${DC_AGENT_SECRET_ENV:?set DC_AGENT_SECRET_ENV to the secrets file first}"
PY=/Users/benjaminfeuer/miniconda3/envs/otagent/bin/python
SCRIPT=scripts/daytona/daytona_snapshot_manager.py

# 1. AUDIT — read-only, see what WOULD be reclaimed (at the stale threshold — see below)
$PY $SCRIPT --api-key-env DAYTONA_API_KEY --stale-days <threshold>

# 2. RECLAIM — actually delete the stale harbor__ snapshots
$PY $SCRIPT --api-key-env DAYTONA_API_KEY --stale-days <threshold> --delete-stale --yes

--stale-days accepts floats; use minutes/1440 for sub-day thresholds. The standing threshold is in .agents/projects/daytona/daytona.md § "How to clean stale snapshots". Raise it for more conservative cleanup.

Flags (this tool)

FlagDefaultPurpose
--api-key-envDAYTONA_DATA_API_KEYOrg key env var. Use DAYTONA_API_KEY for the cli/datagen org.
--stale-days14Idle-days threshold (float). Standing value GT'd in .agents/projects/daytona/daytona.md § "How to clean stale snapshots" — don't restate it here.
--name-prefixharbor__Only names starting with this are deletable. Do not widen it — the default guards base images.
--delete-staleoff (dry-run)Actually delete.
--yesoffSkip the confirm prompt (for scripted/cron use).
--jsonoffMachine-readable output.

Gotchas

  • Source $DC_AGENT_SECRET_ENV + otagent env — the daytona SDK lives in the otagent conda env; use the full interpreter path.
  • Never pass --name-prefix '' with --delete-stale — that would make base images deletable. The tool is safe only with the harbor__ default.
  • Idle active harbor__ snapshots are reclaimable.
  • Reclaiming adds a one-time rebuild when the environment is next used.

In the monitor sweep

The every-3-hours Iris sweep audits each tick and reclaims for blocked datagen refills or cap ≥ ~58/60. See monitor-cron-sweep-iris §5.

© open-thoughts, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/utils-reclaim-stale-snapshots of open-thoughts/OpenThoughts-Agent.

Open the folder on GitHubat commit 3bd1917

Compare with similar skills

Utils Reclaim Stale Snapshots 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.

Utils Reclaim Stale Snapshots compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Utils Reclaim Stale Snapshots this skillopen-thoughts/OpenThoughts-Agent301—~969Automated safety check: PassApache-2.0
Daytona Sandbox Operationsdifferent-ai/openwork24k—~917Automated safety check: PassCustom licence
Maintain Spaceasgeirtj/system_prompts_leaks69k—~1.6kAutomated safety check: PassCC0-1.0
Organize Spaceasgeirtj/system_prompts_leaks69k—~1.6kAutomated safety check: PassCC0-1.0
Huggingface Spacessickn33/agentic-awesome-skills47k1 repos~3.9kAutomated safety check: PassApache-2.0
Copilot Spacesgithub/awesome-copilot40k1 repos~2.2kAutomated safety check: PassMIT

Similar skills

  • Daytona Sandbox Operations

    different-ai/openwork

    Covers Daytona CLI setup, sandbox debugging, keeping a sandbox alive and which credentials the CLI uses, for when Daytona itself is the problem rather than the tests.

    24k GitHub stars~917 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Maintain Space

    asgeirtj/system_prompts_leaks

    Reconcile new evidence into existing ChatGPT Pages or a Space when the user requests upkeep.

    69k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Organize Space

    asgeirtj/system_prompts_leaks

    Organize existing ChatGPT Pages and Space structure when the user requests changes to that structure.

    69k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Huggingface Spaces

    sickn33/agentic-awesome-skills

    Build, deploy, and maintain applications on Hugging Face Spaces — Gradio / Docker / Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging, buckets, inference providers, community…

    47k GitHub starsUsed in 1 repo~3.9k tokens
    AI & LLM EngineeringAuto-check passed
  • Copilot Spaces

    github/awesome-copilot

    Official

    Use Copilot Spaces to provide project-specific context to conversations.

    40k GitHub starsUsed in 1 repo~2.2k tokens
    Knowledge ManagementAuto-check passed
  • Insta Snapshot Review

    oxc-project/oxc

    Reviews and accepts Insta snapshot changes in the Oxc repo from the command line, one reviewed snapshot at a time, instead of using the interactive UI.

    23k GitHub stars~356 tokensUpdated today
    Testing & QAAuto-check passed

More from open-thoughts/OpenThoughts-Agent

All 44 skills in this repo
  • Analyze Dataset Token Length

    open-thoughts/OpenThoughts-Agent

    Analyze the token length of an OT-Agent conversation-format (ShareGPT-style) dataset — the per-trace distribution (median/p90/max) and/or counts under a token threshold + a metadata predicate (e.g.

    301 GitHub stars~1.5k tokensUpdated 12 days ago
    Auto-check passed
  • Analyze Id Eval Ranking

    open-thoughts/OpenThoughts-Agent

    Given a list of models (HF name stubs) that have valid agentic ID eval scores in Supabase, build a ranking table: raw per-benchmark accuracy on the 3 ID benchmarks (SWE-Bench-100…

    301 GitHub stars~3.1k tokensUpdated 12 days ago
    Auto-check passed
  • Analyze Job History Iris

    open-thoughts/OpenThoughts-Agent

    Run the Iris harbor job-history analyzer (scripts/iris/analyzeirisharborjob.py) on a datagen/eval job and read its JSON sidecar for trustworthy throughput / preemption / productive-trial stats.

    301 GitHub stars~2.9k tokensUpdated 12 days ago
    Auto-check passed
  • Analyze Rl Behavior

    open-thoughts/OpenThoughts-Agent

    Run the full RL behavioral-analysis pipeline (scripts/analysis/analyzerlbehavior.py) on a trained RL model to understand WHAT changed vs its pre-RL baseline, WHY, whether it PERSISTS, and its EVAL…

    301 GitHub stars~4.2k tokensUpdated 12 days ago
    Auto-check passed
  • Analyze Training Run Iris

    open-thoughts/OpenThoughts-Agent

    Detailed health check for a Levanter/executor TRAINING run on the marin Iris cluster (e.g.

    301 GitHub stars~2k tokensUpdated 12 days ago
    Auto-check passed
  • Code Create Staged Plan

    open-thoughts/OpenThoughts-Agent

    DESIGN a non-trivial codebase change (Harbor / MarinSkyRL / vLLM / OT-Agent / LLaMA-Factory) as a dependency-ordered STAGED PLAN before writing code — a feature port, a multi-step fix with parity…

    301 GitHub stars~1.5k tokensUpdated 12 days ago
    Auto-check passed

Questions about Utils Reclaim Stale Snapshots

What does Utils Reclaim Stale Snapshots do?

Reclaim idle Daytona SNAPSHOTS org-wide to free space under the 60-snapshot cap, using scripts/daytona/daytonasnapshotmanager.py. Utils Reclaim Stale Snapshots is an agent skill from open-thoughts/OpenThoughts-Agent.py.

When should I use Utils Reclaim Stale Snapshots?

Utils Reclaim Stale Snapshots fits situations like: A datagen/eval launch hits SnapshotCapExceeded; A monitor sweep finds the cap full; as routine cap hygiene.

How do I install Utils Reclaim Stale Snapshots in Claude Code?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-reclaim-stale-snapshots -a claude-code`. Or copy the skill folder (.agents/skills/utils-reclaim-stale-snapshots in open-thoughts/OpenThoughts-Agent) into .claude/skills/utils-reclaim-stale-snapshots in your project. Claude Code loads it when a task matches its description.

How do I install Utils Reclaim Stale Snapshots in Codex?

Run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-reclaim-stale-snapshots -a codex`. Or copy the skill folder (.agents/skills/utils-reclaim-stale-snapshots in open-thoughts/OpenThoughts-Agent) into .agents/skills/utils-reclaim-stale-snapshots in your project. Codex loads it when a task matches its description.

Can I use Utils Reclaim Stale Snapshots in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add open-thoughts/OpenThoughts-Agent --skill utils-reclaim-stale-snapshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/utils-reclaim-stale-snapshots, .gemini/skills/utils-reclaim-stale-snapshots, .github/skills/utils-reclaim-stale-snapshots and .opencode/skills/utils-reclaim-stale-snapshots in your project.

What does Utils Reclaim Stale Snapshots need to run?

Going by SKILL.md and its folder, Utils Reclaim Stale Snapshots needs the command-line tools its instructions call (conda and python) and credentials named DAYTONA_API_KEY, DAYTONA_RL_API_KEY and DAYTONA_DATA_API_KEY. Our summary lists: Python 3; A credential in DAYTONA_API_KEY; A credential in DAYTONA_RL_API_KEY.

Does Utils Reclaim Stale Snapshots access the network?

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.

Is Utils Reclaim Stale Snapshots safe to install?

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.

What licence does Utils Reclaim Stale Snapshots use?

Utils Reclaim Stale Snapshots is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Utils Reclaim Stale Snapshots use?

About 969 tokens (SKILL.md is roughly 3.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Utils Reclaim Stale Snapshots?

Skills that share tags, products or a category with Utils Reclaim Stale Snapshots: Daytona Sandbox Operations (different-ai/openwork, 24k stars), Maintain Space (asgeirtj/system_prompts_leaks, 69k stars), Organize Space (asgeirtj/system_prompts_leaks, 69k stars) and Huggingface Spaces (sickn33/agentic-awesome-skills, 47k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Utils Reclaim Stale Snapshots?

open-thoughts (a GitHub organization) maintains it in open-thoughts/OpenThoughts-Agent, which has 301 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on September 28, 2026.

Source: open-thoughts/OpenThoughts-Agent on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.