Problem
When using copilot -p "prompt", the CLI runs in fully non-interactive mode. If the agent encounters ambiguity and calls the ask_user tool, the prompt is never shown to the user on the terminal. Instead, the agent adapts by using whatever output channel is available (e.g., replying with a question in a PR review comment thread), which breaks the intended workflow.
Real-world example
When using a skill like fix-pr-review-comments via copilot -p "fix PR review comments", the agent sometimes needs clarification on ambiguous review comments. Rather than prompting the user on the terminal, it posts its question as a PR comment reply — which the user never sees in real-time, defeating the purpose of the interactive ask_user tool.
Desired Behavior
A semi-interactive mode where:
- The agent runs autonomously by default (no unnecessary prompts)
- When the agent genuinely needs user input (via
ask_user), the CLI renders the prompt on the terminal and waits for a response
- Once the user responds, the agent continues autonomously
This would enable a "fire and mostly forget" workflow that still handles edge cases gracefully.
Proposed Solution
Add a flag like --allow-interactive (or --semi-interactive) that enables ask_user terminal prompts even when a prompt is provided via -p:
copilot -p "fix PR review comments" --allow-interactive
Alternatively, this could be the default behavior for -p when the process has a controlling TTY (i.e., when it is not piped into another process or running in a CI environment). The fully non-interactive behavior could be preserved when there is no TTY.
Current Workarounds
- Use interactive mode and paste the prompt manually (loses the convenience of
-p)
- Pre-empt ambiguity in the prompt with instructions like "skip unclear comments"
- Use autopilot mode interactively (
copilot --experimental + Shift+Tab)
None of these match the ergonomics of a semi-interactive -p mode.
Additional Context
The -p flag is commonly used in scripted/aliased workflows (e.g., alias fixpr="copilot -p \"fix PR review comments\""). These workflows benefit from non-interactive execution but occasionally need human judgment. The current all-or-nothing approach forces users to choose between convenience and correctness.
Problem
When using
copilot -p "prompt", the CLI runs in fully non-interactive mode. If the agent encounters ambiguity and calls theask_usertool, the prompt is never shown to the user on the terminal. Instead, the agent adapts by using whatever output channel is available (e.g., replying with a question in a PR review comment thread), which breaks the intended workflow.Real-world example
When using a skill like
fix-pr-review-commentsviacopilot -p "fix PR review comments", the agent sometimes needs clarification on ambiguous review comments. Rather than prompting the user on the terminal, it posts its question as a PR comment reply — which the user never sees in real-time, defeating the purpose of the interactiveask_usertool.Desired Behavior
A semi-interactive mode where:
ask_user), the CLI renders the prompt on the terminal and waits for a responseThis would enable a "fire and mostly forget" workflow that still handles edge cases gracefully.
Proposed Solution
Add a flag like
--allow-interactive(or--semi-interactive) that enablesask_userterminal prompts even when a prompt is provided via-p:copilot -p "fix PR review comments" --allow-interactiveAlternatively, this could be the default behavior for
-pwhen the process has a controlling TTY (i.e., when it is not piped into another process or running in a CI environment). The fully non-interactive behavior could be preserved when there is no TTY.Current Workarounds
-p)copilot --experimental+ Shift+Tab)None of these match the ergonomics of a semi-interactive
-pmode.Additional Context
The
-pflag is commonly used in scripted/aliased workflows (e.g.,alias fixpr="copilot -p \"fix PR review comments\""). These workflows benefit from non-interactive execution but occasionally need human judgment. The current all-or-nothing approach forces users to choose between convenience and correctness.