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

add-sandbox

v0.1.1

Published

Add production-shaped Vercel Sandbox code to an existing app: profiles, client, a mounted handler, env examples, and agent context.

Readme

add-sandbox

Adds working, production-shaped Vercel Sandbox code to an app you already have. It never creates a project.

npx add-sandbox

You see a summary of what was detected, answer one question (what the sandbox is for), press Enter, and get:

  • lib/sandbox/profiles.ts — five documented presets; the comments are the docs, grounded in the current SDK defaults and plan limits.
  • lib/sandbox/client.ts — create / get-or-create / fork / with-sandbox wrappers that apply the profile and the right auth path.
  • lib/sandbox/handler.ts — one framework-agnostic Request → Response handler for the chosen workload.
  • A route shim at the right path for your framework, or the exact lines to paste when there is no file convention.
  • An appended block in .env.example and in every agent-instructions file you already have (AGENTS.md, CLAUDE.md, .cursorrules, …).
  • lib/sandbox/manifest.json — what was written, with hashes, so reruns are idempotent and remove is safe.

Then it installs @vercel/sandbox and runs your project's own tsc to prove the result compiles.

Detected, not asked

Package manager, framework (Next.js App Router, SvelteKit, Nuxt, Hono; anything else gets the handler plus mount lines), TypeScript vs JavaScript, src/ layout, tsconfig import aliases, monorepo workspaces, whether the directory is linked to a Vercel project (OIDC vs access-token auth), and whether ai or workflow are installed (which changes what is generated). Python projects get the same treatment with the vercel package and a FastAPI router.

Profiles

| Profile | Shape | | --- | --- | | code-interpreter | One request, one throwaway VM. 1 vCPU, non-persistent, deny-all egress. | | preview | Named persistent sandbox per preview; resumes and restarts its dev server; port exposed. | | build-test | Warm persistent sandbox per repo with dependencies installed; each run is an ephemeral fork. Sync or async. | | agent-workspace | One persistent sandbox per user, resumed on demand, tagged for tenancy. | | multi-agent | One VM, one Linux user per agent, shared group directory. JS only. |

Flags

-p, --profile <id>     skip the question
    --mode sync|async  build-test only
-w, --workspace <dir>  monorepo package to target
-y, --yes              accept the summary
    --dry-run          plan only
    --no-install, --no-typecheck, --json

npx add-sandbox remove deletes everything the manifest lists that you have not edited.

Constraints it keeps

It never parses or edits your existing source. It refuses to overwrite a file it did not write. Files you have edited since the last run are left alone (and the route that mounts an edited handler with them). Imports resolve through your alias when one covers the target, relative paths otherwise.