The problem
Both apps use the same idea, a folder with a SKILL.md, but they look for it in different places: Claude Code in ~/.claude/skills and a repo's .claude/skills, Codex in ~/.agents/skills and a repo's .agents/skills. A review method you taught Claude doesn't exist as far as Codex is concerned.
- Copying the folder works once, then the two copies drift apart as you edit one of them.
- A symlink keeps one copy, but a skill that uses
$ARGUMENTSor${CLAUDE_SKILL_DIR}shows Codex syntax it can't use. - Nothing tells you which of your skills only one app can see.
How Pairbar solves it
- See which app has whichOpen the Skills tab. Each row has two small app marks: full when Claude or Codex can use the skill, faint when it can't. Hover the faint one: "In Claude only · Make available in Codex". Filter → Claude lists the skills Claude can use.
- Click the faint mark, or Make available in CodexA click on the faint Codex mark does it, and so does Make available in Codex in the row's details (click the row). It works the other way round too: Make available in Claude. The notice that says it's done has Undo.
- Or keep them all the sameTurn on Keep skills the same in Claude and Codex (the switch at the top of the tab) and Pairbar does this for every personal skill, in the background, and keeps the copies in step as you edit them. It never writes over a change you made in both apps: that skill gets one line, 1 skill changed in both apps · Review, where View version lets you read each SKILL.md before keeping the version you want. For an edited translated copy, choose Update from original (your edit is backed up) or Keep my edit; the original stays unchanged.
- Or look over one plan first⋯ → Sync all skills… shows every file operation in plain words ("Link ~/.agents/skills/review-method → ~/.claude/skills/review-method") before anything happens. Approve (⌘↩) makes the changes; Decline changes nothing.
- Undo if you change your mindUndo removes the links and copies Pairbar made, unless you've edited them since.
Link or generated copy
| The skill uses | Pairbar makes | Why |
|---|---|---|
| only what both apps understand | a link from the other app's folder | one copy on disk, so an edit reaches both apps |
Claude-only syntax ($ARGUMENTS, ${CLAUDE_SKILL_DIR}) | a generated copy with the variables filled in | a link would show Codex syntax it can't use |
A skill's page tags it Works in both apps, Needs small changes for Codex or Claude only, so you know which you'll get before you click. A folder both apps already load (for example ~/.agents/skills/deploy linking to ~/.claude/skills/deploy) counts as one skill with two copies in the same place: nothing to fix.
Where the link or copy goes
- A personal skill: in
~/.agents/skills(for Codex) or~/.claude/skills(for Claude). - A project's skill: in that repo's
.agents/skillsor.claude/skills, as a relative link you can commit. - What Pairbar made is recorded in
~/.pairbar/skills-manifest.json(readable only by you), so Undo removes only that.
If copies have already drifted apart, Keep skills the same brings them to the version that changed (or the clearly newest), backing up the others, and asks when it can't tell. See manage skills across projects.
Without Pairbar
Without Pairbar, you can share skills by hand:
- Symlink the folder:
ln -s ~/.claude/skills/review-method ~/.agents/skills/review-method. One copy, but Claude-only variables stay in it. - Keep skills in one git repo and link each skill into both apps' folders, per machine.
- Copy and edit: duplicate the folder and replace
$ARGUMENTSand similar by hand for Codex, then keep the two in step yourself. - Put project skills in both folders of the repo (
.claude/skillsand.agents/skills) and commit both.
Frequently asked questions
- Where do Claude Code and Codex look for skills?
- Claude Code:
~/.claude/skills, a repo's.claude/skills, plugins and skills synced from your claude.ai account. Codex:~/.agents/skills(and the older~/.codex/skills), a repo's.agents/skills, plugins, and built-in and admin folders. - Why does Pairbar sometimes make a copy instead of a link?
- When the skill uses Claude-only syntax such as
$ARGUMENTSor${CLAUDE_SKILL_DIR}. Codex can't use those, so Pairbar writes a copy with the variables filled in. Skills that use only what both apps understand get a link, so one edit reaches both. - Does it change my Claude or Codex settings?
- No. Making a skill available only adds a link or a copy in a skills folder. It doesn't touch either app's settings files, and Undo removes what it made.
- How do I call the skill in each app?
- Claude uses
/name, Codex uses$name. A skill's page shows how to call it in each app.
Related
- DocsSkillsEvery Claude and Codex skill in one library: which app sees which, duplicates and drifted copies, making a skill available to the other app, using skills in workflows and chats
- Use caseSee and manage every Claude Code and Codex skill across all your projectsThe Skills tab lists every skill both apps load, from your folders, repos and plugins, with who can see each one, where it's installed and what to fix.
- GuideFix skill drift between Claude Code and CodexUse Pairbar's Skills tab to find drifted, missing and duplicate skills, approve a plan that fixes them, and undo it if needed.
- GlossarySkill driftWhen copies of the same agent skill in different folders stop matching, so Claude Code, Codex or different projects follow different versions.
- Use caseHand off a coding task from Claude Code to Codex (and back)Hand a chat to the other app with its whole conversation and repo state, in a private handoff file the new chat reads first.
Try Pairbar free for 7 days
One sidebar for the Claude and Codex desktop apps. Everything on for 7 days, no card needed; then $49/year ($39 first year with LAUNCH), $9/month or $129 lifetime (first 200 buyers). macOS 26 or later, Apple silicon.