Feature Request: Allow interactive `ask_user` prompts in `-p` (piped prompt) mode
- Lingua principale
- Shell
- Stelle
- 11.2k
- Fork
- 1.9k
- Merge medio
- 14h 16m
- PR unite (30g)
- 6
Descrizione
## 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`:
```bash
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
1. Use interactive mode and paste the prompt manually (loses the convenience of `-p`)
2. Pre-empt ambiguity in the prompt with instructions like "skip unclear comments"
3. 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
La issue non indica file, test o punti di ingresso. Inizia individuando la gestione dell’opzione `-p` e il percorso di interazione con il terminale di `ask_user`, quindi traccia come viene selezionata la modalità non interattiva. Il lavoro è completato quando un’opzione semi-interattiva supportata consente la visualizzazione dei prompt di `ask_user` e la ripresa dell’esecuzione, preservando al contempo il comportamento non interattivo senza un TTY.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Ambito
- cli
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 48/100