codex · skills-directory — Claude Code skill: run Codex CLI from your agent
A skill that tells your agent how to drive Codex CLI: pick a model and reasoning effort, build the codex exec command, and resume sessions.
npx skills add skills-directory/skill-codex --skill codex -a claude-codeWhat codex does
The skill hands Codex CLI work off to Codex instead of doing it in the host agent. It walks through the steps: ask you for a model and a reasoning effort in one prompt with two questions, pick a sandbox mode, assemble the command, run it, then summarize. With no stated preference it suggests starting at gpt-6-astra on high.
Flags map to the task: -m for the model, --config model_reasoning_effort=... for effort, --sandbox for access, -C for the working directory. The default sandbox is --sandbox read-only; edits and network access are opt-in. Effort levels max and ultra need a GPT-6 or GPT-5.6 model, and ultra only runs on astra, sol and terra. Pick an effort above a model's ceiling and the skill falls back to the highest supported level and says so.
The --skip-git-repo-check flag has its own gate. Inside a Git repo it stays off by default; outside one it needs your approval, and a general request to use Codex does not count as that approval. Two more traps: codex exec always reads stdin, so a harness that leaves the stream open hangs forever — append </dev/null. And output only lands at completion, so a killed process leaves an empty file with no error. Background timeouts scale with effort, from 150s on low to 1800s on max and ultra.
What it helps with
- run Codex CLI from Claude without leaving the session
- match model and reasoning effort to the job at hand
- continue an earlier Codex session with a new prompt
- review code in read-only mode before touching anything
- set a background timeout that fits the chosen effort
Example prompts for the agent
- run this module through Codex and show me what it finds
- resume the last Codex session and add a race condition check
- run Codex in workspace-write mode and fix the imports
How to install codex
1Skills CLI (Vercel)
npx skills add skills-directory/skill-codex --skill codex -a claude-code2Manually: put the files in place
~/.claude/skills/codex/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/codex/
1Skills CLI (Vercel)
npx skills add skills-directory/skill-codex --skill codex -a codex2Manually: put the files in place
.agents/skills/codex/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add skills-directory/skill-codex --skill codex -a cursor2Manually: put the files in place
.cursor/skills/codex/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install skills-directory/skill-codex codex2Manually: put the files in place
.github/skills/codex/SKILL.md1Skills CLI (Vercel)
npx skills add skills-directory/skill-codex --skill codex -a gemini-cli2Platform CLI
gemini skills install https://github.com/skills-directory/skill-codex --path plugins/skill-codex/skills/codexManually: put the files in place
.devin/skills/codex/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add skills-directory/skill-codex --skill codex -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about codex
How do I install the Claude skill in Claude?
Run npx skills add skills-directory/skill-codex --skill codex -a claude-code. The skill file lands at ~/.claude/skills/codex/SKILL.md.
What does the Claude skill do?
It gives the agent a procedure for running Claude CLI: choosing a model and reasoning effort, setting the sandbox mode, assembling the codex exec command, and resuming with codex exec resume --last.
What do I need before the skill works?
Claude CLI has to be installed and signed in. When Claude is signed in with a Claude account, legacy models such as gpt-5.5 and gpt-5.3-codex are rejected as unsupported.
Source text
SKILL.md · MIT
---
name: codex
description: Use when the user asks to run Codex CLI (codex exec, codex resume) or references OpenAI Codex for code analysis, refactoring, or automated editing
---
# Codex Skill Guide
## Running a Task
1. For a new session (resumes inherit the prior model/effort — see step 5), ask the user (via `AskUserQuestion`) which **model** AND which **reasoning effort** to use, in a **single prompt with two questions**. When the user expresses no preference, default to `gpt-6-astra` at `high`.
- **Model** — default `gpt-6-astra`:
- *GPT-6:* `gpt-6-astra` (frontier / most capable — **default**), `gpt-6.1-sol` (latest workhorse for coding and everyday work), `gpt-6-sol` (previous-generation workhorse), `gpt-6-luna` (fast & affordable, easier tasks)
- *GPT-5.6:* `gpt-5.6-sol` (reliable agentic workhorse), `gpt-5.6-terra` (balanced, everyday), `gpt-5.6-luna` (fast & affordable)
- *Legacy (rejected as unsupported when Codex is signed in with a ChatGPT account):* `gpt-5.5`, `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.3-codex-spark`, `gpt-5.3-codex`
- **Reasoning effort** — default `high`: `low`, `medium`, `high`, `xhigh`, `max`, `ultra`.
- `max`/`ultra` require a GPT-6 or GPT-5.6 model; `ultra` is only on `astra`/`sol`/`terra` (`luna` caps at `max`); legacy models cap at `xhigh`.
- `ultra` = maximum reasoning **with automatic task delegation** (slowest and most expensive — reserve for the hardest jobs).
- If the chosen effort exceeds the chosen model's maximum, fall back to that model's highest supported effort and tell the user.
2. Select the sandbox mode required for the task; default to `--sandbox read-only` unless edits or network access are necessary.
3. Assemble the command with the appropriate options:
- `-m, --model <MODEL>`
- `--config model_reasoning_effort="<low|medium|high|xhigh|max|ultra>"` (max/ultra only on GPT-6 / GPT-5.6 models; ultra only on astra/sol/terra — see step 1)
- `--sandbox <read-only|workspace-write|danger-full-access>`
- `-C, --cd <DIR>`
- `--skip-git-repo-check` (only when permitted by step 4)
- `"your prompt here"` (as final positional argument)
4. Determine whether the effective target directory is inside a Git repository, including any explicit working directory such as `-C <DIR>`.
- Unknown Git context is unresolved, not consent; resolve it before invoking.
- Inside Git, omit `--skip-git-repo-check` by default; include it only for an applicable explicit request for that flag.
- Outside Git, include it only with applicable approval or an explicit flag request. If permission is missing, ask using `AskUserQuestion` and do not invoke until permission is given.
- Applicable previous approval satisfies the gate; a later denial overrides any previous approval or request. A general request to use Codex or a sandbox mode is not skip-flag approval.
- If denied inside Git, omit the flag and continue only if the remaining task is authorized. If denied outside Git, stop and explain the blocked invocation.
- Do not use an unapproved retry, fallback, or Git initialization to bypass this gate.
5. When continuing a previous session, use `codex exec resume --last` via stdin. Resuming does not authorize `--skip-git-repo-check`; apply step 4 before each resume and add the flag only when permitted. When resuming don't use any configuration flags unless explicitly requested by the user e.g. if he species the model or the reasoning effort when requesting to resume a session. Resume syntax inside Git by default: `echo "your prompt here" | codex exec resume --last 2>/dev/null`. All flags have to be inserted between exec and resume.
6. **IMPORTANT**: By default, append `2>/dev/null` to all `codex exec` commands to suppress thinking tokens (stderr). Only show stderr if the user explicitly requests to see thinking tokens or if debugging is needed.
7. **IMPORTANT (stdin)**: `codex exec` always reads stdin and concatenates it with the positional prompt -- even when the prompt is fully supplied as a positional argument. If stdin is not closed, codex blocks forever. When invoking from a harness (background tasks, hooks, scripts where stdin is not a TTY but also not closed), explicitly redirect stdin: append `</dev/null` to the command, e.g. `codex exec ... "prompt" </dev/null 2>/dev/null`. Symptom of getting this wrong: zero bytes of stdout, zero CPU accumulated, process appears hung indefinitely.
8. Run the command, capture stdout/stderr (filtered as appropriate), and summarize the outcome for the user.
9. **After Codex completes**, inform the user: "You can resume this Codex session at any time by saying 'codex resume' or asking me to continue with additional analysis or changes."
### Quick Reference
| Use case | Sandbox mode | Key flags |
| --- | --- | --- |
| Read-only review or analysis | `read-only` | `--sandbox read-only 2>/dev/null` |
| Apply local edits | `workspace-write` | `--sandbox workspace-write 2>/dev/null` |
| Permit network or broad access | `danger-full-access` | `--sandbox danger-full-access 2>/dev/null` |
| Resume recent session | Inherited from original | `echo "prompt" \| codex exec resume --last 2>/dev/null` (inside Git by default; no configuration flags unless explicitly requested; apply step 4 to the skip flag) |
| Run from another directory | Match task needs | `-C <DIR>` plus other flags `2>/dev/null` |
## Execution timeouts
Codex produces **no intermediate output** — it writes the result only at completion. If the process is killed before finishing, the output file is silently empty (no error).
**Preferred approach:** run synchronously — eliminates timeout risk entirely and the conversation waits for the result anyway.
**If running in background**, set the execution timeout based on reasoning effort:
| Reasoning effort | Timeout |
|---|---|
| `low` | 150s |
| `medium` | 300s |
| `high` | 600s |
| `xhigh` | 1200s |
| `max` | 1800s |
| `ultra` | 1800s |
## Following Up
- After every `codex` command, immediately use `AskUserQuestion` to confirm next steps, collect clarifications, or decide whether to resume with `codex exec resume --last`.
- When resuming, apply step 4's skip-flag gate and pipe the new prompt via stdin: `echo "new prompt" | codex exec resume --last 2>/dev/null` (inside Git by default). The resumed session automatically uses the same model, reasoning effort, and sandbox mode from the original session.
- Restate the chosen model, reasoning effort, and sandbox mode when proposing follow-up actions.
## Critical Evaluation of Codex Output
Codex is powered by OpenAI models with their own knowledge cutoffs and limitations. Treat Codex as a **colleague, not an authority**.
### Guidelines
- **Trust your own knowledge** when confident. If Codex claims something you know is incorrect, push back directly.
- **Research disagreements** using WebSearch or documentation before accepting Codex's claims. Share findings with Codex via resume if needed.
- **Remember knowledge cutoffs** - Codex may not know about recent releases, APIs, or changes that occurred after its training data.
- **Don't defer blindly** - Codex can be wrong. Evaluate its suggestions critically, especially regarding:
- Model names and capabilities
- Recent library versions or API changes
- Best practices that may have evolved
### When Codex is Wrong
1. State your disagreement clearly to the user
2. Provide evidence (your own knowledge, web search, docs)
3. Optionally resume the Codex session to discuss the disagreement. **Identify yourself as Claude** so Codex knows it's a peer AI discussion. Use your actual model name (e.g., the model you are currently running as) instead of a hardcoded name:
```bash
echo "This is Claude (<your current model name>) following up. I disagree with [X] because [evidence]. What's your take on this?" | codex exec resume --last 2>/dev/null
```
4. Frame disagreements as discussions, not corrections - either AI could be wrong
5. Let the user decide how to proceed if there's genuine ambiguity
## Error Handling
- Stop and report failures whenever `codex --version` or a `codex exec` command exits non-zero; request direction before retrying.
- Before you use high-impact flags (`--sandbox danger-full-access`, `--skip-git-repo-check`) ask the user for permission using AskUserQuestion unless it was already given. For `--skip-git-repo-check`, applicable previous approval or an explicit flag request satisfies this gate; apply step 4's Git-context and denial rules to executions and resumes. A later denial overrides previous approval or request.
- When output includes warnings or partial results, summarize them and ask how to adjust using `AskUserQuestion`.
© skills-directory · MIT · skills-directory/skill-codex
Similar skills
All skills for Agent setup: memory, context, orchestration →codex by other authors comes first.