codex apply help hides Cloud task semantics and lacks --attempt parity with codex cloud apply
codex apply help hides its Cloud/task semantics and is missing --attempt parity with codex cloud apply
Summary
The top-level codex apply command appears to target Codex Cloud tasks, but its help text does not say that clearly and its interface does not match codex cloud apply.
In particular:
codex apply --helpsays only "Apply the latest diff produced by Codex agent as agit applyto your local working tree"- it takes
<TASK_ID>, but does not explain that this is a Codex Cloud task id - it does not accept
--attempt codex cloud apply --helpdoes explain the Cloud task semantics and does support--attempt
So the top-level apply command looks like a different local feature, but it is actually tied to remote task ids and has a different flag surface.
Repro
Top-level help:
codex apply --help
Observed excerpt:
Apply the latest diff produced by Codex agent as a `git apply` to your local working tree
Usage: codex apply [OPTIONS] <TASK_ID>
Cloud subcommand help:
codex cloud apply --help
Observed excerpt:
Apply the diff for a Codex Cloud task locally
Usage: codex cloud apply [OPTIONS] <TASK_ID>
Arguments:
<TASK_ID>
Codex Cloud task identifier to apply
Options:
--attempt <N>
Attempt number to apply (1-based)
Now compare flag behavior with the same dummy task id:
codex apply --attempt 1 00000000-0000-0000-0000-000000000000
Observed:
error: unexpected argument '--attempt' found
...
Usage: codex apply [OPTIONS] <TASK_ID>
But the Cloud form accepts the flag and reaches the remote request path:
codex cloud apply --attempt 1 00000000-0000-0000-0000-000000000000
Observed:
Error: http error: get_task_details failed: GET https://chatgpt.com/backend-api/wham/tasks/00000000-0000-0000-0000-000000000000 failed: 404 Not Found; content-type=application/json; body={"detail":"Invalid task ID"}
That confirms codex cloud apply accepts the flag and uses Cloud task semantics, while top-level codex apply does not expose the same contract.
Expected behavior
One of these should be true:
codex applyshould be a true alias/wrapper forcodex cloud apply, with the same help text and flags including--attempt- or
codex applyshould clearly describe that it is Cloud-task based and document any intentional differences
Actual behavior
codex apply presents a more generic/local-sounding help description, requires a TASK_ID, and rejects --attempt, while codex cloud apply exposes the actual Cloud/task semantics and accepts --attempt.
Why this matters
This is misleading for users and automation. The top-level command reads like "apply the last local diff", but behaves like a specialized Cloud-task operation with a partially different interface.
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗