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

pi-idea

v0.3.0

Published

Turn a single-shot idea into a live, internet-accessible prototype — /idea, clarify, go, done.

Readme

pi-idea

Turn a single-shot idea into a live, internet-accessible prototype.

Type /idea new a multiplayer drawing game — Pi creates a workspace, asks clarifying questions, and when you say go, implements and tunnels the running app so anyone with the URL can try it.

No repo setup, no deploy config, no "let me spin up a server". Just an idea, a quick conversation to nail the scope, and a tunnel URL back.

How it works

You:  /idea new a todo app with auth and a dashboard
  ↓
Pi:   Creates ~/dev/ideas/todo-dashboard/
      Writes requirements.md, idea.json, runtime.json
      Asks you clarifying questions
      
You:  [answer questions, refine scope]
      ...then: go
  ↓
Pi:   Implements the app in the workspace
      Starts a dev server
      Opens a cloudflare tunnel (if available)
      Records the public URL in runtime.json
      
You:  Share the URL with anyone

Commands

| Command | What it does | |---------|-------------| | /idea new <description> | Start a new idea from a rough description | | /idea | Show current active idea or list existing ideas | | /idea use <name> | Attach to an existing idea workspace | | /idea status | Show active idea status & preview URLs | | /idea run [name] | Start the preview (server + tunnel) for an existing idea | | /idea ps / running | List all running ideas with their URLs and ports | | /idea go | Tell Pi to implement and run the active idea | | /idea stop | Stop the running app / tunnel | | /idea domain [domain] | Set or show global custom domain (stored in ~/.config/pi-idea.json) | | /idea token [token] | Set or show global Cloudflare API token (stored in ~/.config/pi-idea.json) | | /idea clear --yes | Detach from the active idea (skip confirmation) |

After /idea new, you can iterate naturally — the extension injects the workspace context into Pi's system prompt so "it", "the app", or plain go refer to your active idea.

Typos and fuzzy matching

Pi-idea includes fuzzy matching for subcommands. If you make a typo:

/idea statis
→ Unknown command: /idea statis
  Did you mean: /idea status?

/idea runing
→ Unknown command: /idea runing
  Did you mean: /idea running?

Common typos are automatically corrected, and similar commands are suggested using edit distance.

Why pi-idea?

  • Zero friction — no project scaffolding, no decisions upfront
  • Tunnel-first — when cloudflared is available, the app gets a public URL automatically
  • Iterate in chat — refine requirements, ask for changes, all in one session
  • Workspace-per-idea — each idea gets its own directory with requirements, source, runtime state

Install

pi install npm:pi-idea

Or test directly:

pi -e npm:pi-idea

Global Config: ~/.config/pi-idea.json

Domain and Cloudflare API token are stored globally — one setting for all ideas:

/idea domain 1clickdev.com         # sets globally
/idea token <your-cloudflare-token> # stored globally

After setting these, run /idea go on any idea — Pi will set up a named Cloudflare tunnel with:

  • Stable URL at https://<idea-name>.<domain> (e.g. https://my-app.1clickdev.com)
  • Cloudflared config at ~/.cloudflared/config.yml
  • DNS CNAME record created automatically
  • Tunnel credentials saved to ~/.cloudflared/<idea-name>-credentials.json
  • URL persists across restarts — use scripts/restart-server.sh to redeploy

The token and zone ID can also be set via environment variables:

  • PI_IDEA_CF_TOKEN — Cloudflare API token
  • PI_IDEA_CF_ZONE_ID — Cloudflare zone ID (optional, resolved automatically)

Required token permissions

  • Cloudflare Tunnel: Edit
  • DNS: Edit

If no domain or token is configured, pi-idea falls back to quick tunnels as before.

Configuration

Set the ideas workspace root via the PI_IDEA_ROOT environment variable:

export PI_IDEA_ROOT=~/projects/my-ideas

Defaults to ~/dev/ideas/ when unset.

Workspace layout

<ideas-root>/<short-name>/
  requirements.md    — living spec, updated as you refine
  idea.json          — metadata (name, status, timestamps)
  runtime.json       — preview URLs, port, running state
  src/               — implementation
  docs/              — documentation
  scripts/           — run.sh, stop.sh, tunnel-run.sh

Pi keeps runtime.json up to date so you always know where the app is — local URL, public tunnel URL, and which one is preferred.

When a custom domain is configured, Cloudflare tunnel credentials are stored in ~/.cloudflared/:

  • ~/.cloudflared/<idea-name>-credentials.json — tunnel secret
  • ~/.cloudflared/config.yml — ingress rules for all named tunnels