← ClaudeAtlas

sync-codex-permissionslisted

Translates current-project Claude Code permission rules (.claude/settings.local.json permissions.allow and permissions.deny Bash entries only) into Codex prefix_rule blocks in .codex/rules/default.rules, computes the gap against existing project-local Codex rules, and presents portable rules for per-rule approval before writing. Global and project-agnostic. Trigger when the user says "sync codex permissions", "sync-codex-permissions", "port project claude permissions to codex", "translate project claude permissions", "replicate project claude allow rules", or "bring project claude permissions into codex".
ada-ggf25/AI-Tools · ★ 2 · AI & Automation · score 66
Install: claude install-skill ada-ggf25/AI-Tools
# Sync Project Claude Code Permissions To Codex Use `$sync-codex-permissions` to mirror already-approved current-project Claude Code command permissions into Codex's project-local rules file. The source is always the current project's `.claude/settings.local.json`; the target is always `.codex/rules/default.rules`. This skill intentionally syncs project-local rules only. Do not read or fall back to global Claude Code settings or `${CODEX_HOME:-~/.codex}/rules/default.rules`: personal or global permissions may affect active sessions, but they are outside this project-local sync workflow. This skill is the inverse of `sync-claude-permissions`. `sync-claude-permissions` translates `.codex/rules/default.rules` into `.claude/settings.local.json`; this skill translates `.claude/settings.local.json` into `.codex/rules/default.rules`. ## Translation Reference ### Claude Code Rule To Codex Pattern Translate only Claude Code `Bash(...)` permission entries. Build the narrowest Codex `pattern` array that matches the same command prefix: | Claude Code rule | Codex `prefix_rule` pattern | |---|---| | `Bash(git status:*)` | `["git", "status"]` | | `Bash(git status *)` | `["git", "status"]` | | `Bash(git -C /repo status:*)` | `["git", "-C", "/repo", "status"]` | | `Bash(npm run test:*)` | `["npm", "run", "test"]` | | `Bash(./install.sh:*)` | `["./install.sh"]` | Accept both `Bash(prefix:*)` and older `Bash(prefix *)` forms as source syntax. Strip the wildcard suffix and split the rem