Agent skill

Datagen Launch

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

Launch a datagen (trace-generation) job on an HPC cluster (Jupiter/Leonardo/Perlmutter) via the OpenThoughts-Agent hpc.launch --jobtype datagen entrypoint — the cluster-AGNOSTIC general flow…

Apache-2.0Auto-check passedAI & LLM Engineering

Install Datagen Launch

skills CLI
$ npx skills add open-thoughts/OpenThoughts-Agent --skill datagen-launch -a claude-code

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

GitHub CLI
$ gh skill install open-thoughts/OpenThoughts-Agent datagen-launch --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/datagen-launch .claude/skills/datagen-launch && 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
datagen-launch
GitHub stars
301
Token cost
~2.5k tokens
SKILL.md length
1,116 words
Files
1
Skills in repo
44
Repo updated
First seen
Licence
Apache-2.0

At a glance

Launch a datagen (trace-generation) job on an HPC cluster (Jupiter/Leonardo/Perlmutter) via the OpenThoughts-Agent hpc.launch --jobtype datagen entrypoint — the cluster-AGNOSTIC general flow…

  • Works in 3 steps: Dataset / tasks — an HF parquet repo id… → Teacher model + operating point —… → Target HF repo — --trace_target_repo…
  • Asked to start a datagen / trace-generation job
  • SKILL.md covers Required info (ask if missing), The 2-step flow, CRITICAL gotchas (get these… and Chunking (long datasets), plus 4 more sections
  • Calls python; reaches datasets-server.huggingface.co; needs DAYTONA_DATA_API_KEY

What it does

Datagen Launch is an agent skill from open-thoughts/OpenThoughts-Agent. Launch a datagen (trace-generation) job on an HPC cluster (Jupiter/Leonardo/Perlmutter) via the OpenThoughts-Agent hpc.launch --jobtype datagen entrypoint — the cluster-AGNOSTIC general flow: extract tasks from a parquet, then submit a managed vLLM-serve + Harbor/Daytona trace run that uploads the trajectories to an HF repo. Use when asked to start a datagen / trace-generation job, generate agent traces from a task dataset, or advance / start a row in the MiniMax-M2.7 datagen tracker. For the Iris TPU path use…

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

It sits in AI & LLM Engineering, covering LLM inference and serving and DataFrames. It works with vLLM and MiniMax. 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

  • Asked to start a datagen / trace-generation job
  • Generate agent traces from a task dataset
  • Advance / start a row in the MiniMax-M2.7 datagen tracker

Example prompts

  • “/datagen-launch”

Requirements

  • Python 3
  • A credential in DAYTONA_DATA_API_KEY

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Dataset / tasks — an HF parquet repo id to extract tasks from (e.g. DCAgent/r2egym_sandboxes), or an already-extracted local tasks dir.
  2. Teacher model + operating point — determines the datagen_config (vllm-serve) YAML and the trace_harbor_config context-length YAML. Pick…
  3. Target HF repo — --trace_target_repo (default penfever/ or DCAgent2/ org per the series).

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:

    • python

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • datasets-server.huggingface.co

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

  • Credentials

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

    • DAYTONA_DATA_API_KEY

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

Context cost

Datagen Launch loads about 2.5k tokens when it runs. Until then it costs about 180 tokens; SKILL.md has 1,116 words of instructions outside code blocks.

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

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). 1,116 words, ~2,542 tokens.

Download SKILL.mdSave it as .claude/skills/datagen-launch/SKILL.md (or your agent's skills folder).
name
datagen-launch
description
Launch a datagen (trace-generation) job on an HPC cluster (Jupiter/Leonardo/Perlmutter) via the OpenThoughts-Agent `hpc.launch --job_type datagen` entrypoint — the cluster-AGNOSTIC general flow: extract tasks from a parquet, then submit a managed vLLM-serve + Harbor/Daytona trace run that uploads the trajectories to an HF repo. Use when asked to start a datagen / trace-generation job, generate agent traces from a task dataset, or advance / start a row in the MiniMax-M2.7 datagen tracker. For the Iris TPU path use **datagen-launch-iris** instead; per-cluster particulars (ssh, paths, conda env, which vllm-serve config matches the cluster's GPUs, JSC pre-download) live in `.agents/ops/<cluster>/`.

datagen-launch

A datagen job stands up a managed vLLM endpoint serving a teacher model, runs Harbor agent rollouts against a set of tasks in Daytona sandboxes, and uploads the resulting trajectories to an HF dataset repo. There is no model checkpoint — the artifact is the trace dataset.

This skill is cluster-AGNOSTIC — the shared flow, flags, and gotchas. Defer everything cluster-specific (ssh / login node, repo path, conda env, JSC login-node pre-download, which datagen_config (vllm-serve) YAML matches the cluster's GPUs and the model) to .agents/ops/<cluster>/. Do NOT inline cluster-specific values here.

Sibling skills: datagen-launch-iris (Iris TPU path), datagen-job-cleanup (post-run upload + disk cleanup), datagen-reduce-dataset-snapshots (shrink a task dataset's Daytona snapshot count under cap).

Required info (ask if missing)

  1. Dataset / tasks — an HF parquet repo id to extract tasks from (e.g. DCAgent/r2egym_sandboxes), or an already-extracted local tasks dir.
  2. Teacher model + operating point — determines the datagen_config (vllm-serve) YAML and the trace_harbor_config context-length YAML. Pick the cluster-matched config from .agents/ops/<cluster>/; don't change configs unless asked.
  3. Target HF repo — --trace_target_repo (default penfever/ or DCAgent2/ org per the series).

The 2-step flow

Step 1 — extract tasks from the parquet (writes one task dir per row):

bash
python -m scripts.datagen.extract_tasks_from_parquet \
  --parquet <hf-parquet-repo-or-local> \
  --output_dir <tasks dir> \
  --on_exist overwrite

Step 2 — submit the datagen job:

🚧 SUBMIT FROM THE REPO DIR WITH DCFT SET — the sbatch WORKDIR guard hard-fails otherwise. Before launching/relaunching, cd <repo> && export DCFT=$PWD (on Jupiter: /e/scratch/jureap59/feuer1/OpenThoughts-Agent). The generated universal_tracegen.sbatch / universal_taskgen.sbatch resolve WORKDIR from DCFT_PRIVATE → DCFT → $PWD; submitted from $HOME/a scratch subdir with DCFT unset, the guard detects the wrong dir (missing hpc/shell_utils/triton_cache.sh marker) and exit 1s immediately with FATAL: WORKDIR=... is not the OpenThoughts-Agent repo root. If you see that FATAL, cd to the repo, export DCFT=$PWD, resubmit.

bash
python -m hpc.launch \
  --job_type datagen \
  --datagen_config <vllm-serve cfg>.yaml \
  --trace_harbor_config hpc/harbor_yaml/datagen/<ctx>.yaml \
  --tasks_input_path <tasks dir> \
  --trace_target_repo <hf repo> \
  --daytona_api_key "$DAYTONA_DATA_API_KEY" \
  --num_nodes 1 \
  --trace-n-concurrent N

CRITICAL gotchas (get these wrong → silent total failure)

  • --daytona_api_key "$DAYTONA_DATA_API_KEY" is MANDATORY. Must be the datagen-org Daytona key, NOT the default RL-org key. The RL-org key rejects declarative sandbox builds, so every trial instant-fails (job looks "running" but produces zero real trajectories). Source the key from your secrets env (see CLAUDE.md "Datagen Daytona Key (CRITICAL)" / .agents/ops/<cluster>/). Do NOT echo the value. (Exact env-var name DAYTONA_DATA_API_KEY — verify against your local secrets env / ops doc.)
  • harbor_config needs auto_snapshot: true. Attaches the prebuilt Daytona snapshot instead of doing a slow per-trial declarative build. Use a hpc/harbor_yaml/datagen/<ctx>.yaml that sets it.
  • Do NOT export DAYTONA_TARGET. Leaving it set misroutes the run.
  • Per-job effective concurrency caps at ~100–128 (per-job ceiling, not aggregate contention). --trace-n-concurrent (and the config's seqs / max_num_seqs) above ~128 is wasted. Parallel datagen jobs are fine; over-fanning a single job is not.
  • Daytona snapshot org cap is a HARD, server-side limit (e.g. 40 or 60 per org depending on org). Never raise the cap or convert its ValueError/SnapshotCapExceeded into a warning. If a dataset overflows: clean stale/MISSING snapshots, shrink the dataset's snapshot footprint with datagen-reduce-dataset-snapshots, or reuse a dataset whose snapshots already exist (0 new). If still blocked, ask the user. Snapshots are keyed by sandbox environment, not dataset — they're shared, so do NOT reclaim them per-run. Clean stale at the cap (autonomous): python scripts/daytona/daytona_snapshot_manager.py --api-key-env DAYTONA_DATA_API_KEY --delete-stale --yes — at the stale threshold defined in .agents/projects/daytona/daytona.md § "How to clean stale snapshots" (GT — don't restate the value) (audit-only without --delete-stale; deletes only idle/unprotected harbor__* envs). Full procedure + caveats → .agents/projects/daytona/daytona.md.
  • FD-exhaustion / libuv SIGABRT at ~1h on boundary-hugging datasets: model_info.max_input_tokens does nothing when enable_summarize=false (our RL/trace default) — nothing truncates the growing multi-turn prompt → VLLMValidationError: 32769 input tokens overflow. Lowering the token budget is INERT. Real levers: (a) drop n_concurrent_trials (e.g. 900→500), then (b) disable litellm's async logging worker on the hosted_vllm path (its clear_queue exceeded max_time backlog leaks FDs ∝ overflow_rate × concurrency).
  • Reward-realness caveat: LLM-judge datasets can score all-0.0 if the judge API key is invalid/unplumbed — inspect the reward distribution at consolidation, not just avg turns.
Show full SKILL.md (507 more words)Show less

Chunking (long datasets)

For large task sets, split into chunked sub-jobs so each gets its own vLLM endpoint, walltime, and HF _chunk{N} repo (avoids one giant job timing out and stranding traces, keeps trace_jobs/ inode use bounded per job):

  • --chunk_size <S> → ~ceil(num_tasks / S) chunks, each a separate job + serve + _chunk{N} HF repo.
  • --chunk_array_max <M> → at most M chunks run concurrently (rolling afterany dependency chain).
  • Alternatively, a manual --dependency "afterany:<jobid>" chain serializes individually-launched jobs.
  • Route trace_jobs/ off inode-tight scratch via --experiments_dir <path> where required by the cluster (see .agents/ops/<cluster>/); without it datagen can write thousands of per-trial dirs per chunk onto a quota-tight filesystem.
  • Respect the cluster's QOS max walltime via --time_limit (see ops doc).
  • The snapshot org cap still applies across chunks — see the HARD-cap gotcha above.
  • Curator sharded datagen: pass --save-every 700 (5th positional arg), not 200 → ~4 checkpoints/12h-job instead of ~14, each checkpoint has a serial GPU-wasting pause.

Verify it's running

After submit, confirm the job placed and is producing real trajectories (a served /v1/models healthcheck alone does NOT prove generation works):

  • Check the job state (squeue/sacct per .agents/ops/<cluster>/).
  • Tail the run's _vllm.log for a successful serve, then confirm trial dirs under <run>/trace_jobs/<inner>/ are accumulating multi-step trajectories (avg turns > 1), not 1-turn exception stubs. The real-vs-failed check is detailed in datagen-job-cleanup step 2.

MiniMax-M2.7 tracker workflow (the "datagen #N" queue)

The MiniMax-M2.7 131k series is driven by a canonical tracker that is the source of truth — follow its Launch Command and Process Notes EXACTLY, not the ad-hoc command grab-bag. (Tracker path lives in the reference-minimax-datagen-tracker memory note; verify the current path there.) Key conventions:

  • One dataset in flight at a time (datasets strictly sequential).
  • Per-dataset autonomous N→N+1 loop: extract → launch chunks → wait for ALL chunks to complete → consolidate the _chunk{N} repos into the final <slug>-…-traces repo (scripts/datagen/join_hf_repos.py) → verify (row count == sum of chunks, non-empty, realness: avg turns > 1, sane exception rate) → DELETE the _chunk{N} repos (only after the consolidated repo is verified) → clean local exp/task dirs (detached rm) → launch dataset N+1. Advance WITHOUT blocking (on chunk-completion / on the cron).
  • Oversized pre-check: before extracting a row, query the HF dataset-viewer /size API (https://datasets-server.huggingface.co/size?dataset=<repo>); skip rows >~10k rows (each oversized extraction burns ~90–100k GPFS inodes).

On completion

  • Upload + verify traces and free disk with datagen-job-cleanup (handles the TIMEOUT-stranded-traces case, the one-level trace_jobs/ nesting, the real-vs-failed sanity check, and safe disk cleanup).
  • If a dataset's snapshot footprint blocks future launches, shrink it with datagen-reduce-dataset-snapshots.
  • Traces → tool-calling SFT: to turn the generated traces into SFT-ready rows (role: tool + structured tool_calls, not the lossy default conversations shape), use harbor traces export --sft-format → .agents/projects/harbor/ops.md § "SFT-ready traces with tool calling — harbor traces export --sft-format". For byte-exact-from-served-tokens SFT instead, the literal path is § "Literal-token trace datasets" in the same doc.

Guardrails

  • NEVER launch with the wrong (RL-org) Daytona key — it silently zeroes the run.
  • NEVER raise a Daytona snapshot org cap or downgrade its error to a warning.
  • NEVER change experimental configs / hparams mid-series; flag and propose a separate run instead.
  • Keep cluster-specific values (paths, env, configs, ssh) in .agents/ops/<cluster>/, not inlined here.

© 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/datagen-launch of open-thoughts/OpenThoughts-Agent.

Open the folder on GitHubat commit 3bd1917

Compare with similar skills

Datagen Launch 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.

Datagen Launch compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Datagen Launch this skillopen-thoughts/OpenThoughts-Agent301—~2.5kAutomated safety check: PassApache-2.0
Vllm Daily PR Issue Trackerascend-ai-coding/awesome-ascend-skills174—~731Automated safety check: PassNone
SageMaker Serving Image Selectionhuggingface/skills11k1 repos~4.6kAutomated safety check: PassApache-2.0
Aider DelegateamElnagdy/delegate-skills2.3k2 repos~3kAutomated safety check: PassMIT
Hugging Face Local Model Evalshuggingface/skills11k2 repos~1.6kAutomated safety check: PassApache-2.0
Ascend Release Manager for vLLMvllm-project/vllm-ascend2.9k—~7.2kAutomated safety check: PassApache-2.0

Similar skills

  • Vllm Daily PR Issue Tracker

    ascend-ai-coding/awesome-ascend-skills

    Track daily PRs and Issues from vllm-project/vllm and vllm-project/vllm-ascend, filter by model (DeepSeek/Qwen/GLM/MiniMax/Kimi) and tech topics (PD disaggregation, MTP, quantization, graph mode…

    174 GitHub stars~731 tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Official

    Chooses the right serving container and current image URI for deploying a Hugging Face model to a SageMaker endpoint, preferring Hugging Face images over generic ones.

    11k GitHub starsUsed in 1 repo~4.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Aider Delegate

    amElnagdy/delegate-skills

    Delegate a coding task to Aider (aider) as a background implementer, then review its diff and land it yourself.

    2.3k GitHub starsUsed in 2 repos~3k tokens
    AI & LLM EngineeringAuto-check passed
  • Official

    Runs evaluations of Hugging Face Hub models on local hardware with inspect-ai or lighteval, and helps choose between vLLM, Transformers and accelerate backends.

    11k GitHub starsUsed in 2 repos~1.6k tokens
    AI & LLM EngineeringAuto-check passed
  • Ascend Release Manager for vLLM

    vllm-project/vllm-ascend

    Runs the end-to-end vLLM Ascend release process: opens the release checklist and feedback issues, scans for release-blocking bugs and test coverage gaps, and generates release notes and announcements.

    2.9k GitHub stars~7.2k tokensUpdated today
    AI & LLM EngineeringAuto-check passed
  • Dstack Prototyping

    dstackai/dstack

    Use with the dstack skill for model-serving work when the image, serving command, resources, backend/fleet choice, or service behavior is not proven.

    2.3k GitHub stars~1.6k tokensUpdated today
    AI & LLM EngineeringAuto-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 9 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 9 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 9 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 9 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 9 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 9 days ago
    Auto-check passed

Works with

Questions about Datagen Launch

What does Datagen Launch do?

Launch a datagen (trace-generation) job on an HPC cluster (Jupiter/Leonardo/Perlmutter) via the OpenThoughts-Agent hpc.launch --jobtype datagen entrypoint — the cluster-AGNOSTIC general flow…. Datagen Launch is an agent skill from open-thoughts/OpenThoughts-Agent.launch --jobtype datagen entrypoint — the cluster-AGNOSTIC general flow: extract tasks from a parquet, then submit a managed vLLM-serve + Harbor/Daytona trace run that uploads the trajectories to an HF repo.

When should I use Datagen Launch?

Datagen Launch fits situations like: asked to start a datagen / trace-generation job; generate agent traces from a task dataset; advance / start a row in the MiniMax-M2.7 datagen tracker.

How do I install Datagen Launch in Claude Code?

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

How do I install Datagen Launch in Codex?

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

Can I use Datagen Launch 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 datagen-launch -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/datagen-launch, .gemini/skills/datagen-launch, .github/skills/datagen-launch and .opencode/skills/datagen-launch in your project.

What does Datagen Launch need to run?

Going by SKILL.md and its folder, Datagen Launch needs the command-line tools its instructions call (python) and credentials named DAYTONA_DATA_API_KEY. Our summary lists: Python 3; A credential in DAYTONA_DATA_API_KEY.

Does Datagen Launch access the network?

SKILL.md names 1 domain. In commands or code: datasets-server.huggingface.co; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Datagen Launch 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 Datagen Launch use?

Datagen Launch 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 Datagen Launch use?

About 2.5k tokens (SKILL.md is roughly 10k 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 Datagen Launch?

Skills that share tags, products or a category with Datagen Launch: Vllm Daily PR Issue Tracker (ascend-ai-coding/awesome-ascend-skills, 174 stars), SageMaker Serving Image Selection (huggingface/skills, 11k stars), Aider Delegate (amElnagdy/delegate-skills, 2.3k stars) and Hugging Face Local Model Evals (huggingface/skills, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Datagen Launch?

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.