[FEATURE] Per-call timeout override for AskUserQuestion (not just the global askUserQuestionTimeout setting)
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet (closest matches are #62657, which asks for configurable timeouts in general, and #61337, the closed bug this indirectly caused; neither proposes a per-call parameter)
- [x] This is a single feature request
Problem Statement
askUserQuestionTimeout only works as a global, user-level setting in ~/.claude/settings.json. A single AskUserQuestion call can't ask for its own timeout: whatever you set applies to every question in the session, and to every session after it, until you change the setting back.
That's a problem for anything that needs exactly one bounded prompt. Say a skill wants to ask "proceed or stop?" once, at the start of an unattended /goal run, and auto-continue after 5 minutes if nobody answers. Turning on askUserQuestionTimeout globally just to get that one prompt to time out means every other question in the session, and every question in every future project, times out the same way, including ones where a snap 5-minute default is the wrong call, like an architecture decision that deserves a real answer.
This is the same root issue as #61337 (closed): AskUserQuestion can block a /goal session indefinitely unless the user already turned on the global timeout before the blocking question showed up. There's no way for the call itself to request or guarantee that.
Proposed Solution
Add an optional per-call field to the AskUserQuestion tool schema, something like timeoutSeconds, that:
- Overrides
askUserQuestionTimeoutfor that one call. - Falls back to the user's global setting (or "never") when left out.
- Lets a skill make one disclosed, scoped request, like "this question auto-continues with the first option after 5 minutes," instead of quietly changing a setting that outlives the session.
Alternative Solutions
Setting askUserQuestionTimeout globally before the call and resetting it after works, but it's a race: the harness could read the setting for an unrelated question mid-session, and it leaves the user's persistent config touched by something they didn't ask to change.
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
- A skill runs an unattended, multi-hour session under
/goal. - At the start, it needs to ask the owner "proceed with the default retry ceiling, or stop and restart with a longer one?"
- With a per-call timeout, the skill asks once, waits 5 minutes, and proceeds with the recommended option if the owner already stepped away, without changing the timeout behavior for any other question in the session.
Additional Context
Related: #62657 (wants different timeouts for different question types), #73621 and #73986 (confusion from the opt-in default introduced in 2.1.200), #30740 (the original ask, closed before the global setting existed).
Version: 2.1.219, macOS.