A pi extension that adds an askUserQuestion tool, letting the model pause mid-task and ask you a clarifying question before proceeding.
Registers a single tool, askUserQuestion, into pi's toolset. The tool accepts a required question string and an optional options array:
- With
options: presents a multiple-choice picker so you can select from predefined answers. - Without
options: shows a free-text input prompt for open-ended replies.
The extension also injects prompt guidelines that nudge the model to reach for this tool before taking irreversible actions or when the right approach is ambiguous.
When the model calls askUserQuestion, one of four things happens:
- Non-interactive environment (RPC or print mode): the tool returns immediately, telling the model to proceed with its best judgment.
- Options provided: pi calls
ctx.ui.select(question, options)and shows a picker. - No options: pi calls
ctx.ui.input(question, ...)and shows a free-text field. - User dismisses (Escape): the tool returns a message asking the model to use its best judgment or ask again.
On a successful answer, the tool returns "User answered: {answer}" so the model can continue with full context.
Security: pi packages run with full system access. Review the source before installing.
npm (recommended):
pi install npm:pi-ask-user-questionProject-local via npm (writes to .pi/settings.json):
pi install -l npm:pi-ask-user-questionEphemeral via npm (current session only):
pi -e npm:pi-ask-user-questionGlobal:
pi install git:github.com/skidvis/pi-ask-user-questionProject-local (writes to .pi/settings.json):
pi install -l git:github.com/skidvis/pi-ask-user-questionEphemeral (current session only):
pi -e git:github.com/skidvis/pi-ask-user-questionOnce installed, askUserQuestion is available to the model automatically. No extra configuration is needed.
The injected prompt guidelines instruct the model to call askUserQuestion when:
- It is about to take an action that cannot be undone.
- Multiple valid approaches exist and the right one depends on your preference.
- A required piece of information is missing or ambiguous.
You can answer with free text or, when the model provides options, pick from the list. Pressing Escape at any prompt tells the model to continue with its best judgment.
This package declares the following peer dependencies, which pi bundles and provides automatically:
@mariozechner/pi-coding-agent@sinclair/typebox
No separate install step is needed for these.
MIT