00 · Shift memo
Welcome to the payroll
You've shipped games before. Good. That experience is exactly what this job needs; we're just changing who does the typing.
Goblin Express has hired an assistant called Claude. It reads the whole warehouse in seconds, writes code, runs it, and fixes what it broke. It does not get tired and it does not eat the parcels, which already makes it our best employee.
It is also very confident, occasionally wrong, and will happily build the wrong thing beautifully if you give it vague directions. Your job is to direct it like a lead, not type for it like a junior. By the end of today you'll have a delivery game running in your browser that you didn't hand-write.
— G.
By the end of this module you will
- Have Claude Code installed, signed in and passing its own health check.
- Understand the agent loop well enough to predict what it will do next.
- Ask for the approach before the code, and push back when it's wrong.
- Have a playable Goblin Express prototype open in your browser.
Before you start: you need a paid Claude plan (Pro or higher) or an Anthropic Console account with billing set up. A Mac on macOS 13 or later, or a 64-bit PC on Windows 10 version 1809 or later. No Node.js required.
01 · How the agent works · 10 min
It's a courier, not autocomplete
Chat assistants hand you code to paste. Claude Code works inside your project folder: it reads files, runs commands, edits code and checks the result, in a loop, until the job is done or it needs you.
Three things follow from this that will save you hours this course:
- Outcomes beat instructions. "Parcels should feel heavy when carried" gives Claude room to read your code and find the right place. "Change line 40" makes it a typist.
- It only knows what's in the folder and the conversation. Your design intent, your engine conventions and your taste are invisible until you write them down. (Week 2 is about exactly this.)
- It checks its work only as well as it can observe it. Today you'll be the eyes. Week 3 teaches Claude to playtest for itself.
Company policyKnow the route before you run. For anything bigger than a tweak, ask Claude how it intends to do the job before it starts.
02 · Install Claude Code · 20 min
Get your uniform
Pick your platform. Claude Code's native installer handles everything, including updates, and needs no Node.js.
Open Terminal
Press Cmd + Space, type
Terminal, press Enter. Already live in iTerm, Ghostty or Warp? Use that.Check for Git
Terminalgit --version
If it prints a version number, you're set. If macOS offers to install the command line developer tools, click Install and let it finish; that's Apple's Git, plus the compilers some tools expect. No prompt? Run
xcode-select --install. Claude uses Git constantly, and you'll lean on it from Week 2.Run the installer
Terminalcurl -fsSL https://claude.ai/install.sh | bash
You can run it from any folder. It can look stuck for a minute or two while it downloads, which is normal. You're done when it prints Claude Code successfully installed!
Read the Setup notes at the end of the output. If they say the install folder isn't in your PATH, run the fix under command not found: claude below before moving on.
Prefer Homebrew?
brew install --cask claude-codeworks too, but Homebrew installs don't auto-update; runbrew upgrade claude-codenow and then.Check the install
Open a new Terminal window, then run these (note the two dashes in
--version):Terminalclaude --version claude doctor
The first prints a version number. The second checks your setup and should end with No installation issues found. Lines saying you're not signed in are expected; you'll sign in in a minute.
Incident reports (Mac)
command not found: claude the install folder isn't on your PATH
The installer prints the exact fix under Setup notes at the end. For zsh, the macOS default:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc source ~/.zshrc
Open a new window and try claude again.
HTML in the terminal, or "syntax error near unexpected token" got a web page instead of the script
Run the command again. If it keeps happening, install with Homebrew instead. If the page says the app is unavailable in your region, Claude Code isn't offered in your country yet.
dyld errors, or "built for Mac OS X 13.0" macOS too old
Claude Code needs macOS 13 or later. Check under Apple menu → About This Mac, and update through Software Update.
Install Git for Windows (recommended)
Download it from git-scm.com/downloads/win and accept the defaults. Git is the tool Claude uses to save and undo your work, and it includes Git Bash, a shell Claude prefers for running commands. Without it, Claude Code uses PowerShell instead, which also works.
Open Terminal
Press Win + X and choose Terminal. On Windows 10 the entry may be called Windows PowerShell instead. Either way you get a PowerShell window: the prompt starts with
PS, likePS C:\Users\you>. NoPSmeans you're in CMD. Avoid any entry marked (Admin) or (x86).The folder it opens in is fine. You can run the installer from anywhere.
Run the installer
PowerShellirm https://claude.ai/install.ps1 | iex
It can look stuck for a minute or two while it downloads. That's normal, so leave the window open. When it finishes, you'll see something like this:
Example outputSetting up Claude Code... ✔ Claude Code successfully installed! Version: 2.1.310 Location: C:\Users\you\.local\bin\claude.exe ⚠ Setup notes: • Native installation exists but C:\Users\you\.local\bin is not in your PATH. ...Read the Setup notes. If they say the install folder is not in your PATH, Windows doesn't know where to find
claudeyet, and the next step will fail. Fix it now by pasting these two lines into the same window:PowerShell$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User') [Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')Nothing prints when it works. No Setup notes at all? Skip this.
Prefer to click? fix PATH in Windows settings
- Press the Win key, type
environment variables, and choose Edit environment variables for your account. - Under User variables, select the existing Path row and click Edit.
- Click New and paste the folder from the installer's Location line, without
claude.exeon the end. For example,C:\Users\you\.local\bin. - Click OK in each window to close them all.
Add the folder to the existing Path entry. Creating a new variable, or pointing at
claude.exeitself, won't help Windows find it.Stuck in CMD? Use
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd. Using WinGet?winget install Anthropic.ClaudeCode.- Press the Win key, type
Check the install
Close every Terminal window so the PATH change takes effect, open a new one, then:
PowerShellclaude --version claude doctor
Note the two dashes in
--version. The first command prints a version number, like2.1.310 (Claude Code). The second checks your setup and should end with No installation issues found. Lines saying you're not signed in are expected; you'll sign in in a minute.
Incident reports (Windows)
'claude' is not recognized install folder isn't on your PATH
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')Close PowerShell, open a new window, try again.
'irm' is not recognized you're in CMD
Open PowerShell instead, or use the CMD command in the note above.
Could not create SSL/TLS secure channel older Windows 10
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 irm https://claude.ai/install.ps1 | iex
"does not support 32-bit Windows" wrong PowerShell
You opened Windows PowerShell (x86). Close it and open the entry without "(x86)".
Prefer a Linux environment? WSL
If you already develop in WSL, open your WSL shell and run the macOS/Linux command, curl -fsSL https://claude.ai/install.sh | bash, there. Keep the project inside the WSL filesystem. For this course, native Windows is the simpler path, and it's what Unity and Unreal weeks assume.
Sign in
Make a folder for the course and start Claude in it. These commands work in both Terminal and PowerShell:
mkdir goblin-express cd goblin-express claude
The first time you run claude, it walks you through a few one-time setup screens. You can't click in the terminal: use the ↑ ↓ arrow keys to move and Enter to choose. When in doubt, the highlighted default is fine.
Pick a text style
You'll see the Claude Code welcome art and a list of themes, with a sample code change below it. Pick the one that's easiest to read in your terminal; Dark mode suits most Windows and Mac terminals. You can change it later with
/theme.Log in
Choose to log in with your Claude account (the one with your Pro or higher plan). If you're using an Anthropic Console account with API billing instead, choose that. A browser window opens; sign in, approve access, then come back to the terminal and press Enter if it asks.
Accept the remaining defaults
Claude Code may show a short safety note and offer recommended terminal settings. Read them, then press Enter to continue.
Trust the folder
It asks whether you trust the files in this folder. Say yes: it's yours, and it's empty. If the folder named here isn't
goblin-express, press Esc, thencdinto the right folder and runclaudeagain.
You're ready when you see a prompt box waiting for you to type. You only do this setup once per computer.
Company policyOne project, one folder. Claude works where you start it, so never start it in your home directory or your Desktop "just to try something."
03 · Your first shift · 30 min
Snag's first delivery
You're in the Claude Code prompt inside an empty goblin-express folder. Time to build the smallest version of the game that's still a game.
Four controls to know
- Shift + Tab cycles permission modes, such as auto-accepting edits. Leave it on the default today so you see each change before it lands.
- Esc interrupts Claude mid-task. Use it the moment it heads somewhere you don't want.
/helplists commands.exit, or Ctrl + D twice, leaves Claude Code.
1. Brief the courier
Paste this brief. Its last line asks Claude to talk through the approach before writing anything, which is all the planning a job this size needs:
Make a tiny top-down delivery game in one file called index.html, with no libraries and no build step. The player is Snag, a goblin courier, drawn as a green circle. Move with WASD or the arrow keys. A yellow parcel appears at a random spot; walk over it to pick it up, then carry it to a glowing drop-off zone on the other side of the map. Each delivery adds 1 to the score and spawns a new parcel. A shift lasts 60 seconds. Show the score and the time left at the top, and a "Shift over" screen with the final score and a key to restart. Before you write any code, tell me in a few lines how you'll structure it, and ask me about anything that's unclear.
Read the approach Claude describes before you let it build. Look for three things: does it match what you asked, did it add anything you didn't ask for, and did it ask about anything ambiguous? If something's off, say so in plain words and let it revise.
2. Green-light it and watch
When the approach looks right, tell Claude to go ahead. It will write the file and ask permission before creating it. Then open the game:
open index.html
start index.html
Run these in a second terminal window, or type ! before the command at the Claude prompt to run it as a shell command.
3. Play it, then direct the next change
Play a full shift. You'll notice things: too slow, drop-off too far, parcel hard to see. Tell Claude what you felt, not which numbers to change. Then add the feature that makes it Goblin Express:
After each delivery, the customer rates it from 1 to 5 stars based on how quickly the parcel arrived after pickup. Show the stars and a short, grumpy one-line review for a couple of seconds. Write at least ten different reviews and keep them in a list that's easy to edit.
A change this small and clear doesn't need an approach discussion; just ask. When the reviews come in, they might look like these:
Parcel arrived warm. It was not supposed to be warm.
— Old Mother WortFast. Suspiciously fast. Did you even go round the bog?
— The ProfessorMy snail got here before the parcel did. My snail was IN the parcel.
— Lil' GrubChange the game until you'd show it to a colleague. Then stop: the game should stay this small until tomorrow.
Company policyDescribe the feeling, not the fix. "Snag feels sluggish" lets Claude find the speed value, the acceleration and the frame-rate bug you didn't know about.
4. Clock out: save the game
Before you leave, put today's work under version control. You don't need to remember any Git commands; ask Claude:
Set this folder up as a Git repository with a sensible .gitignore, and commit everything with a clear message describing what the game does so far.
Watch what it runs. If this is your first time using Git on this machine, Claude will notice Git doesn't know your name and email yet and ask you for them. Tomorrow starts from this commit, and if a change ever goes badly, this is the save point you load.
Company policyNo courier clocks out with unsaved work. End every shift with a commit.
04 · Checkpoint · 5 min
Sign the timesheet
Tick these off. They're saved in this browser only.
Clocked In
Locked. Finish the checklist to earn it.
Debrief questions
Jot down answers; we'll use them on Day 2.
- Where did Claude's plan differ from what you pictured? Whose version was better?
- What did you have to tell it that you assumed was obvious?
- How long would today's prototype have taken you by hand?
★ Side quest · optional · ~30 min
Same order, different courier
Pick a genre you know well and name your own tiny game. Make a new folder with that name, next to goblin-express rather than inside it, and give Claude a one-paragraph brief. Ask for the approach first, and push back on it at least twice. Compare: what did your domain knowledge change about the result?
If you've built the same mechanic in an engine before, note how long it took. You'll want that number in Week 9.
Up next · Day 2
Snag Gets a RouteInstall steps last verified 2026-10-23 against the Claude Code docs.