npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@arhen/pi-core-ask

v1.0.11

Published

Minimalist pi questionnaire: ask_user_question tool with up to 4 structured questions (2-4 options, multiSelect, previews, type-something).

Downloads

1,979

Readme

@arhen/pi-core-ask

npm version license pi extension

Install

Requires the pi coding agent — install it first: npm install -g @earendil-works/pi-coding-agent.

pi install npm:@arhen/pi-core-ask

Registers the ask_user_question tool. Only one extension may register it per session.

Minimalist pi questionnaire: ask_user_question tool with up to 4 structured questions per call — 2–4 options each, multiSelect, markdown previews, and an auto-appended "Type something." free-text row. Stateless: one tool, one dialog, no lifecycle machinery.

Tool contract

  • questions (1–4): question, header (≤16 chars), options (2–4 of label ≤60 chars / description / optional preview), multiSelect (default false)
  • Reserved labels rejected: Other, Type something., Next — the runtime appends its own free-text row
  • Validation: duplicate questions/labels, too few options, too many questions — all rejected with the same error strings
  • Envelope: User has answered your questions: "Q"="A". selected preview: … / User declined to answer questions on Esc

UI

Boxed dialog, one question at a time: progress dots, header chip, option list (pi-tui SelectList), preview pane for focused options, "Type something." → inline input, Enter next / Ctrl+S done (multiSelect) / Esc cancel.

ask_user_question example

Preview pane with a side-by-side comparison grid for the focused option:

ask_user_question preview comparison

Questions (1/3)           ● ○ ○          [Workspace]
Where to run ask frnd-chat-improvements? Active feature analyze-vision-billing exists…

→ Continue in main workspace (Re…
  Parallel ej workspace
  Type something.
─────────────────────────────────────────────
Enter next ↵ select → Type something. = custom ⇫ Esc cancel

Design

  • One tool, one boxed dialog, stateless — no lifecycle events, no config, no RPC fallback, no i18n
  • Multi-question questionnaire: progress dots, ←/→ navigation (answers preserved per question), Enter next, Ctrl+S commits multiSelect, Esc cancels
  • Options via pi-tui SelectList; focused option's full description + optional preview render in a pane below
  • "Type something." free-text row on every question; blank submit returns to options
  • Validation: reserved labels rejected (trimmed), previews only on single-select, 2-4 options, unique questions/labels
  • Envelope: User has answered your questions: "Q"="A". / decline on Esc

Development

bun install
npx tsc --noEmit
bun test   # pure-logic: validation guards + response envelope

License

MIT.