How to Use GameMaker GM-CLI with Claude Code - First Terminal Agent Evening 2026

If you are searching gamemaker gm-cli, you do not need another Unity CLI essay. You need a Monday path: install Node, run @gamemaker/gm-cli via npx, init or open a throwaway project, prove compile / run, decide how Claude Code is allowed (opt-in, not silent), and file keep or hold before any agent or GitHub Action touches a shipping branch.
On April 30, 2026, Opera’s GameMaker newsroom announced GMRT (new GameMaker Runtime) alongside GM-CLI—a command-line toolchain that works with both the new and existing runtimes—and Claude Code in that CLI so developers can query projects, hunt bugs, and manage builds through natural language in the terminal.Opera Newsroom Game Developer The live package path is npm’s @gamemaker/gm-cli (2.2.0 line as of Jun 5, 2026) and the public YoYoGames/gm-cli repo.
Who this is for: GameMaker creators who want terminal CI and agent workflows; beginners who only ever clicked the IDE; leads who need governance language for “Claude can edit our .yyp tree.”
Time: 90–150 minutes for a first agent-safe smoke on a branch or throwaway project.
Honest limit: Claude Code in GM-CLI is opt-in tooling, not a mandatory IDE rewrite. Russell Kay’s framing to Game Developer: complementary tools, no embedded AI servers required to keep shipping without them.Game Developer
Non-repetition: This is not the Unity CLI agent-safe evening (Unity unity binary + Pipeline). It is not GameMaker Photon multiplayer or Discord Social SDK Rich Presence. It is not Cyberpunk Fest themed-sale ops. Same “first evening keep/hold” discipline—different binary.
Why this matters now
- Terminal is where agents and CI already live. Opera’s GMRT launch positions GM-CLI as the path to work without touching the IDE, with plain-text project files that track properly in Git and plug into automated builds.Opera Newsroom
- Claude Code is in the official toolchain—not a random Discord bot. GameMaker bundled Anthropic’s agent into the CLI story so natural-language prompts can query structure, debug, and manage build configuration—while remaining opt-in.Game Developer
- SERP is announcement-heavy. Press and npm README cover install flags; they do not ship an indie G1–G6 keep/hold that separates guest license smoke from access keys, AGENTS.md/MCP forward holds, and Unity CLI cousin confusion.
Parent demand under GameMaker stays large (SiteStatsDB-class snapshots put gamemaker.io around ~193K monthly organic visitors). The official npm package shows ongoing install activity (npm-class weekly downloads in the mid-hundreds for @gamemaker/gm-cli)—independent proof that people are actually installing the CLI, not only reading the press release.
What GM-CLI is (and is not)
| Surface | What it does | Use tonight? |
|---|---|---|
@gamemaker/gm-cli |
Official CLI to edit, compile, package, run GameMaker projects | Yes — start here |
gm-cli init |
Create blank or template project | Yes for throwaway smoke |
compile / run / package |
Build and launch without IDE clicks | Yes — human smoke first |
| Claude Code (in CLI) | Natural-language project/debug/build prompts | Optional after G1–G4 |
| AGENTS.md / MCP / Claude config | Agent integration surfaces called out in the CLI docs | Hold until human compile is green |
| GMRT | New GameMaker Runtime (desktop first; broader source-available roadmap) | Know it exists; do not block tonight on full GMRT migration |
| Unity CLI | Different engine’s terminal agent stack | Cousin discipline only — Unity CLI guide |
| IDE-only workflow | Classic GameMaker editor clicks | Still valid — GM-CLI is complementary |
Opera’s release notes: GM-CLI works with both the new and existing runtimes; Claude Code sits in the CLI so you can describe what you want to build, test, iterate, or ship.Opera Newsroom
Prerequisites
Confirm every line before you paste npx into a machine that also holds Steamworks and Discord secrets.
- [ ] Node.js with
npm/npx(required by the official CLI README).gm-cli - [ ] Terminal you control (Windows PowerShell, macOS Terminal, or Linux shell)—not a shared kiosk.
- [ ] Disk space for runtime/toolchain downloads the CLI may fetch on first compile/run.
- [ ] A throwaway project or git branch—never first-smoke on
mainof a live Steam title. - [ ] Named session owner who files the receipt.
- [ ] Written agent policy: Claude/MCP off until G1–G4 pass; secrets never in chat transcripts.
If you only want the IDE forever, you can skip this evening. If you want CI, plain-text Git, or opt-in Claude in the terminal, continue.
For IDE literacy before CLI, use the GameMaker Studio guide hub.
Beginner path - first evening without an agent
Step 1 - Confirm Node, then invoke the CLI
Official pattern from YoYoGames:
npx @gamemaker/gm-cli@latest --help
Or install globally if you prefer a short command:
npm install -g @gamemaker/gm-cli@latest
gm-cli --help
Pin a version in CI later (@2.2.0 style)—tonight @latest is fine for learning, then record the exact version in the receipt.npm package
Step 2 - Create or open a throwaway project
npx @gamemaker/gm-cli@latest init
Follow prompts for blank game or template. If you already have a project, cd into it and skip init. Prefer a disposable folder named something like gm-cli-smoke-2026 so nobody mistakes it for shipping content.
Step 3 - Guest license honesty
The CLI docs note it can give you a guest license so you do not need to sign in for basic work—and that you may prefer your own access key from GameMaker account settings when you want owned licensing.gm-cli README
Tonight:
- Try the default guest path for compile/run smoke.
- If guest fails or policy requires named seats, create/access an access key from GameMaker access keys and configure per
--help/ auth commands—never commit keys to git.
Step 4 - Human compile and run smoke
From the project directory:
npx @gamemaker/gm-cli@latest compile --help
npx @gamemaker/gm-cli@latest compile
npx @gamemaker/gm-cli@latest run
Use --help on each command to see target, runtime, and toolchain options before you invent flags from memory.gm-cli
Pass criteria for tonight’s human smoke:
- Compile exits successfully (or fails with a readable project error you can fix).
- Run launches the expected window/player for your target.
- You can point to the git commit (or folder snapshot) that produced the smoke.
Do not enable Claude until this human path is green.
Step 5 - Optional Claude Code smoke (still gated)
Only after G1–G4:
- Confirm Claude Code is available through the CLI surface your install exposes (opt-in—not silent).Game Developer
- Give a read-only style prompt first: “List top-level project structure” / “Summarize build config files”—not “rewrite netcode.”
- Review any file diffs in git before accepting.
- Re-run
compileafter agent edits.
If Anthropic/Claude auth is required on your machine, store credentials outside the repo. Treat agent transcripts as untrusted logs—they can leak paths and keys.
Step 6 - File the evening receipt
Write six lines before you close the laptop:
- Node version +
@gamemaker/gm-cliversion. - Guest vs access-key path used.
- Commands that passed (
compile/run). - Claude used? yes/no + prompt scope.
- Pass/fail on G1–G6.
- Keep or hold for MCP/CI.
Developer path - gates, hygiene, and honest limits
G1–G6 keep/hold gates
| Gate | Pass if… | Fail mode |
|---|---|---|
| G1 Node + CLI | npx @gamemaker/gm-cli@latest --help works |
Missing Node; corporate proxy blocks npm |
| G2 Throwaway scope | Smoke on branch or disposable project | First experiment on live Steam main |
| G3 License path | Guest or access-key documented; keys not in git | Access key committed; unclear who owns the seat |
| G4 Human compile/run | Compile + run succeed without agent | “Agent will fix it” before human baseline |
| G5 Claude scope | Opt-in; read-first prompts; diffs reviewed | Silent agent writes; no git review |
| G6 Receipt | gamemaker_gm_cli_receipt_v1.json filed |
Verbal “it worked” only |
Latch gm_cli_terminal_ok only when G1–G6 pass. Do not latch on “npx downloaded something” alone.
Sample receipt JSON
{
"schema": "gamemaker_gm_cli_receipt_v1",
"session_date": "2026-07-24",
"node_version": "20.x",
"gm_cli_version": "2.2.0",
"license_path": "guest",
"project": "gm-cli-smoke-2026",
"commands": {
"help_ok": true,
"compile_ok": true,
"run_ok": true
},
"claude_code_used": false,
"mcp_enabled": false,
"gates": {
"G1": true,
"G2": true,
"G3": true,
"G4": true,
"G5": true,
"G6": true
},
"gm_cli_terminal_ok": true,
"next_hold": ["agents_md", "mcp_server", "github_actions_compile"]
}
GM-CLI vs Unity CLI vs IDE (pick jobs)
| Job | Prefer | Do not pretend |
|---|---|---|
| GameMaker terminal compile/CI | GM-CLI | Unity CLI flags |
| Unity Editor agent eval | Unity CLI + Pipeline | gm-cli on a .yyp |
| Visual GML debugging | GameMaker IDE | Terminal-only forever |
| Multiplayer rooms | Photon evening | Claude “will invent netcode” |
| Discord presence | Discord Social SDK evening | CLI as social SDK |
AGENTS.md, MCP, and Claude config (forward hold)
The gm-cli docs call out AI agent integration via AGENTS.md, MCP, and Claude config as intended surfaces.gm-cli Treat them as second evening work:
- Human compile/run green.
- Written allowlist of files agents may touch.
- Branch protection on
main. - Then add AGENTS.md / MCP with least privilege.
Do not paste a Unity MCP mcp.json into a GameMaker repo and expect it to work.
GitHub Actions sketch (after G1–G6)
Conceptual job (adapt to your org’s Node cache and secrets store):
# sketch only — verify against current gm-cli help before shipping
jobs:
gm-compile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
- run: npx @gamemaker/[email protected] compile
# inject access key via secrets if guest is insufficient
Pin the CLI version. Never echo access keys in logs. Fail the job on non-zero exit codes.
Company / diligence notes
Partners will ask:
- Is AI required to use GameMaker? No—CLI Claude is opt-in; IDE workflows remain valid.Game Developer
- What data leaves the machine? Document Claude/Anthropic usage separately from guest compile; do not imply “local only” if prompts go to a cloud model.
- Who can enable agents? Named owners + G1–G6 before MCP.
- CI licensing? Guest vs access-key policy written; keys in secret stores only.
- GMRT migration? Separate roadmap decision—do not block terminal smoke on full runtime cutover.Opera Newsroom
Common mistakes (and the fix)
- Copying Unity CLI install curls — wrong binary. Use
npx @gamemaker/gm-cli@latest. - Skipping Node — CLI requires npm/npx.gm-cli
- Agent-first, compile-never — establish human baseline first.
- Committing access keys — rotate immediately; use secrets managers.
- Assuming Claude is always on — leadership framing is opt-in.Game Developer
- Mixing Photon/Discord evenings into the same receipt — separate stacks, separate gates.
- Unpinning
@latestin CI — pin versions for reproducibility. - Running first smoke on the live Steam depot project — use throwaway or branch.
Prompt templates (Claude on, after G4)
Use these only on a throwaway branch. Paste results into the receipt.
Read-only structure
List the top-level files and folders in this GameMaker project. Do not modify any files. Flag anything that looks like secrets (keys, tokens,
.env).
Build config summary
Summarize how this project is configured to compile for Windows desktop. Quote file names you relied on. Do not edit files.
Supervised fix (only after read-only worked)
The last
gm-cli compilefailed with this error:…paste…Propose the smallest fix. Show the exact file paths and diffs. Wait for my approval before writing.
Reject prompts like “make the whole game multiplayer” or “add Discord + Photon tonight.” Those belong in their own evenings.
Platform and toolchain notes
| Concern | Practical note |
|---|---|
| Windows | Prefer PowerShell or Windows Terminal; watch antivirus quarantine of freshly downloaded runtimes. |
| macOS | Confirm Node is on PATH for the same shell you use in CI docs. |
| Linux CI | Headless runners need enough disk for runtime fetch; cache where your org allows. |
| Targets | Always run compile --help / run --help before inventing target values. |
| IDE open simultaneously | Avoid two writers on the same project files; close IDE or use a separate clone for CLI experiments. |
Package and publish surfaces (hold until compile is boring)
The CLI also documents packaging and related publish helpers (including gx.games-oriented commands in the README family). Treat package and store uploads as after G1–G6 and after your Steam/itch evening playbooks—not as the same night as first npx --help.gm-cli Pair Steam export with demo export sanity when that is the real job.
Risk matrix for enabling Claude
| Risk | Symptom | Mitigation |
|---|---|---|
| Secret leak | Access key in chat or commit | Secrets manager; scrub transcripts |
| Silent breakage | Agent edits without compile | Mandatory re-compile after every write |
| Scope creep | “While you’re here, refactor…” | One prompt = one outcome |
| License ambiguity | CI fails auth Mondays | Document guest vs key; store key in CI secrets |
| Wrong-engine muscle memory | Unity flags in GM repo | Link Unity CLI cousin; keep cheat sheets separate |
Troubleshooting
npx cannot find package / network error
Fix Node install, proxy, or registry allowlist for registry.npmjs.org. Corporate mirrors must permit @gamemaker/gm-cli.
--help works but compile downloads forever
Expect first-run toolchain fetch. Check disk space and firewall. Do not cancel mid-download and assume corruption without retrying once.
Compile fails with project errors
That is progress—CLI is honest. Fix GML/assets in IDE or with a supervised Claude prompt, then recompile. Do not blame Node.
Guest license insufficient
Move to access keys; never paste keys into Discord. Re-run auth per current CLI help.
Claude available but “does nothing useful”
Confirm opt-in/auth for the agent surface; start with read-only prompts; verify you are in the project directory the agent can see.
IDE and CLI fight over files
Use separate clones or close the IDE during CLI agent writes.
Sample evening timeline (strict)
| Minute | Task | Exit criteria |
|---|---|---|
| 0–15 | Install/confirm Node; npx … --help |
G1 pass |
| 15–40 | init or open throwaway; license path noted |
G2–G3 |
| 40–80 | compile + run human smoke |
G4 |
| 80–110 | Optional Claude read-only prompt + recompile | G5 or explicit skip |
| 110–130 | Receipt + keep/hold for MCP/CI | G6 |
When to hold (do not force keep)
Hold Claude/MCP/CI if:
- Compile fails for project reasons you do not understand yet.
- Corporate npm registry blocks
@gamemaker/gm-cli. - Legal has not approved cloud LLM prompts on proprietary GML.
- You are mid–Steam setlive and cannot risk toolchain downloads tonight.
Keep GM-CLI for human compile/run if G1–G4 pass even when Claude stays off.
Forward path after a green evening
- Pin CLI version in a
package.jsonscript or CI pin. - Add a weekly
compileAction on PRs. - Author AGENTS.md with file allowlists.
- Revisit GMRT language roadmap (JS/TS/C#) as a separate migration playbook.Opera Newsroom
- Only then expand Claude from read-only to supervised write prompts.
Key takeaways
- gamemaker gm-cli in 2026 means official
@gamemaker/gm-clion npm—not a Unity binary. - Opera’s Apr 30 launch paired GMRT + GM-CLI + Claude Code; Claude remains opt-in.
- Start with Node +
npx @gamemaker/gm-cli@latest --help. - Prove human
compile/runbefore any agent writes files. - Guest license can unblock first smoke; access keys stay out of git.
- File G1–G6 before enabling AGENTS.md/MCP.
- Pin versions in CI; do not rely on
@latestforever. - Do not confuse GM-CLI with Unity CLI, Photon rooms, or Discord Social SDK.
- Plain-text projects + Git are part of the GMRT/CLI story—use branches.
- Document LLM data handling separately from local compile success.
- Hold agents during Steam upload weeks unless G1–G6 already green.
- Cite Opera newsroom + Game Developer + npm/GitHub when partners ask what changed.
FAQ
Do I need Claude Code to use GM-CLI?
No. You can install and run compile / run / package without enabling AI. Claude is positioned as an opt-in workflow inside the CLI story.Game Developer
How do I install GameMaker GM-CLI?
Install Node, then npx @gamemaker/gm-cli@latest --help, or npm install -g @gamemaker/gm-cli@latest.gm-cli
Is a GameMaker IDE license required tonight?
The CLI documents a guest license path for getting started, with optional access keys for owned licensing. Confirm your studio policy before CI at scale.gm-cli README
How is this different from Unity CLI?
Different engine, different package, different flags. Unity’s path is covered in How to Use Unity CLI - First Agent Safe Editor Session 2026. Do not mix install scripts.
Does GM-CLI replace the GameMaker IDE?
No. It complements the IDE for terminal, CI, and agent workflows. Many creators will keep using the editor for day-to-day GML.Opera Newsroom
What about GMRT vs the old runtime?
GM-CLI is described as working with both new and existing runtimes. Full GMRT migration is a separate decision from tonight’s terminal smoke.Opera Newsroom
Can I use this in GitHub Actions?
Yes as a pattern—after G1–G6, pin a CLI version, inject secrets safely, and fail on non-zero exits. Validate flags against current --help before you trust a sketch.
Where is official truth?
Opera GMRT announcement, Game Developer Claude/CLI coverage, YoYoGames/gm-cli, and npm @gamemaker/gm-cli.
Related reading
- How to Use Unity CLI - First Agent Safe Editor Session 2026
- How to Use Photon Multiplayer in GameMaker - First Realtime Room Evening 2026
- How to Use Discord Social SDK in GameMaker - First Rich Presence Evening 2026
- How to Make a Rhythm Game in GameMaker - First Music Sync Evening 2026
- Your First GameMaker Steam Demo Export Sanity Check
- GameMaker Studio Guide Hub
- Claude Code Manual Permission Governance