Agent skills
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
- Step 1.
Install the CLI, if you have not
bashnpm install -g radial.buildHomebrew works too:
brew install BrainGridAI/radial/radial. - Step 2.
Install the pack
bashradial skills install --agent claudeFiles land in
~/.claude/skills/rd-*. Leave off--agentto install for every client the CLI can see on this machine. - 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.
- Step 4.
Check
Type
/rd-and the eleven names should complete.radial skills listshows the same thing from the terminal, with an arrow beside anything out of date.
Codex
- Step 1.
Install the pack
bashradial skills install --agent codexFiles land in
~/.agents/skills/rd-*. If this machine's Codex reads$CODEX_HOME/skillsinstead (older builds default that to~/.codex/skills), the installer detects it and writes there, recording the directory it chose in the lock soupdateandremovego to the same place. - Step 2.
Restart Codex, then invoke a skill
Type
$rd-setup.radial skills listshows 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.
radial skills install --projectThe team key
Every skill needs to know which Radial team to file into. It resolves in this order, and stops at the first answer:
.radial/config.json→{ "team": "RAD" }- A
radial teamline inCLAUDE.mdorAGENTS.md radial team list, and exactly one team means use it, and write it down- 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
radial skills update # only what changed is rewritten
radial skills list # installed vs published
radial skills remove rd-retro # only the files the lock recordedupdate 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:
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 see | Why |
|---|---|
| The skill is not in the picker | The client was already running. Restart it. |
radial: command not found | The CLI is not on PATH. npm install -g radial.build, or use the Homebrew formula. |
| Codex does not see skills that Claude Code does | Your 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 install | Its 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 http | RADIAL_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 installed | The 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.