@phaser-ae/cli
v0.8.0
Published
Phaser AE: build the games you design on phaser.io on your own machine, with your own coding agent.
Maintainers
Readme
Phaser AE CLI
Build Phaser AE games on your own computer with the coding agent you already use: Claude Code, the Claude app, Codex, Cursor, or any agent that can run a command. Design a game on phaser.io with a crew of bots, or start from an idea. Your agent builds it here, plays it to check it, and publishes it to phaser.io, where you playtest it and send changes back.
The game, the Phaser AE engine and its expansion packs sit in one folder on your disk. The build runs on your agent's plan, not phaser.io credits.
What you need
- Node.js 20 or later.
node --versiontells you which you have; nodejs.org has the installer. - A phaser.io account. The first command that needs it opens your browser so you can sign in and approve Phaser AE.
- A coding agent. You talk to it; it runs every command for you.
Get started
In the Claude app
Open the Code tab in an empty folder and ask:
Make me a Phaser AE game where a frog catches fireflies on a moonlit pond. Use npx -y @phaser-ae/cli.
Claude starts the game on phaser.io, gives you its links, builds it in the folder and publishes it. If Node.js is missing, it installs it first (on Windows, Windows asks you to allow it).
In Codex, in the ChatGPT app or the Codex CLI
Run this once in a terminal:
npx -y @phaser-ae/cli setupThen start Codex in an empty folder and ask it for "a Phaser AE game". Codex needs to reach the network and write outside the folder for the CLI's downloads and your sign-in, so allow it when it asks, or give it full access.
In a terminal, with Claude Code or another agent
npx -y @phaser-ae/cli setupThis signs you in and gives every coding agent on your computer the Phaser AE skill, so from then on you only need to ask for "a Phaser AE game". It finds every coding agent on your computer that reads Agent Skills (all 75 are listed under Coding agents) and puts the skill where each one reads its skills. The skill is for Phaser AE alone: a request for the open-source Phaser library is left to your agent as before.
To install the command for good instead of using npx:
npm install -g @phaser-ae/cliFrom a design you made on phaser.io
Design the game with the crew on phaser.io (phaser-ae new opens it). When the design is ready, the Chief gives you
one line to paste into your agent. It looks like this:
Build my Phaser AE game "Moon Hopper": run
npx -y @phaser-ae/cli build moon-hopper, then build the game in the folder it makes, as that folder's CLAUDE.md says, and publish it.
Coding agents
setup, build and blank give the Phaser AE skill to every one of these that is on your computer, in the folder
it reads a person's skills from. Agents that share a folder get one copy.
| Agent | Its skills folder |
|---|---|
| AdaL | ~/.adal/skills |
| AiderDesk | ~/.aider-desk/skills |
| Amp | ~/.config/agents/skills |
| Antigravity | ~/.gemini/antigravity/skills |
| Antigravity CLI | ~/.gemini/antigravity-cli/skills |
| AstrBot | ~/.astrbot/data/skills |
| Augment | ~/.augment/skills |
| Autohand Code CLI | ~/.autohand/skills |
| Claude Code | ~/.claude/skills |
| Cline | ~/.agents/skills |
| Code Studio | ~/.codestudio/skills |
| CodeArts Agent | ~/.codeartsdoer/skills |
| CodeBuddy | ~/.codebuddy/skills |
| Codemaker | ~/.codemaker/skills |
| Codex | ~/.agents/skills |
| Command Code | ~/.commandcode/skills |
| Continue | ~/.continue/skills |
| Cortex Code | ~/.snowflake/cortex/skills |
| Crush | ~/.config/crush/skills |
| Cursor | ~/.cursor/skills |
| Deep Agents | ~/.deepagents/agent/skills |
| Devin for Terminal | ~/.config/devin/skills |
| Dexto | ~/.agents/skills |
| Droid | ~/.factory/skills |
| Firebender | ~/.firebender/skills |
| ForgeCode | ~/.forge/skills |
| fx | ~/.agents/skills |
| Gemini CLI | ~/.gemini/skills |
| GitHub Copilot | ~/.copilot/skills |
| Goose | ~/.config/goose/skills |
| Grok Build | ~/.grok/skills |
| Hermes Agent | ~/.hermes/skills |
| IBM Bob | ~/.bob/skills |
| iFlow CLI | ~/.iflow/skills |
| inference.sh | ~/.inferencesh/skills |
| Jazz | ~/.jazz/skills |
| Junie | ~/.junie/skills |
| Kilo Code | ~/.kilo/skills |
| Kimchi | ~/.config/kimchi/harness/skills |
| Kimi Code CLI | ~/.agents/skills |
| Kiro CLI | ~/.kiro/skills |
| Kode | ~/.kode/skills |
| Lingma | ~/.lingma/skills |
| Loaf | ~/.agents/skills |
| MCPJam | ~/.mcpjam/skills |
| MiniMax Code | ~/.minimax/skills |
| Mistral Vibe | ~/.vibe/skills |
| Moxby | ~/.moxby/skills |
| Mux | ~/.mux/skills |
| Neovate | ~/.neovate/skills |
| Ona | ~/.ona/skills |
| OpenClaw | ~/.openclaw/skills |
| OpenCode | ~/.config/opencode/skills |
| OpenHands | ~/.openhands/skills |
| Pi | ~/.agents/skills |
| Pochi | ~/.pochi/skills |
| Posit Assistant | ~/.posit/assistant/skills |
| Qoder | ~/.qoder/skills |
| Qoder CN | ~/.qoder-cn/skills |
| Qwen Code | ~/.qwen/skills |
| Reasonix | ~/.reasonix/skills |
| Roo Code | ~/.roo/skills |
| Rovo Dev | ~/.rovodev/skills |
| Sarvam Code | ~/.agents/skills |
| Tabnine CLI | ~/.tabnine/agent/skills |
| Terramind | ~/.terramind/skills |
| Tinycloud | ~/.tinycloud/skills |
| Trae | ~/.trae/skills |
| Trae CN | ~/.trae-cn/skills |
| Warp | ~/.agents/skills |
| Windsurf | ~/.codeium/windsurf/skills |
| ZCode | ~/.zcode/skills |
| Zed | ~/.agents/skills |
| Zencoder | ~/.zencoder/skills |
| Zenflow | ~/.zencoder/skills |
Claude Code reads the game folder's CLAUDE.md; every other agent reads its AGENTS.md, which says the same.
Things to ask your agent
| Say | What happens | |---|---| | Make me a Phaser AE game | It starts the game on phaser.io straight away, with its crew, and asks what you'd like to make | | Build my design "…" | It downloads the design and builds it | | Play it and fix anything that feels wrong | It plays the game in a real browser, finds what's off and fixes it | | Find a pack for fog of war and add it | It searches the expansion packs and adds the one that fits | | Ask the crew for a logo and a title theme | The crew on phaser.io makes them, and your agent puts them in the game | | Show me the logo / What sprites are there? | That tool's bot answers, and what it shows is saved into the folder | | Use ~/Music/theme.mp3 as the music | It uploads your file to the game and uses it (Phaser Pro) | | Publish it | The next version, on phaser.io | | Bring down my Phaser changes and make them, then publish | Your notes from the playtest page, made | | What tools are there? | Every tool on phaser.io, each linked to your game | | How many credits do I have? | Your balance, and the page to buy more | | Update Phaser AE | The latest engine and CLI in this folder |
Playtesting
When a version is published, your agent asks whether you want to playtest it. Say yes and the playtest page opens in your browser: play the game, pause wherever something should change, draw on the screen, say what to change, and send it. Claude Code waits for your changes in the background, makes them and publishes the next version. With another agent, tell it: "Bring down my Phaser changes and make them, then publish".
The crew
Every game has a crew on phaser.io: the Chief, and the bots who make its logo, music, sound effects, sprites, pictures and title screen. Ask your agent for any of those and it asks the crew for you, follows them while they work, and brings their files into the game when they're done. When the Chief has a question, your agent asks you. The crew room on phaser.io shows it all live, your request included, and you can talk to the crew there too. The crew's work uses phaser.io credits.
Commands
Your agent runs these; you only need setup. Inside a game's folder the folder's own commands are npm scripts
(npm run -s build, npm run -s publish -- "…" and so on), and the folder keeps its own copy of the CLI.
Your account
| Command | Does |
|---|---|
| phaser-ae setup | Signs you in, and gives every coding agent on your computer the Phaser AE skill (--remove takes it out) |
| phaser-ae login / whoami / logout | Sign in again, see who you're signed in as, sign out |
| phaser-ae credits | Your credits and the packs on sale (--buy opens the page to buy more) |
Your games
| Command | Does |
|---|---|
| phaser-ae games | Your designs and games, and where to play them |
| phaser-ae new | Opens the crew on phaser.io to design a new game |
| phaser-ae design <game> | Opens a design on phaser.io |
| phaser-ae build <game> [folder] | A folder to build one of your designs in |
| phaser-ae blank [name] [folder] | A new game with no design, named or not (blank . makes it here). --idea "…", --core 2d\|3d\|vector, --landscape |
In a game's folder
| Command | Does |
|---|---|
| build | The gate: strict types, the game's rules, the bundle |
| smoke | Plays the game like a careless player, and reports |
| play -- "<steps>" | Plays it a step at a time in a real browser: keys, taps, shots, the game's state, cheats |
| serve | The game on localhost:4173, built again on every change (in the Claude app it opens beside the chat) |
| packs -- search\|info\|add\|list | The expansion packs |
| publish -- "<what changed>" | The next version, on phaser.io |
| playtest | Opens the latest version's playtest page |
| changes | Your notes from the playtest page (--wait waits for them to be sent) |
| crew -- "<request>" | Asks the crew for art or sound and brings it in (--follow, --answer "<reply>", --pull). With no request: who is on the crew and what each is doing |
| tool -- <tool> "<prompt>" | Asks one tool's bot (logo, sprites, music, sfx, images, title…); what it shows is saved in design/shown/ (--open opens it) |
| tools | Every tool, each linked to this game (-- <tool> --open opens one) |
| status | The game on phaser.io at a glance, with its links |
| gdd | The design document as it is now, into design/design.md |
| idea -- "<idea>" --title "<name>" | The game's idea and name onto its design on phaser.io |
| upload -- <file…> | Your own files into the game: pictures, sound, video, 3D models, fonts, text, data (Phaser Pro) |
| pull | The design again, as the crew has it now |
| phaser-ae room | The link to watch the game being built (--stop stops following the folder) |
| phaser-ae update | The latest engine and CLI in this folder |
| phaser-ae doctor | Checks this computer (--fix gets the browser games are played in) |
The game's folder
moon-hopper/
CLAUDE.md, AGENTS.md the brief your agent reads first (from phaser.io, so it keeps up with the engine)
package.json the folder's commands
.claude/ the game in the Claude app's browser pane, and the folder's commands allowed
design/ the design document, its pictures and sounds, your changes, what the crew made
game/ the game: yours to read and change
phaser/ Phaser AE, its tools, and the folder's own copy of this CLITroubleshooting
- Run
phaser-ae doctor, andphaser-ae doctor --fixto get the browser the agent plays games in. - A command that says it's waiting for you to approve Phaser AE: approve it in the browser tab it opened, then run the command again.
- On Windows, if you installed Node.js while the Claude app was open, restart the app so it can find it.
What it sends
With each request to phaser.io and api.phaser.io, the CLI says what it is, in an X-Phaser-AE-Client header: its
version, your platform and architecture, your Node.js version, the coding agent it seems to be running in, whether it's
running in CI, and, in a game's folder, which game and why it's downloading. phaser.io keeps it with its record of each
pack and engine download, to see which packs games use. It sends nothing that names you: your sign-in does that.
While a game is being built in its folder, the CLI follows the work for the build room on phaser.io: what the agent reads, writes, builds and plays, with paths outside the folder and anything that looks like a key, token or password left out.
It also sends what you ask your coding agent in the game's folder (Claude Code and Codex), with the same paths and
secrets left out. phaser.io keeps an anonymous summary of each request, never your words: what was asked for in the
game and what kind of change it was, with names and anything else personal removed. We use them to learn how people
make games and to make Phaser AE better. They're never shown in the build room or to anyone outside the Phaser team.
To turn it off, set PHASER_AE_NO_PROMPTS=1 in your environment.
License
MIT, for this CLI. It doesn't cover the Phaser AE engine or the expansion packs the CLI downloads.
