Ghost in the Machine

RISD · Ghost in the Machine · AI Studio·Lesson 01·20 min read·Updated Sep 13, 2026

The Telephone Website

What you'll do

Everyone fills in a one page worksheet by hand: a website that does not exist yet, its pages, its colors, a drawing of its homepage. Then the sheets get swapped. You end up holding someone else's site, and they end up holding yours.

You open a coding agent called Codex and type $telephone. The agent interviews you about the sheet, in rounds, until nothing is left to guess. Every time the paper has no answer, you say so and guess out loud. The agent builds the site, publishes it to a real address on GitHub Pages, and hands back the link plus the list of every guess you made.

The gap between what the author drew and what got built is what we look at afterwards. The same gap opens every time you describe something to an agent. This lesson makes it big enough to see.

Before class: two accounts

The setup wizard below walks you through both, but they need an email you can check, so do them where you can read your mail.

AccountWhyCost
GitHubHosts your finished site for free. Your username becomes part of the address, so keep it short.Free
ChatGPT PlusCodex signs in with it, and the CLI needs the Plus plan. A free account is not enough. Subscribe before class; you can cancel after.$20/month

Set up your computer

One script does the whole setup and tells you what to click at each step. It installs four tools, signs you in twice, and installs the skills. Stop it any time with Ctrl+C; running it again skips what is already done.

Open Terminal

Press ⌘+Space, type Terminal, press Return. A window with a blinking cursor appears. Anything you paste there runs when you press Return.

Download and run the wizard

Copy this line, paste it into Terminal, press Return.

$curl -fsSL https://ai.reidsurmeier.wtf/telephone/setup.sh -o setup.sh && bash setup.sh

The first part downloads the script to a file named setup.sh. The second part runs it.

About Homebrew

Most Macs do not have Homebrew, the installer that developer tools use. You do not need to get it yourself. The wizard checks for it and installs it as its second stage. Expect two things during that stage: the Mac asks for your login password, and nothing shows while you type it, which is normal. Then Apple's command line tools download, which can take five to ten minutes on school wifi. Leave the window open until the wizard moves on.

What the wizard does, stage by stage

StageWhat happensYou do
1 · GitHub accountOpens the signup page if you need one.Sign up, verify the email, type your username.
2 · ToolsInstalls git, the GitHub CLI, and Node. Mac gets Homebrew first. Windows uses winget or, without it, the official installers.Click Yes on approval boxes. Type your name and email once for git.
3 · CodexInstalls Codex with OpenAI's installer.Nothing.
4 · Sign in to CodexOpens a browser window.Choose "Sign in with ChatGPT" with your Plus account and approve.
5 · GitHub tokenOpens the token page.Follow the clicks on screen, paste the token. See below.
6 · SkillsInstalls Matt Pocock's skills and this lesson's skill.Nothing.
7 · CheckGreen ticks for every tool, the sign in, and the three skills.If anything is red, run the wizard again.

What the wizard looks like

Each stage clears the screen, so you only ever see the current step: a title with the stage number, a line or two on what is happening, the page it opened for you, and a prompt. This is stage 6, the one people ask about most.

Terminal showing stage 6 of the setup wizard, the GitHub token
Stage 6. The wizard opens GitHub's new token page and lists what to set: the name, 30 days, all repositories, and the three permissions Administration, Contents and Pages at Read and write. GitHub shows the token once. Copy it, paste it at the prompt, press Return. Nothing appears while you paste. gh then reports that you are logged in and shows the token masked with stars. If GitHub rejects the paste, the wizard says so and lets you try again. Windows shows the same stages with the same words.

The GitHub token

The agent will create a repository and switch on GitHub Pages for you. GitHub lets you mint a token that allows exactly that and nothing else, and that dies after 30 days. The wizard opens the page; here is what it asks you to set.

FieldValue
WhereProfile picture → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token
Token nametelephone-lesson
Expiration30 days
Repository accessAll repositories
Repository permissionsAdministration, Contents, Pages: each set to Read and write. Metadata switches on by itself.
ThenGenerate token. Copy it. Paste it into the wizard. Nothing appears while you paste; press Return.

The token is stored by the GitHub CLI on your machine, never in a file you will see. Treat it like a password: if it ever ends up in a chat or a screenshot, delete it on the same page and make a new one.

Check it worked

Open a fresh Terminal or PowerShell and try these. Each should answer, not complain.

TypeExpect
codex --versionA version number.
gh auth status"Logged in to github.com account you".
codex then /skillsA list that includes telephone, grill-me, and grilling. Type /quit to leave.

The worksheet

Print it, or draw the same boxes on any sheet. Fill it in by hand, in pen. Ten minutes is enough. It asks for nine things: the site's name, who it is for, one sentence on what it is, three colors, a font mood, the list of pages, one thing that must be on it and one that must never be, a drawing of the homepage, and a drawing of one inner page.

Open the worksheet

Draw more than you write. The agent never sees the paper. Everything reaches it through the person holding your sheet, so a labeled box beats a paragraph.

The swap

Fold your sheet once, hand it to someone you did not sit next to, and take one back. From then on:

  • The author is not available. Do not walk over and ask.
  • You answer the agent from the paper. When the paper has no answer, you still answer, but you start with guess:.
  • You build their site, not the site you would have made. Your own ideas are guesses too.

Build it

Make a folder for today, open the agent in it, and start the lesson skill.

$mkdir -p ~/telephone && cd ~/telephone && codex

Codex opens as a chat inside the terminal. Type the line below and press Return.

›$telephone

What happens next, in order:

  1. Check. The agent confirms GitHub is signed in and the skills are present, then asks for the site's name from the paper.
  2. Grill. This is the grill-me skill at work. It asks numbered questions in rounds, each with a recommended answer. Answer every question in the round from the paper, or with guess:. It keeps going until nothing is left open. Expect three to five rounds.
  3. Brief. It writes two files: BRIEF.md, every settled decision, and GUESSES.md, every guess. It asks once whether it missed anything on the paper.
  4. Build. Plain HTML and CSS, the pages the paper listed, the colors it named, the layout it drew. It opens the result so you can compare it to the sheet.
  5. Publish. It creates the repository under your GitHub account, pushes, switches on Pages, and waits until the address answers. Then it prints the link and the guesses.

Keep the paper and the link together. You will show them side by side.

Common questions

The wizard says a tool is "not found" right after installing it

New tools register with the terminal only when it opens. Close the window, open a new one, run the wizard again. It skips finished stages.

Codex sign in fails

Almost always a free ChatGPT account. The CLI needs Plus. Upgrade at chatgpt.com, then run codex login again.

The wizard says GitHub did not accept the token

The paste was empty or cut short, the token was copied before you clicked Generate token, or you made a classic token instead of a fine grained one. The wizard lets you paste three times. Go back to the GitHub tab, generate a fresh token, copy the whole thing, and paste again. If it still fails, ask for help and run the wizard again later. It skips the stages that are done.

Codex says it cannot reach GitHub, or the agent's push fails

Open a terminal and type gh auth status. If it does not show your account, the token stage did not finish, or the token expired after its 30 days. Make a new token on GitHub, run the wizard again, and paste it at stage 6.

The agent asks me something the paper does not answer

Answer anyway, starting with guess:. Afterwards we compare the guesses with what the author meant, so a guess you wrote down is useful and a guess you hid just looks like a mistake.

It asks too many questions

Answer all of them. The interview stops on its own when the design has no open branches. Short answers are fine.

The link shows a 404

GitHub Pages takes about a minute to build the first time. The agent waits for it; if you checked early, reload.

Can I improve the site after?

After the class has seen it, yes. Before that, no. We want to see what survives one pass through one stranger, so keep the first version as it came out.

It's working if

  • The agent asked questions in numbered rounds before writing any code.
  • Your GUESSES.md has entries, and each one is something the paper really did not say.
  • The live address opens on a phone and shows the pages the paper listed, in the colors it named.
  • The thing that "must never be on it" is not on it.

Install this lesson's skill

$npx skills@latest add Reid-Surmeier/ai-lessons -a codex -g

This line needs Node, which a fresh Mac or PC does not have. The setup wizard installs Node and runs this for you. Use the line only if you set things up by hand and already have Node. Then type $telephone in Codex.

The skills this lesson uses

Lesson cycle

Previous lesson

None. This is the first.

You are here

The Telephone Website

Next lesson

Orca worktrees · soon

Where this fits

  1. Getting Started
  2. Working in parallel
  3. Shipping