skill-bridge
v0.1.1
Published
CLI for migrating local skills between Claude Code, Codex, and Antigravity.
Maintainers
Readme
Skill Bridge
I use multiple agent tools side by side, and each one has its own skill system. Over time that meant I was constantly working with different skill sets, different instructions, and slightly different outputs depending on where I was running the task. Skill Bridge started as a small tool to solve that problem for myself: move skills between Claude Code, Codex, and Antigravity without manually copying folders, rewriting frontmatter, or losing scripts and references.
Skill Bridge is a CLI for migrating local skill folders between Claude Code, Codex, and Antigravity. It discovers skill folders, lets you choose source and target platforms, supports large skill libraries with inline search, checks destination conflicts with SHA-256 checksums, and copies complete skill directories safely.
What It Does
- Migrates Claude Code skills to Codex.
- Migrates Codex skills to Claude Code.
- Migrates Antigravity global skills to and from Claude Code or Codex.
- Preserves full skill folders, including
scripts/,references/,assets/, examples, and supporting files. - Reads personal skill folders from
~/.claude/skills,~/.codex/skills, and~/.gemini/antigravity/skills. - Reads project skill folders from
.claude/skillsand.codex/skills. - Follows symlinked skill directories.
- Supports custom source and target folders.
- Provides an interactive terminal UI for browsing, searching, and selecting skills.
- Supports non-interactive scripted migrations with flags.
- Detects destination conflicts with SHA-256 checksums.
- Automatically skips identical destination skills.
- Asks whether to overwrite or skip differing destination skills.
- Supports overwrite all / skip all conflict decisions.
- Creates optional
agents/openai.yamlmetadata when migrating to Codex. - Omits Codex-only
agents/openai.yamlmetadata when migrating to Claude Code or Antigravity. - Supports dry runs before writing anything.
Installation
Run once without installing:
npx skill-bridgeInstall globally to use skill-bridge from any directory:
npm install -g skill-bridgeThen run:
skill-bridgeUpdate later:
npm update -g skill-bridgeRemove:
npm uninstall -g skill-bridgeQuick Start
Start the interactive migration flow:
skill-bridgePreview a Claude Code to Codex migration:
skill-bridge --from claude --to codex --all --dry-runPreview only matching skills:
skill-bridge --from claude --to codex --filter estifie --all --dry-runMigrate Codex skills to Claude Code:
skill-bridge --from codex --to claudePreview Antigravity global skills moving into Codex:
skill-bridge --from antigravity --to codex --all --dry-runRun a non-interactive migration and skip destination conflicts:
skill-bridge --from claude --to codex --all --yes --on-conflict skipRun a non-interactive migration and overwrite differing destination skills:
skill-bridge --from codex --to claude --all --yes --on-conflict overwriteInteractive Flow
Skill Bridge asks where the migration should start:
Which platform do you want to migrate from?
Claude Code
Codex
Antigravity
CancelThen it asks where the migrated skills should go:
Which platform do you want to migrate to?
Codex
Antigravity
CancelSkill Bridge uses the default skill folders unless you pass --source or --target. After discovery, the skill picker opens:
How do you want to choose skills?
Browse skills
Select all <count> skills
CancelSkill Selection
Browse Skills
Opens the main multi-select list with an inline search field. Type directly in the picker to filter the visible skills:
Search: auth
[ ] auth-hardening [personal]
[x] oauth-review [project]
Back- arrow keys move the active row.
- typing filters the list immediately.
spaceselects or unselects the active skill.enterconfirms the current selection.ctrl+uclears the search.Backreturns to the previous picker menu.
Search / Filter
Searches across:
- skill name
- description
- scope
- relative source path
Search lives inside Browse and updates the visible skills as you type:
[ ] auth-hardening [personal]
[ ] auth-session-review [project]Custom Folders
Default skill folders are resolved from the current user's home directory, so the same defaults work on macOS, Linux, and Windows:
- Claude Code:
~/.claude/skills - Codex:
~/.codex/skills - Antigravity:
~/.gemini/antigravity/skills
Use --source to read skills from a custom folder instead of the default personal and project locations:
skill-bridge --from claude --to codex --source ./claude-skillsUse --target to write skills into a custom folder:
skill-bridge --from claude --to codex --target ./codex-skillsUse both for fully explicit migrations:
skill-bridge \
--from claude \
--to codex \
--source ./claude-skills \
--target ./codex-skills \
--all \
--dry-runDisable default personal and project discovery when using a custom source:
skill-bridge \
--from claude \
--to codex \
--source ./claude-skills \
--no-personal \
--no-projectConflict Handling
When a destination skill folder already exists, Skill Bridge compares the expected migrated output against the existing destination using SHA-256 checksums.
If the checksums match, the skill is skipped automatically:
Destination already contains the same skill (checksum matched).If the destination exists but differs, interactive mode asks:
Overwrite this skill
Skip this skill
Overwrite this and all remaining conflicts
Skip this and all remaining conflicts
Cancel migrationFor non-interactive runs, choose a policy:
skill-bridge --from claude --to codex --all --yes --on-conflict skipskill-bridge --from claude --to codex --all --yes --on-conflict overwriteShortcuts:
skill-bridge --from claude --to codex --all --yes --skip-existing
skill-bridge --from claude --to codex --all --yes --overwriteDry runs show whether each skill would import, skip, or overwrite:
skill-bridge --from claude --to codex --filter estifie --all --dry-runPlatform Behavior
Skill Bridge treats each supported tool as a local skill platform. The source platform controls where skills are discovered from; the target platform controls where migrated skills are written.
Claude Code
- Personal skills:
~/.claude/skills - Project skills:
.claude/skills - Skill shape:
<skill>/SKILL.mdplus supporting files. - Claude-specific frontmatter such as
allowed-tools,disable-model-invocation, anduser-invocableis removed when migrating to non-Claude targets.
Codex
- Personal skills:
~/.codex/skills - Project skills:
.codex/skills - Skill shape:
<skill>/SKILL.mdplus supporting files. - Codex output can include
agents/openai.yamlmetadata unless--no-codex-metadatais used. - Codex-only
agents/openai.yamlmetadata is not copied when migrating to Claude Code or Antigravity.
Antigravity
- Global skills:
~/.gemini/antigravity/skills - Project skills are not scanned automatically; pass
--sourcefor custom locations. - Uses the same local skill folder shape:
<skill>/SKILL.mdplus supporting files. - Codex-only
agents/openai.yamlmetadata is not copied into Antigravity.
All default paths are resolved from the current user's home directory, so ~/.gemini/antigravity/skills becomes the correct home-relative path on macOS, Linux, and Windows.
CLI Reference
Usage: skill-bridge [options]
CLI for migrating local skills between Claude Code, Codex, and Antigravity.Options:
--from <platform> Source platform: claude, codex, or antigravity.
--to <platform> Target platform: claude, codex, or antigravity.
-s, --source <path...> Custom source skills directory or a single skill directory.
-t, --target <path> Target skills directory. Defaults to the selected target platform.
--cwd <path> Project directory used for project skill discovery.
-a, --all Select every discovered skill without opening the selector.
-f, --filter <query> Filter discovered skills by name, description, scope, or relative path.
-y, --yes Accept the migration confirmation prompt.
--dry-run Show what would be migrated without writing files.
--overwrite Overwrite every differing destination skill.
--skip-existing Skip every existing destination skill.
--on-conflict <action> Conflict policy: ask, skip, or overwrite.
--no-personal Do not scan personal source skills.
--no-project Do not scan project source skills.
--no-codex-metadata Do not create agents/openai.yaml when migrating to Codex.Examples
Migrate one searched set from Claude Code to Codex:
skill-bridge --from claude --to codex --filter "ios" --all --dry-runMigrate from a project-local Claude skill folder:
skill-bridge \
--from claude \
--to codex \
--source ./.claude/skills \
--target ./.codex/skills \
--allMigrate Codex skills back to Claude Code and overwrite conflicts:
skill-bridge --from codex --to claude --all --yes --overwriteUse Codex output without generating agents/openai.yaml:
skill-bridge --from claude --to codex --all --no-codex-metadataMigrate Claude Code skills into Antigravity:
skill-bridge --from claude --to antigravity --all --dry-runDevelopment
This project uses Bun for local development.
bun install
bun run check
bun test
bun run buildRun locally:
bun run devRun local smoke tests:
bun run dev -- --from claude --to codex --filter estifie --all --dry-run
bun run dev -- --from codex --to claude --all --dry-run
bun run dev -- --from antigravity --to codex --all --dry-run