codex apply help hides Cloud task semantics and lacks --attempt parity with codex cloud apply

Resolved 💬 1 comment Opened Mar 23, 2026 by aquiles-ai123 Closed Mar 23, 2026

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 --help says only "Apply the latest diff produced by Codex agent as a git apply to 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 --help does 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 apply should be a true alias/wrapper for codex cloud apply, with the same help text and flags including --attempt
  • or codex apply should 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.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗