Feature request: add `--diff-verbosity` to `codex exec` (default: `step`)

Resolved 💬 2 comments Opened Feb 5, 2026 by Henry-Jessie Closed Mar 20, 2026

What variant of Codex are you using?

GPT 5.2(xhigh) in CLI

What feature would you like to see?

Add a control flag for stderr diff volume: -diff-verbosity to codex exec (default: step)

Pain point in codex exec runs

In codex exec scenarios, stderr is the primary stream for tracking progress, especially thinking block and exec log. However, once the agent starts editing files, progress signals are often buried by repeated large diff output, making it difficult to locate the valuable log.

A typical log pattern looks like this:

```text
thinking blcok
...

file update:
diff --git a/src/parser.rs b/src/parser.rs
@@ ...

  • old line A
  • new line A

... hundreds lines(sometimes even thousands) of diff

another thinking block or exec log

  In long runs, this makes it hard to quickly read:

  - current execution progress
  - tool state transitions
  - warnings/errors
  - turn boundaries
  
 ## Likely cause 
  From observed behavior, duplication appears to come from multiple event paths emitting diff data:
  1. Patch begin emits step-level changes (`PatchApplyBegin`), which output prints as full file/hunk content.
  2. Patch end emits `PatchApplyEnd`, then also emits `TurnDiff`.
  3. `TurnDiff` is generated from a turn-scoped tracker that returns cumulative diff state, not just per-step delta, so unchanged hunks reappear.
  4. At turn completion, another `TurnDiff` can be emitted for the same turn.
  5. Stderr rendering prints both step-level patch diff and turn-level cumulative diff, so the same hunks are shown multiple times.

 ## Feature request

  Add one control for stderr diff volume:

  --diff-verbosity {none|step|full}

  - none: suppress diff hunks in stderr
  - step: emit only current-step file-change diff 
  - full: keep current behavior (including cumulative turn-level diff output)

 ## Default recommendation
  Use `step` as the default for codex exec. (just as the behavior of interactive mode). This keeps file-change visibility while preserving log readability and progress tracking.

  ## Compatibility
  - Users who rely on current behavior can opt into `--diff-verbosity full`.
  - `--json` output remains unchanged for machine-readable integrations.
## Related issue and why this is separate

  Related: #6511

  I’m opening this separately because #6511 is scoped/triaged as a bug report, while this request
  is a product-level logging control and default-behavior proposal.
  Even if duplication is reduced, users still need explicit verbosity control for different
  operational contexts (CI readability vs full audit logs).

### Additional information

_No response_

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗