CLI-Anything for Codex
HKUDS/CLI-Anything
Lets Codex build, refine, test, validate and list CLI-Anything harnesses for GUI applications or source repositories, following the project's full methodology.
Scaffolds new agent skills for the dotnet/skills repository.
$ npx skills add dotnet/skills --skill create-skill -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnet/skills create-skill --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/dotnet/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/create-skill .claude/skills/create-skill && 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 "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .claude/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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/dotnet/skills/tree/main/.agents/skills/create-skillType 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 dotnet/skills --skill create-skill -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnet/skills create-skill --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/create-skill .agents/skills/create-skill && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .agents/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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 dotnet/skills --skill create-skill -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnet/skills create-skill --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/create-skill .cursor/skills/create-skill && 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 "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .cursor/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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/dotnet/skills.git --path .agents/skills/create-skill--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 dotnet/skills --skill create-skill -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnet/skills create-skill --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/create-skill .gemini/skills/create-skill && 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 "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .gemini/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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 dotnet/skills create-skillInstalls 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 dotnet/skills --skill create-skill -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnet/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/create-skill .github/skills/create-skill && 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 "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .github/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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 dotnet/skills --skill create-skill -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnet/skills create-skill --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnet/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/create-skill .opencode/skills/create-skill && 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 "create-skill" agent skill from https://github.com/dotnet/skills/tree/main/.agents/skills/create-skill into .opencode/skills/create-skill/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-skill", 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.
create-skillScaffolds new agent skills for the dotnet/skills repository.
Create Skill is an agent skill from dotnet/skills, published by the product's own GitHub organization. Scaffolds new agent skills for the dotnet/skills repository. Use when creating a new skill, generating SKILL.md files, writing a skill description that the runtime will actually route to, or setting up skill directory structures. Handles frontmatter generation, section templates, and validation guidance. Do not use for fixing a skill that already fails its evaluation (use improve-skill-quality) or for writing eval.yaml (use create-skill-test).
Its SKILL.md is about 2.7k 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 Development, covering Skill authoring and Project scaffolding. It works with .NET. The repository describes itself as: Repository for skills to assist AI coding agents with .NET and C. The licence is MIT.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8d670fa. 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:
dotnetFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
agentskills.ioFrom 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.
Create Skill loads about 2.7k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,215 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 dotnet/skills at commit 8d670fa, republished under its MIT licence (© dotnet). 1,215 words, ~2,733 tokens.
.claude/skills/create-skill/SKILL.md (or your agent's skills folder).This skill helps you scaffold new agent skills that conform to the Agent Skills specification and the dotnet/skills repository conventions.
improve-skill-quality)eval.yaml (use create-skill-test)| Input | Required | Description |
|---|---|---|
| Skill name | Yes | Lowercase, alphanumeric, hyphens only (e.g., code-review, ci-triage) |
| Description | Yes | What the skill does and when agents should use it (1-1024 chars) |
| Purpose | Yes | One paragraph describing the outcome |
| Workflow steps | Recommended | Numbered steps the agent should follow |
Ensure the name:
The description is the only text the runtime sees when deciding whether to load the skill.
A perfect body behind a weak description never runs.
---
name: <skill-name>
description: <what it does>. USE FOR: <symptoms, error codes, artifact names, quoted user requests>. DO NOT USE FOR: <nearby-but-wrong intents, with the skill that owns them>.
---CS1501,
MSTEST0014), artifact names (.testsettings, binlog), and requests phrased as a developer
would type them.DO NOT USE FOR clause against the scenarios the skill exists to serve — an
exclusion like "already on v3" can lock out the post-upgrade fixes that are the skill's purpose.disable-model-invocation: true to free menu space while staying invocable by name.Vector<T> or <Import>. Spell it out in words ("generic Vector type",
"Import element"); skill-validator check fails on it.Every skill is scored head-to-head against the same model with no skill loaded. Content the model already produces unaided is worth zero; content that makes it slower or more hedged is worth less than zero. See improve-skill-quality/references/writing-for-baseline-delta.md for the full evidence.
| Do | Instead of |
|---|---|
| Encode the decision the model would otherwise get wrong | Restating API signatures it already reproduces |
| "When A, do B, never C, verify D" tables | Lists of plausible alternatives |
| A concrete output contract (exact command, verdict line, findings table) | "Consider…", "you may want to…" |
| Scale output structure to input size | A 12-section dashboard for an 8-test suite |
| Stop-conditions that prevent over-applying | Acting before measuring, rewriting working code |
| Instructing the agent to discover repo paths | Marking discoverable paths as required inputs |
| Reporting restore/build/test failures truthfully | Claiming success after a failed command |
| Verifying load-bearing API claims by compiling or probing | Trusting a source read |
Gating rare or expensive paths behind references/ | One large SKILL.md carrying every path |
Do not over-correct: a skilled answer shorter and less actionable than the baseline's still loses.
plugins/<plugin>/skills/<skill-name>/
└── SKILL.mdCreate the file with the frontmatter drafted in Step 2.
Include these recommended sections:
plugins/<plugin>/skills/<skill-name>/
├── SKILL.md
├── scripts/ # Executable code agents can run
├── references/ # Additional documentation loaded on demand
└── assets/ # Templates, images, data filesReference bundled files with paths relative to the directory that contains SKILL.md, such as
references/details.md or scripts/validate.ps1. Do not tell the agent to search for the skill's
installation directory. If a missing bundled file reduces the result quality, allow one listing of
the known bundled-file directory and require the agent to report the reduced coverage.
Add entries in .github/CODEOWNERS for the new skill and its test directory:
/plugins/<plugin>/skills/<skill-name>/ @owner-team
/tests/<plugin>/<skill-name>/ @owner-teamMatch the owner pattern used by sibling skills in the same plugin.
dotnet run --project eng/skill-validator/src/SkillValidator.csproj -- check --plugin ./plugins/<plugin>A skill without an eval.yaml has no evidence that it improves on the baseline. Use
create-skill-test to add one in the same pull request, and size it for statistical power — an eval
below five distinct stimuli can never return a passing verdict.
The exception is a helper skill with disable-model-invocation: true: the model cannot
self-activate it, so an activation-graded eval compares two identical arms. Cover it through the
evals of the skills that load it instead.
Use this template when creating a new skill:
---
name: <skill-name>
description: <1-1024 char description of what the skill does and when to use it>
---
# <Skill Title>
<One paragraph describing the skill's purpose and outcome.>
## When to Use
- <Scenario 1>
- <Scenario 2>
## When Not to Use
- <Exclusion 1>
- <Exclusion 2>
## Inputs
| Input | Required | Description |
|-------|----------|-------------|
| <input-name> | Yes/No | <description> |
## Workflow
### Step 1: <Action>
<Instructions for this step>
### Step 2: <Action>
<Instructions for this step>
## Validation
- [ ] <Verification step 1>
- [ ] <Verification step 2>
## Common Pitfalls
| Pitfall | Solution |
|---------|----------|
| <Problem> | <How to avoid or fix> |After creating a skill, verify:
Vector<T>)SKILL.md.github/CODEOWNERS has entries for the new skill and its test directoryeval.yaml exists and clears the distinct-stimulus floor (or the skill is disable-model-invocation: true and covered through its consumers)| Pitfall | Solution |
|---|---|
| Name contains uppercase letters | Use only lowercase: code-review not Code-Review |
| Description is vague | Include what it does AND when to use it |
| Instructions are ambiguous | Use numbered steps with concrete actions |
| Missing validation steps | Add checkpoints that verify success |
| SKILL.md too long | Move detailed content to references/ files |
| Hardcoded environment assumptions | Document requirements in compatibility field |
| Missing CODEOWNERS entry | Add entries for both /plugins/<plugin>/skills/<skill-name>/ and /tests/<plugin>/<skill-name>/ matching sibling skills' owner pattern |
| Skill restates what the model already knows | Cut it; a skill is scored as a delta over the unskilled model |
| Discoverable paths listed as required inputs | Tell the agent to discover them, or it will stop and ask the user |
| Description partitioned by topic against a sibling | Partition on the real discriminator and exclude on both sides |
| Exclusion clause blocks the skill's own use cases | Re-read every "do not use for" clause against real workflow phases |
| Skill added without an eval | Add eval.yaml in the same PR; unevaluated skills carry no evidence |
eval.yaml© dotnet, 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 .agents/skills/create-skill of dotnet/skills.
Open the folder on GitHubat commit 8d670fa
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in dotnet/skills, which our catalogue first saw on October 7, 2026.
Create Skill 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 |
|---|---|---|---|---|---|---|
| Create Skill this skilldotnet/skills | 5.6k | 1 repos | ~2.7k | Automated safety check: Pass | MIT | |
| CLI-Anything for CodexHKUDS/CLI-Anything | 52k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Bmad Builderaj-geddes/claude-code-bmad-skills | 487 | — | ~1.9k | Automated safety check: Notes | Custom licence | |
| Claude Code Plugin Structureanthropics/claude-plugins-official | 37k | 10 repos | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Scaffoldcodewithmukesh/dotnet-claude-kit | 751 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Revit Toolkit AnalyzersNice3point/RevitToolkit | 176 | — | ~3.8k | Automated safety check: Pass | MIT |
HKUDS/CLI-Anything
Lets Codex build, refine, test, validate and list CLI-Anything harnesses for GUI applications or source repositories, following the project's full methodology.
aj-geddes/claude-code-bmad-skills
Meta-skill for scaffolding and validating custom PLANNING/ORCHESTRATION skills within the BMAD Planning & Orchestrator plugin.
anthropics/claude-plugins-official
Explains the directory layout, plugin.json manifest and component organization of a Claude Code plugin, including auto-discovery and portable paths.
codewithmukesh/dotnet-claude-kit
Architecture-aware feature scaffolding for .NET 10 projects.
Nice3point/RevitToolkit
Author and extend the Roslyn tooling bundled in the Nice3point.Revit.Toolkit package: the incremental source generator that emits external-event boilerplate, the analyzers and code fixers that…
Nice3point/RevitToolkit
Uphold the design contract of the Nice3point.Revit.Toolkit runtime library, that wraps the raw Revit add-in API.
dotnet/skills
Resolves .NET runtime frames in Apple .ips crash logs to function names, source files and line numbers using dSYM symbols, atos and the Microsoft symbol server.
dotnet/skills
Resolves native crash frames from .NET Android tombstones to function names, source files and line numbers using BuildIds, Microsoft's symbol server and llvm-symbolizer.
dotnet/skills
Scans C# and .NET code for about 50 performance anti-patterns and reports prioritized findings with concrete fixes, at a scan depth you choose.
dotnet/skills
Statically pairs source files with test files to list code that no test references, using Roslyn for C# or tree-sitter for many languages, with no build.
dotnet/skills
Activate this skill when BenchmarkDotNet (BDN) is involved in the task — creating, running, configuring, or reviewing BDN benchmarks.
dotnet/skills
Makes .NET projects compatible with Native AOT and trimming by resolving IL trim and AOT analyzer warnings through annotations rather than suppressions.
Works with
Categories
Scaffolds new agent skills for the dotnet/skills repository. Create Skill is an agent skill from dotnet/skills, published by the product's own GitHub organization. Scaffolds new agent skills for the dotnet/skills repository.
Create Skill fits situations like: creating a new skill; generating SKILL.md files; writing a skill description that the runtime will actually route to; setting up skill directory structures.
Run `npx skills add dotnet/skills --skill create-skill -a claude-code`. Or copy the skill folder (.agents/skills/create-skill in dotnet/skills) into .claude/skills/create-skill in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnet/skills --skill create-skill -a codex`. Or copy the skill folder (.agents/skills/create-skill in dotnet/skills) into .agents/skills/create-skill 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 dotnet/skills --skill create-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-skill, .gemini/skills/create-skill, .github/skills/create-skill and .opencode/skills/create-skill in your project.
Going by SKILL.md and its folder, Create Skill needs the command-line tools its instructions call (dotnet).
SKILL.md names 1 domain. As links in the text: agentskills.io. 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.
Create Skill 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.7k tokens (SKILL.md is roughly 11k 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 Create Skill: CLI-Anything for Codex (HKUDS/CLI-Anything, 52k stars), Bmad Builder (aj-geddes/claude-code-bmad-skills, 487 stars), Claude Code Plugin Structure (anthropics/claude-plugins-official, 37k stars) and Scaffold (codewithmukesh/dotnet-claude-kit, 751 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnet (a GitHub organization, an official publisher) maintains it in dotnet/skills, which has 5,568 GitHub stars. The repository holds 91 skills in this directory. The repository was last updated on October 7, 2026.
Source: dotnet/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.