codexlisted
Install: claude install-skill tjdwls101010/Codex-in-Claude
# Codex as a managed subagent
One CLI wraps the whole surface. Your context already carries a line reading **`Base directory for this skill: <dir>`** — the bridge is `<dir>/scripts/codex_bridge.py`. Use that absolute path, double-quoted, in every call:
```bash
python3 "<base directory>/scripts/codex_bridge.py" status
```
Below, `$CODEX` is shorthand for that literal `python3 "<base directory>/scripts/codex_bridge.py"` — write it out in full when you run it.
**Do not build the path from an environment variable.** `$CLAUDE_PLUGIN_ROOT` and `$CLAUDE_SKILL_DIR` are both empty in the Bash environment, even for a plugin install — `$CLAUDE_PLUGIN_ROOT` is expanded in permission rules, which is a different layer from the process environment. And because this skill's pre-approved permission pattern matches the command *text*, a call written as `python3 "$SOMEVAR/…"` is not covered by it and raises an approval prompt every time, which is exactly what makes background work unusable.
**Write each call on one line.** The same text matching means a command broken across lines with a trailing `\` does not match the pattern either, and gets refused. This bites where it is least convenient: `batch start` with several `--task` flags is long, long commands invite line continuations, and a refused `batch start` is the whole batch.
`$CODEX --help` lists the commands. `$CODEX <command> --help` is the option surface — every flag, its default, what it refuses and why. None of that is repeated