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

create-nacatamalon

v0.3.0

Published

Start a nacatamalon game: npm create nacatamalon@latest

Readme

create-nacatamalon

Start a game made with nacatamalon, the engine for games that look like 1997.

npm create nacatamalon@latest

With any package manager:

npm create nacatamalon@latest
pnpm create nacatamalon
yarn create nacatamalon
bun create nacatamalon

It asks for a name and a language, copies the template, and can install the dependencies and start the game for you. Nothing else to install first: you only need Node.js 20.19 or newer (Vite needs it too).

Without questions

Give the folder and the template on the command line:

npm create nacatamalon@latest my-game -- --template vite-ts
pnpm create nacatamalon my-game --template vite-ts
yarn create nacatamalon my-game --template vite-ts
bun create nacatamalon my-game --template vite-ts

With npm the options go after --, so npm hands them on instead of keeping them. Then:

cd my-game
npm install
npm run dev

(or pnpm install and pnpm dev, yarn and yarn dev, bun install and bun dev).

Templates

| Name | What it is | | --------- | ------------------------------ | | vite-ts | TypeScript with Vite (default) | | vite-js | JavaScript with Vite |

Both are the same small game, one file per thing:

index.html
AGENTS.md            ← for coding assistants: where things go, how to split, naming
CLAUDE.md            ← points Claude Code at AGENTS.md
public/              ← images, sounds and fonts, served as they are
src/
  main.ts            ← the game window and its scenes
  config.ts          ← the game's size in pixels
  scenes/game.ts     ← the first scene: start here
  objects/player.ts  ← a square you move with the arrow keys

The published game opens with "Made with NacatamalOn" (splash: true in src/main.ts). It never shows on localhost; set it to 'always' to see it while you work, or remove it.

A plugin

A plugin is a package other games import: a dialogue box, a health bar, a way to drag things. Answer "A plugin" to the first question, or name the template:

npm create nacatamalon@latest health-bar -- --template plugin

The folder gives its name, nacatamalon-health-bar, with its hook useHealthBar in src/use_health_bar.ts. npm run dev opens view/, the workbench to try it in; npm run demo the demo the store plays; npm test runs it in a game with no browser; npm run pack makes the .zip and .tgz to share. Its PLUGIN_GUIDE.md says how a plugin is made and the rules it keeps.

Options

| Option | What it does | | ----------------------- | --------------------------------------------------------------- | | -t, --template <name> | vite-ts, vite-js, react-ts, react-js, or plugin | | -f, --force | use the folder even if it is not empty | | -i, --install | install the dependencies (and, at a keyboard, start the game) | | --no-install | only copy the template | | --no-interactive | never ask: take the defaults for anything not given | | --interactive | ask even when a coding assistant is running it | | -v, --version | print the version | | -h, --help | show the help |

With a coding assistant

An AI can run it too. With no terminal to ask in (a script, CI), or when it detects a coding assistant (Claude Code, Cursor, Copilot, Codex, Gemini...), it asks nothing, even inside a real terminal: it takes the defaults for anything not given, prints plain text and refuses a folder that is not empty. Its output says what to do next, that dev keeps running, and that the project's AGENTS.md is the guide. In one go:

npm create nacatamalon@latest my-game -- --template vite-ts --install

There --install installs the dependencies but never starts the dev server: a command that does not end would leave the assistant waiting.

Links

License

MIT © 2026 Francisco José Pereira Alvarado.