request_user_input tool description should steer the model toward options and one question per entry
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
What feature would you like to see?
Summary
request_user_input_async supports options per question and the TUI renders a picker, but the model routinely sends a single free-text title with no options, even when it
has already enumerated the answers itself. The tool description should steer the model toward options and one question per entry.
What happened
Codex CLI 0.154.0, model gpt-6-astra, default mode. While debugging a mobile sign-in issue the model called:
{"questions":[{"title":"Was the app installed from the latest internal-testing build, or an older/local build? Also, did you sign out of the existing account before tapping the
other sign-in provider, or tap it from a settings screen while still signed in?"}]}
The TUI showed a single "Type your answer" box. Two closed-set questions were bundled into one prompt, and the options the user had to pick from were written into the prose
rather than passed as options.
Why it matters
- The model has to parse a free-text paragraph back into two answers, which is slower and error-prone.
- Users answer a picker in two keypresses; a compound free-text question takes a sentence or two and often misses half of it.
- This is the default experience for every user. Per-user AGENTS.md rules can patch it, but the tool description is the right place.
Proposed change
Add to the request_user_input / request_user_input_async tool description:
- Prefer
optionswhenever the answer set is small and known. Free text is always available, so options cost nothing. - One question per entry. Pass several entries in one call rather than joining questions with "Also".
- Before asking, verify anything discoverable from the workspace or device.
Optionally warn in the handler when a title contains more than one ? and no options.
Additional information
No response
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
Locate the request_user_input and request_user_input_async tool descriptions and the handler mentioned in the issue. Read how their guidance is assembled, then update the descriptions to prefer known options, keep one question per entry, and check the workspace or device first. Done means the guidance covers all three proposed behaviors; the optional handler warning is separate.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100