@ryan_nookpi/pi-extension-ask-user-question
AskUserQuestion tool extension for pi.
Package details
Install @ryan_nookpi/pi-extension-ask-user-question from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@ryan_nookpi/pi-extension-ask-user-question- Package
@ryan_nookpi/pi-extension-ask-user-question- Version
0.3.5- Published
- May 4, 2026
- Downloads
- 1,271/mo · 171/wk
- Author
- ryan_nookpi
- License
- MIT
- Types
- extension
- Size
- 89.8 KB
- Dependencies
- 0 dependencies · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@ryan_nookpi/pi-extension-ask-user-question
pi에서 ask_user_question 도구를 추가해, 사용자에게 여러 질문을 한 번에 구조화해서 받을 수 있게 해주는 익스텐션입니다.
설치
pi install npm:@ryan_nookpi/pi-extension-ask-user-question
무엇을 할 수 있나
radio: 하나만 고르는 단일 선택 질문checkbox: 여러 개를 고르는 복수 선택 질문text: 자유 입력 질문allowOther: true: 선택지 외 값을 직접 입력하는기타...경로 제공- 여러 질문을 한 번의 폼으로 묶어 입력 받기
언제 쓰면 좋은가
- 요구사항이 모호해서 확인이 필요할 때
- 여러 선택지 중 하나를 고르게 해야 할 때
- 선호도, 배포 환경, 옵션 조합 등을 한 번에 수집할 때
- 일반 텍스트 질문보다 구조화된 응답이 필요할 때
파라미터 가이드
최상위 필드
title: 폼 상단 제목description: 폼 설명/안내 문구questions: 질문 배열
질문 필드
id: 질문 식별자type:radio|checkbox|textprompt: 사용자에게 보여줄 질문 문구label: 탭에 표시할 짧은 이름. 생략하면Q1,Q2처럼 자동 생성options:radio/checkbox에서 사용할 선택지 목록allowOther:기타...직접 입력 허용 여부required: 필수 응답 여부placeholder:text입력창 플레이스홀더default: 기본값.radio/text는 문자열,checkbox는 문자열 배열
옵션 필드
value: 실제 반환값label: 화면에 보이는 문구description: 선택지 아래 보조 설명
예시
{
"title": "배포 설정 확인",
"description": "진행 전에 몇 가지 선택이 필요합니다.",
"questions": [
{
"id": "env",
"type": "radio",
"prompt": "어느 환경에 배포할까요?",
"options": [
{ "value": "staging", "label": "스테이징" },
{ "value": "prod", "label": "프로덕션" }
]
},
{
"id": "targets",
"type": "checkbox",
"prompt": "이번에 함께 반영할 항목은 무엇인가요?",
"options": [
{ "value": "web", "label": "웹" },
{ "value": "admin", "label": "어드민" }
]
},
{
"id": "notes",
"type": "text",
"prompt": "추가로 알아야 할 점이 있나요?",
"required": false,
"placeholder": "선택 사항"
}
]
}
반환 형태
응답은 각 질문의 id 기준으로 정리되어 반환됩니다. 취소 시에는 cancelled: true가 내려오고, 완료 시에는 질문별 답변 목록이 포함됩니다.
허용되는 느슨한 입력 형태
위 스키마가 권장 형식이지만, 다음과 같은 변형 입력도 자동으로 정규화해서 처리합니다.
questions를 JSON 문자열로 직렬화해 전달:{ "questions": "[ ... ]" }- 질문 프롬프트를
prompt대신question필드로 전달 options를{ value, label }객체가 아닌 문자열 배열로 전달 (동일 값으로 승격)options를 JSON 문자열로 직렬화해 전달id생략 시 순서대로q1,q2, ...로 자동 부여
예:
{
"questions": "[{\"type\": \"radio\", \"question\": \"extension 이름\", \"options\": [\"claude-code-use\", \"pi-claude-code-use\"], \"allowOther\": true}]"
}