Agent skills

Open in Claude.md

Install and update

Where the rd-* skills go for Claude Code and Codex, global versus per-repo, and what to do when one does not show up.

Both clients load skills from a directory. Installing is copying files into it. The CLI does that, verifies each file against a published hash, and records what it wrote so it can update or remove exactly those files later.

Claude Code

  1. Step 1.

    Install the CLI, if you have not

    bash
    npm install -g radial.build

    Homebrew works too: brew install BrainGridAI/radial/radial.

  2. Step 2.

    Install the pack

    bash
    radial skills install --agent claude

    Files land in ~/.claude/skills/rd-*. Leave off --agent to install for every client the CLI can see on this machine.

  3. Step 3.

    Restart Claude Code

    Both clients read the skills directory at startup, so a running session will not see a skill that appeared underneath it.

  4. Step 4.

    Check

    Type /rd- and the eleven names should complete. radial skills list shows the same thing from the terminal, with an arrow beside anything out of date.

Codex

  1. Step 1.

    Install the pack

    bash
    radial skills install --agent codex

    Files land in ~/.agents/skills/rd-*. If this machine's Codex reads $CODEX_HOME/skills instead (older builds default that to ~/.codex/skills), the installer detects it and writes there, recording the directory it chose in the lock so update and remove go to the same place.

  2. Step 2.

    Restart Codex, then invoke a skill

    Type $rd-setup. radial skills list shows the same set from the terminal.

Global or per-repo

Global is the default and is usually right: the skills are generic, and you want them wherever you work.

--project writes into .claude/skills and .agents/skills under the current directory instead, and locks to .radial/skills.json beside them. Use it when you want the pack committed with the repo so a teammate gets it by cloning, and when the repo has wrappers: --project copies those alongside, so /team-build is invocable directly.

bash
radial skills install --project

The team key

Every skill needs to know which Radial team to file into. It resolves in this order, and stops at the first answer:

  1. .radial/config.json{ "team": "RAD" }
  2. A radial team line in CLAUDE.md or AGENTS.md
  3. radial team list, and exactly one team means use it, and write it down
  4. Ask you once, then write it down

/rd-setup does all of this, including creating the team if you do not have one.

Updating and removing

bash
radial skills update              # only what changed is rewritten
radial skills list                # installed vs published
radial skills remove rd-retro     # only the files the lock recorded

update reports one line per skill: installed, updated or current. It deletes files a new version dropped, so a renamed reference file cannot linger and get read as current. remove deletes only paths the lock recorded and tells you about anything else it found in the folder rather than taking it with it.

Other installers

The pack is a public repo with a plain skills/ directory, so the generic installers work with no extra hosting:

bash
npx skills add BrainGridAI/radial
codex -- '$skill-installer --repo BrainGridAI/radial --path skills/rd-plan'

Both copy the same files. The CLI is the recommended door only because it ships as a binary, verifies hashes, keeps a lock and can update and remove.

When it does not work

What you seeWhy
The skill is not in the pickerThe client was already running. Restart it.
radial: command not foundThe CLI is not on PATH. npm install -g radial.build, or use the Homebrew formula.
Codex does not see skills that Claude Code doesYour Codex reads a different directory. radial skills list --json shows the directory the installer chose; compare it against $CODEX_HOME.
One skill says failed and the rest installIts bytes did not match the published hash. That is the guard working: re-run, and if it persists, open an issue rather than forcing it.
Refusing to fetch over plain httpRADIAL_SKILLS_URL points at an http:// origin. Use https://, or pass --insecure if it is your own mirror on a trusted network.
A directory is "skipped, symlink"Your skills directory is a symlink. The installer will not write through one; point --agent elsewhere or replace the link.
Two machines disagree about what is installedThe lock is per home directory (or per repo with --project). Run radial skills update on the other one.
A wrapper is refused as "reserved"rd-* names belong to the pack, so an update never fights your wrapper for a name. Rename it.

Tip

radial skills install --dry-run prints exactly what it would write and touches nothing. Useful the first time, and in a script.