codex doctor does not report the effective model_reasoning_effort
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What variant of Codex are you using?
CLI (codex-cli 0.153.4)
What feature would you like to see?
codex doctor --json reports model and model provider under config.load, but
not model_reasoning_effort. Please add it.
There's currently no CLI surface that exposes the effective effort: doctor doesn't
have it, and codex debug prompt-input renders byte-identical output for
-c model_reasoning_effort=low and =high. So tooling has to parse
~/.codex/config.toml and redo profile/env resolution itself.
Looks like a one-liner in config_check() (codex-rs/cli/src/doctor.rs), next to
the existing model push. No "effort" string anywhere in that file on 0.153.4,
rust-v0.154.0-alpha.11, or main, so I don't think it's already in flight.
Additional information
Why I want it: resuming a thread under a different effort throws away its prompt
cache, so a wrapper doing exec + exec resume needs to check before resuming.
Two identical threads on 0.153.4, one-word prompts, only turn 2's effort differs
(turn.completed.usage):
| turn 2 | input | cached |
|---|---|---|
| A: low -> low | 16,698 | 16,512 (98.9%) |
| B: low -> high | 16,699 | 12,160 (72.8%) |
| B: high -> high | 16,732 | 16,512 (98.7%) |
72.8% is exactly what a fresh run gets, i.e. the thread's own history stops being
cached. Row 3 is that same thread one turn later with effort unchanged, so it's the
change that costs, not high effort itself. It scales with thread size: on a
600k-token thread that's ~590k tokens re-billed as uncached.
Repro: codex exec --json -c model_reasoning_effort=low --sandbox read-only -, then
resume that thread id twice, once with =low and once with =high, and compare
usage.cached_input_tokens.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Open codex-rs/cli/src/doctor.rs and inspect config_check(), starting next to the existing model push under config.load. Expose the effective model_reasoning_effort there, then verify that codex doctor --json reports it after configuration and profile/env resolution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 90/100