Docs
Skills
Write a procedure once; both agents can use it.
A skill is one markdown file in .agents/skills/ with YAML frontmatter:
---
name: deploy-runbook
description: Use when the user mentions deploying, releasing, or shipping.
---
# Deploy runbook
...
The description must say when to use it — that’s what makes it trigger.
One source, two adapters
Codex has no Skills concept, so uac bridges the gap:
- Claude Code gets a native mirror at
.claude/skills/<name>/SKILL.md, so the skill shows up as a real slash command. - Codex gets the same content over MCP via the
skill_loadtool.
You write the file once. uac sync keeps both adapters current:
uac sync # regenerate CLAUDE.md + .claude/skills/
uac sync --check # exit non-zero if generated files are stale (good pre-commit)
Skill bodies load on demand — the always-in-context index is names and descriptions only, so a growing library never bloats every session.
Bring your existing Claude skills
If you already have user skills in ~/.claude/skills/, share them with Codex:
uac skills import
This copies them into .agents/skills/. Claude keeps using them natively; Codex
can now load them too. (Only Claude’s user skills exist on disk — the ones
compiled into the claude binary can’t be copied.)
Inspect
uac skills list
uac skills show deploy-runbook