One command, and you have a little pixel game running in your browser. create-blit386 writes a ready-to-go
BLIT386 project – a starter game, a working build, and docs – so you can spend
the first five minutes playing instead of wiring things up.
npm create blit386@latest my-game
cd my-game
npm run devA web address appears. Open it. That is your game, already running. Open src/game.js and start changing things – every
line has a comment that explains itself.
It works with npm, pnpm, yarn, or bun – the scaffolder quietly uses whichever one you ran it with.
The wizard asks two quick questions (language, and whether you want an AI assistant set up), then writes:
- A Catcher starter game – a tiny, complete, heavily commented game you can read top to bottom.
- A Vite project that builds and runs with one command.
- JavaScript by default, or TypeScript if you ask for it (
--ts). - Local docs and an
AGENTS.md, so your editor's AI actually knows how the engine works. - The
blitCLI:blit run,blit doctor,blit upgrade, andblit agentsfor keeping assistant files current. - Optional Claude or Cursor config, generated from the kit's canonical content – pick one in the wizard, or add it later
with
npx blit agents add.
The command above needs Node.js – a free program that runs JavaScript on your computer. These instructions live here on purpose: a brand-new project cannot teach you to install the thing it needs to exist. One-time setup:
- Go to nodejs.org and download the button marked LTS ("the stable one").
- Install it like any other app: keep clicking Next or Continue.
- Open a terminal (your editor has one built in – in Zed or VS Code, look for "Terminal" in the menu). If the editor was already open, quit and reopen it first so it notices Node.
- Now run the three Start commands above, one line at a time.
Starting someone else off? Copy and paste this:
Want to make a little pixel game? First install Node.js: go to nodejs.org, download the LTS button, and install it like any app. Then open the terminal inside your editor and type these three lines, pressing Enter after each:
npm create blit386@latest my-game, thencd my-game, thennpm run dev. A web address appears – open it in your browser and you are playing your own game. Opensrc/game.jsto change it; every line has a comment that explains itself.
A pnpm monorepo with two published packages:
create-blit386(packages/create-blit386) – thenpm create blit386scaffolder: the wizard and the project templates.@blit386/kit(packages/kit) – the canonical AI docs (AGENTS.md+ localdocs/) and the project-localblitCLI (run,doctor,upgrade,agents sync,agents add).
pnpm install
pnpm run build # build both packages with tsup
pnpm run typecheck # tsc --noEmit per package
pnpm run test # scaffolder smoke test (needs a build first)
pnpm run preflight # format:check + lint + typecheck + spellcheck + knip + docs:links + build + testCI runs the same checks on every push and pull request to main. Publishing to npm is a deliberate, manual step (it is
not automated here). The full roadmap lives in CREATE_BLIT386_DESIGN.md.
- Docs: blit386.dev – the full BLIT386 documentation site.
- Engine: blit386 – the palette-first WebGPU retro engine these games run on (npm, docs).
- Demos: demos.blit386.dev – 34 small, commented examples.
Built by Václav Vančura (@vancura) – one person, so far.
ISC.