$npx -y skills add openai/codex --skill skill-installerInstall Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
| 1 | # Skill Installer |
| 2 | |
| 3 | Helps install skills. By default these are from https://github.com/openai/skills/tree/main/skills/.curated, but users can also provide other locations. Experimental skills live in https://github.com/openai/skills/tree/main/skills/.experimental and can be installed the same way. |
| 4 | |
| 5 | Use the helper scripts based on the task: |
| 6 | - List skills when the user asks what is available, or if the user uses this skill without specifying what to do. Default listing is `.curated`, but you can pass `--path skills/.experimental` when they ask about experimental skills. |
| 7 | - Install from the curated list when the user provides a skill name. |
| 8 | - Install from another repo when the user provides a GitHub repo/path (including private repos). |
| 9 | |
| 10 | Install skills with the helper scripts. |
| 11 | |
| 12 | ## Communication |
| 13 | |
| 14 | When listing skills, output approximately as follows, depending on the context of the user's request. If they ask about experimental skills, list from `.experimental` instead of `.curated` and label the source accordingly: |
| 15 | """ |
| 16 | Skills from {repo}: |
| 17 | 1. skill-1 |
| 18 | 2. skill-2 (already installed) |
| 19 | 3. ... |
| 20 | Which ones would you like installed? |
| 21 | """ |
| 22 | |
| 23 | After installing a skill, tell the user it will be available on their next turn. |
| 24 | |
| 25 | ## Scripts |
| 26 | |
| 27 | All of these scripts use network, so when running in the sandbox, request escalation when running them. |
| 28 | |
| 29 | - `scripts/list-skills.py` (prints skills list with installed annotations) |
| 30 | - `scripts/list-skills.py --format json` |
| 31 | - Example (experimental list): `scripts/list-skills.py --path skills/.experimental` |
| 32 | - `scripts/install-skill-from-github.py --repo <owner>/<repo> --path <path/to/skill> [<path/to/skill> ...]` |
| 33 | - `scripts/install-skill-from-github.py --url https://github.com/<owner>/<repo>/tree/<ref>/<path>` |
| 34 | - Example (experimental skill): `scripts/install-skill-from-github.py --repo openai/skills --path skills/.experimental/<skill-name>` |
| 35 | |
| 36 | ## Behavior and Options |
| 37 | |
| 38 | - Defaults to direct download for public GitHub repos. |
| 39 | - If download fails with auth/permission errors, falls back to git sparse checkout. |
| 40 | - Aborts if the destination skill directory already exists. |
| 41 | - Installs into `$CODEX_HOME/skills/<skill-name>` (defaults to `~/.codex/skills`). |
| 42 | - Multiple `--path` values install multiple skills in one run, each named from the path basename unless `--name` is supplied. |
| 43 | - Options: `--ref <ref>` (default `main`), `--dest <path>`, `--method auto|download|git`. |
| 44 | |
| 45 | ## Notes |
| 46 | |
| 47 | - Curated listing is fetched from `https://github.com/openai/skills/tree/main/skills/.curated` via the GitHub API. If it is unavailable, explain the error and exit. |
| 48 | - Private GitHub repos can be accessed via existing git credentials or optional `GITHUB_TOKEN`/`GH_TOKEN` for download. |
| 49 | - Git fallback tries HTTPS first, then SSH. |
| 50 | - The skills at https://github.com/openai/skills/tree/main/skills/.system are preinstalled, so no need to help users install those. If they ask, just explain this. If they insist, you can download and overwrite. |
| 51 | - Installed annotations come from `$CODEX_HOME/skills`. |