@gagansd/pi-ask
TUI interviews for Pi. Ask one decision at a time.
Package details
Install @gagansd/pi-ask from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@gagansd/pi-ask- Package
@gagansd/pi-ask- Version
0.1.4- Published
- Oct 19, 2026
- Downloads
- 672/mo · 62/wk
- Author
- tiredhades
- License
- MIT
- Types
- extension, skill
- Size
- 388.7 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"skills": [
"./skills"
],
"extensions": [
"./src/index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-ask
Gives your agent a way to interview you in a structured form — brainstorming, auth, missing requirements. Structured answers keep the thread small.
One skill (~20-token description), built for context minimisation.



Install
pi install npm:@gagansd/pi-ask
Then /reload.
Releases: CHANGELOG.
From a clone of this repo: pi install . at the repo or package root.
Everyday use
The agent calls ask_user. /answer if it asked in prose instead.
| Need | What you do |
|---|---|
| Choose one, or several | single / multi |
| Type freely | text, or Type your own on a choice question |
| Understand a choice first | Notes |
| The question is the wrong shape | t switches single ↔ multi |
Commands
| Command | What it does |
|---|---|
/answer |
Turn the latest completed assistant message into a form |
/ask-settings |
Settings overlay. ? inside a form opens the same overlay |
TUI-only. Non-TUI callers get status: "unavailable".
Contract
Input: { title?, questions: [{ id, label?, prompt, type: single\|multi\|text, options? }] }.
textquestions have no options.single/multineed real options. Do not invent filler.- Recommended options get a
description. Never preselected. - Typed text is never merged into option
values.
Output:
status:submitted|cancelled|unavailable|invalidanswers[id]:{ values, labels, customText?, note?, optionNotes? }unanswered: id[]
Optional config: ~/.pi/agent/extensions/pi-ask.json. /answer uses the current chat model unless answer.extractionModels is set.