create-nacatamalon
v0.3.0
Published
Start a nacatamalon game: npm create nacatamalon@latest
Maintainers
Readme
create-nacatamalon
Start a game made with nacatamalon, the engine for games that look like 1997.
npm create nacatamalon@latestWith any package manager:
npm create nacatamalon@latest
pnpm create nacatamalon
yarn create nacatamalon
bun create nacatamalonIt 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-tsWith 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 keysThe 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 pluginThe 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 --installThere --install installs the dependencies but never starts the dev server: a command that does not end would leave the assistant waiting.
Links
- Docs, tutorial and examples: nacatamalon.com
- The engine on npm: nacatamalon
- Questions and games: Discord
License
MIT © 2026 Francisco José Pereira Alvarado.
