Review git changes in background (paid)
codex_review_changes_asyncReview your git changes in the background and receive a job ID immediately, ideal for large or branch-wide reviews that exceed synchronous limits.
Instructions
Review your git changes in the background; get a job_id back immediately.
PAID — this spends Codex quota on every new call; use codex_dry_run or codex_status (both free) first if you only need to check scope or readiness.
Same read-only behavior as codex_review_changes (the diff is gathered, secret-
redacted, and bounded, then reviewed read-only), but detached — prefer it for a multi-file
or whole-branch review that can exceed the synchronous deadline (built-in default 300s),
since a sync run whose deadline expires loses its partial work; this job's own deadline is
separately configured (built-in default 1800s). The diff is gathered inside the job, so a bad
base/commit comes back as the same structured error with zero spend (a bad
scope is rejected by MCP input validation before the job starts). Starting a job commits to
spend. Poll codex_job_status; read/consume the review envelope with
codex_job_result/codex_job_consume_result; stop with codex_job_cancel. Pass
workspace_root (absolute).
Data egress: same as codex_review_changes — sends the secret-redacted diff plus
your raw (unredacted) extra_context to OpenAI via the codex CLI; Codex may also
read other repo files. Codex auto-loads the resolved workspace's AGENTS.md and
discovers skills in its .agents/skills/ and user-global $CODEX_HOME/skills/
(default ~/.codex/skills/), reachable from outside the workspace. Redaction is
best-effort, not a guarantee.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base git ref for scope='branch'; the review covers base...HEAD. | |
| model | No | Override the Codex model slug for this call; defaults to the server/Codex default when unset. | |
| paths | No | Repo-relative paths to narrow the review ('/' separators, no '..'); omit to review all changes in scope. | |
| scope | No | Which changes to review: 'working_tree' (tracked changes vs HEAD; untracked files follow the `untracked` policy, off by default), 'branch' (needs base), or 'commit' (needs commit). | working_tree |
| commit | No | Commit SHA or ref to review for scope='commit'. | |
| isolation | No | Codex config isolation: 'inherit' | 'ignore-config' | 'ignore-rules'. Defaults to the server's configured value (built-in 'inherit'; `codex_status` reports the resolved one). | |
| untracked | No | How working_tree scope treats untracked files: 'explicit_only' (default) includes only those named in `paths`; 'include' reviews all non-ignored untracked files (SENDS their contents to OpenAI — opt-in egress); 'exclude' includes none. Omitted ones are disclosed in `coverage`. Inert for branch/commit scopes. | explicit_only |
| extra_context | No | Optional author intent/background context, added as clearly-labeled UNTRUSTED prompt data. Redaction does NOT cover it — no live secrets. Full caveats and bounds: codex://params. | |
| workspace_root | No | Absolute path to the target repo root — pass it (or an MCP root) to target the intended repo; otherwise the call falls back to the server's own cwd and sets meta.workspace_warning. | |
| idempotency_key | No | Optional dedup key scoped to THIS tool + workspace. Same key + same args replays the prior result with no new spend; different args are refused (idempotency_conflict). Sync and _async are separate tools and never share a key. Omit for none; retention is bounded. Lifecycle: codex://params. | |
| reasoning_effort | No | Override the Codex reasoning effort for this call (a model_reasoning_effort override); omit or pass null for the server default (CODEX_IN_CLAUDE_REASONING_EFFORT) or Codex's own resolution. An open, per-model string the backend validates at run time — commonly minimal|low|medium|high|xhigh; codex_models lists each model's advertised set (advisory). Rejection and bounds detail: codex://params. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes |