github / github/copilot-cli

Feature Request: Allow interactive `ask_user` prompts in `-p` (piped prompt) mode

Aberta
#2,929 0 comentários 0 reações 0 responsáveis Ver no GitHub
area:non-interactive
Linguagem predominante
Shell
Estrelas
11.2k
Forks
1.9k
Merge médio
14h 16min
PRs com merge (30d)
6

Descrição

## 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.

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

A issue não nomeia arquivos, testes nem pontos de entrada. Comece localizando o tratamento da opção `-p` e o caminho de interação com o terminal de `ask_user`; em seguida, rastreie como o modo não interativo é selecionado. Está concluído quando uma opção seminterativa compatível permite que os prompts de `ask_user` apareçam e que a execução seja retomada, preservando o comportamento não interativo sem um TTY.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Domínio
cli
Tipo de issue
Funcionalidade
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Pouca atividade
Clareza
Razoavelmente clara
Facilidade para iniciantes
48/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.