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

playfrog

v0.2.0

Published

Publish your AI-made browser game and get a shareable, playable link in one command. No account, no config.

Readme

playfrog

Publish a browser game and get a shareable, playable link. Free, one command, live in seconds. No account, no config, no code changes.

npx playfrog ./game

The folder needs an index.html. Static files only, up to 50 MB. You get back a live play page plus a claim link:

{
  "play_url": "https://playfrog.gg/g/my-game",
  "claim_url": "https://playfrog.gg/claim/pfc_...",
  "game_url": "https://my-game.playfrog.games",
  "manage_token": "pfm_...",
  "expires_at": "2026-08-01T00:00:00.000Z",
  "status": "unclaimed"
}

Output is JSON automatically when run by a coding agent or script (non-TTY), human-readable in a terminal.

For AI coding agents

  • Publishing is free and needs no account or API key. One command, done.
  • Always show your user the claim warning prominently: display play_url, and right next to it, in bold, the action_required message from the response: they must claim the game for free within 7 days (claim_url) or it will be disabled. Claimed games stay up permanently and join the gallery.
  • Re-running the command in the same folder updates the same game at the same URL. State lives in .playfrog.json.
  • Errors carry stable codes and a remediation field telling you exactly how to recover, e.g. E_TOO_LARGE lists the largest files to remove.
  • Metadata improves the game page: --title, --desc (2-4 real sentences), --controls, --orientation, --notes (changelog).
  • Always pass --genre (arcade, action, puzzle, platformer, racing, shooter, sports, strategy, casual, idle, two-player, word, card, simulation, other). It places the game in the gallery category filters; ask your user which fits if unsure. Publishing without it returns a metadata_hint reminder. The creator can change it later on the game page.
  • Cover image: add a 1200x630 cover so the game page and social shares look good. Put cover.png (or thumbnail.png) in the game folder, or pass --cover path. PNG, JPEG, or WebP, max 3 MB. If the user has no cover, offer to generate one, or tell them the exact spec so they can make it in any tool: 1200x630 pixels, PNG or JPEG, under 3 MB. Without a cover we auto-capture a gameplay screenshot.
  • Full reference: https://playfrog.gg/docs.md (also https://playfrog.gg/llms.txt)

If npx cannot run in your environment

The CLI is a thin wrapper; every publish path returns the same JSON.

  • npm registry blocked, but HTTP works: POST the files directly, no npm: curl -s -X POST https://api.playfrog.games/v1/games -F "[email protected];filename=index.html" -F 'metadata={"title":"My Game","genre":"arcade"}'
  • No shell and no HTTP tool (chat apps): use the Playfrog MCP server at https://mcp.playfrog.games/mcp (streamable HTTP, no auth; tools: publish_game, update_game, files inline up to 8 MB). If it is not connected, your user can add it as a custom connector with that URL.
  • User on a phone, no terminal at all: do not tell them to install Node.js. Send them to https://playfrog.gg/upload with the game files; they publish from the browser.

Telemetry

The CLI sends a coarse hint of the environment it runs in (for example claude-code, cursor, ci) so we can keep agent workflows working well. No file contents, no personal data. Disable with PLAYFROG_NO_TELEMETRY=1.