github / github/copilot-cli

Add internal interactive questioning tool 'usr_ask'

オープン
#4,557 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

area:input-keyboard area:tools
主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

説明

Describe the feature or problem you'd like to solve

In older versions like v1.0.6, ask_user worked nicely to display interactive multiple-choice menus in the terminal.

However, in current releases (tested on v1.0.80), the agent no longer triggers interactive question prompts, even when explicitly asked to offer choices or clarify next steps. Instead, it just outputs plain text lists and ends the turn.

Proposed solution

Restore and polish the built-in ask_user (or usr_ask) tool so the CLI can reliably render interactive selection prompts:

  • Simple arrow-key navigation (/ + Enter) for choices.
  • Single and multi-select support.
  • Built-in "Other / custom text" option so users can write in answers.
  • Ensure the model reliably triggers it when ambiguity arises instead of falling back to raw text.
  • Proper handling in autonomous/YOLO/allow-all modes so interactive prompts don't unexpectedly block unattended or automated workflows (as addressed in #2109).
Example prompts or workflows
  • Choosing frameworks or tools (e.g. asking which test runner to install with selectable items).
  • Confirming dangerous operations before execution.
  • Clarifying requirements during complex tasks without ending the session early.
Additional context

Looking at the v1.0.6 release (app.js), ask_user was defined with { question, choices, allow_freeform } and rendered via registerPrompt. On v1.0.80 this seems broken or dormant.

#2109 is especially relevant here, as it lays out solid proposals to handle ask_user gracefully across ACP and automated modes without breaking YOLO / unattended execution.

Related issues: #2109, #3323, #4050, #4260, #4450, #3722, #2067, #2929, #1898.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

まず、v1.0.6 の app.js における ask_user の実装と registerPrompt の使用方法を現在の CLI と比較し、その後 #2109 の提案を読みます。usr_ask または ask_user がどこで登録され、トリガーされることになるのかを追跡します。完了の条件は、インタラクティブな単一選択および複数選択のプロンプト、自由形式の回答、そして autonomous、YOLO、ACP、unattended モードでの安全な動作です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
shell
領域
cli
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
活発
明瞭さ
説明が足りない
初心者へのやさしさ
32/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。