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

getonup

v0.6.0

Published

getonup CLI — deploy any AI artifact (HTML, React, Vue, static folder) to a live URL on your self-hosted, scale-to-zero getonup server.

Readme

✨ getonup

Your AI artifact, live in seconds.

Turn any AI-generated web artifact — an HTML file, a React/Vue component, or a built static folder — into a live, shareable URL with one command. Open-source, self-hosted, scale-to-zero.

getonup deploy counter.tsx
✓ live → https://pages.example.com/s/iwcmg3dt

License: MIT  ·  one Worker + R2  ·  scale-to-zero  ·  agent-native


Why

AI assistants generate gorgeous little apps — but they're trapped in a chat window. getonup publishes them to a real URL from the command line, on infrastructure you own:

  • One commandgetonup deploy app.tsx prints a live URL. No build step, no boilerplate.
  • Agent-native — drop a snippet in AGENTS.md and any coding agent can publish its own work.
  • Auto-wrap — hand it a bare .tsx/.vue/.js and it becomes a self-contained, runnable page (React 18 + Babel + Tailwind, Vue 3). HTML files and static folders are served as-is.
  • Self-hosted & scale-to-zero — one Cloudflare Worker + an R2 bucket, ~$0 when idle. MIT.

Install

The CLI is published on npm. To publish to an existing getonup server:

npm i -g getonup                  # or run it ad-hoc with: npx getonup <args>
getonup login --url https://pages.example.com --token <token>
getonup deploy counter.tsx

To run your own server (no Cloudflare account needed), keep reading.


Run it locally (no Cloudflare account)

npm run dev runs the whole server on your machine via Wrangler's local miniflare storage — no Cloudflare account, no login, no bucket. The fastest way to try it:

git clone https://github.com/vitorbaptista/getonup.git && cd getonup
npm install
npm run setup        # builds + links the getonup CLI, writes a local deploy token, prints the next step
npm run dev          # serves at http://localhost:8787  (Ctrl-C to stop)

npm run setup prints a ready-to-run getonup login line with your generated token. In a second terminal:

getonup login --url http://localhost:8787 --token <token-from-setup>
getonup deploy examples/counter.tsx        # auto-wrapped React → http://localhost:8787/s/<id>
getonup serve  examples/counter.tsx        # …or just preview it — no server, no token

Ready for a public URL? See Self-hosting on Cloudflare ».


Using the CLI

getonup deploy index.html              # a full HTML file → served as-is
getonup deploy counter.tsx --open      # a React component → auto-wrapped & opened in your browser
getonup deploy card.vue                # a Vue SFC → auto-wrapped
cat art.html | getonup deploy -        # pipe from stdin
getonup deploy ./dist                  # a built static site (uses index.html, else the only top-level HTML file)
getonup deploy app.tsx --id my-app     # redeploy to a stable URL (/s/my-app), overwriting in place

getonup list                           # everything you've published
getonup rm <id>                        # take one down
getonup serve app.tsx --watch          # local preview with live-reload (no deploy, no token)

deploy prints the live URL as the last stdout line — --json for structured output, --quiet for just the URL. Full command + flag reference: docs/CLI.md.

What you can deploy

| You give it | getonup does | |---|---| | .html (full document) | serves it verbatim | | .html (fragment) | wraps it in a minimal styled page | | .jsx / .tsx | React 18 + Babel + esm.sh import map + Tailwind; mounts your default export | | .vue | Vue 3 + vue3-sfc-loader | | .js / .ts | a module shell, transpiled, with an esm.sh import map for bare imports | | a directory | uploads the folder as a static site (serves index.html, else the only top-level HTML file, or --index-file <file>) |

imports for npm packages (lucide-react, recharts, …) resolve at runtime via esm.sh — no bundler. --no-wrap hosts raw source, --type overrides detection, --no-tailwind skips the Tailwind CDN.

Static & client-side only. Wrapped pages load their dependencies from CDNs at runtime; there's no server-side code (that's what keeps it scale-to-zero). Details + air-gapped notes in Self-hosting › Limitations.


Give it to your agent

The point of getonup: your coding agent publishes its own work. Add this to your project's AGENTS.md (or CLAUDE.md, .cursorrules, …):

## Publishing artifacts
To share a web artifact (HTML page, React/Vue component, or built static site) as a live URL,
run: `getonup deploy <file-or-dir>` and give the user the printed URL.
- Single components are auto-wrapped (React/Vue/Tailwind) — just point at the .tsx/.vue/.html.
- Use `--json` to parse the result.

A ready-to-copy block is in AGENTS.md, and there's a Claude Code skill in skills/getonup.

…or as an MCP server: getonup mcp exposes deploy_artifact, list_deploys, and remove_deploy over stdio to any MCP-aware agent:

{ "mcpServers": { "getonup": { "command": "getonup", "args": ["mcp"],
  "env": { "GETONUP_URL": "https://pages.example.com", "GETONUP_TOKEN": "your-token" } } } }

The getonup command

getonup is the CLI. Config lives in ~/.config/getonup/config.json, or pass GETONUP_URL / GETONUP_TOKEN env vars (handy for CI and agents). Deploying to more than one server? Give each a named profile and switch with --profile <name> (or GETONUP_PROFILE). From the repo without installing: npm run getonup -- <args>.


More

License

MIT — getonup contributors.