AI Workshop · Wednesday, November 25 · Topview Tower

Get your laptop ready before the workshop.

On the day you bring an idea, I show you how to get an AI coding agent to build it, and by noon it's running on a real URL. You don't need to know how to code. What you do need is a laptop that's set up: terminal, AI agent, GitHub. Please do this at home — installing takes a while and isn't very interesting, and the morning is short. If everyone arrives ready, you'll be building within the first ten minutes.

Wed, Nov 259:00 – 12:00 · Topview Tower
Laptop + chargerMac or Windows
30 min of setupDo it at home first
Leave with a linkYour app, online
My laptop is a
Your AI tool is chosen in step 2; the guide adapts to both.
First, one question

What do you want to build?

Leave your name and the idea you'd like to work on. It goes straight to Constantin so he can prepare for it — and for you. A rough sketch is plenty, and you can change your mind on the day.

Stuck for ideas?

Only Constantin sees this. No sign-up, no newsletter.

1 · What you need

Before the workshop, make sure you have:

  • A Mac.
  • A Windows PC on Windows 11 ideally. Windows 10 works for Claude Code; Codex calls it “best effort”.
  • A GitHub account — free, sign up at github.com.
  • An AI subscription — either a Claude Pro / Max / Team plan for Claude Code, or a ChatGPT Plus / Pro / Business plan for Codex. Claude Code isn't available on the free Claude plan; Codex technically works on a free ChatGPT account but the allowance is far too small for a workshop morning. More on this in the next step.
  • About 30 minutes and decent Wi-Fi.
  • On the day: your laptop and its charger. No laptop, no workshop — it's hands-on from minute ten.
🏢
Company or school laptop? Check it nowManaged devices are often locked down: you may not be allowed to install apps, run terminal commands, or reach certain websites — and IT policy might forbid it anyway. If that's your situation, bring a personal laptop instead if you possibly can. If you can't, you're still very welcome — mention it in the idea box above, and I'll do my best to have a device ready for you on the day.
⚠️
Plan on a paid planClaude Code needs at least Claude Pro ($20/mo); it does not work on the free plan. Codex is now included with every ChatGPT plan, even Free, but the free allowance runs out after a few tasks — count on ChatGPT Plus ($20/mo) as the realistic minimum. If you have neither, get Claude Pro — it's what we'll demo on, and you can cancel after the workshop.

2 · Pick your AI tool

Both are “coding agents”: you type what you want in plain English, and they write the code, run it, and fix it. Choose one below — the rest of this guide adapts to your choice. If you're undecided, pick Claude Code.

💡
Can I switch later?Yes. The workflow is nearly identical. You'll learn the skills, not the tool. If you have both subscriptions, install both — it's two minutes.

3 · Set up your terminal

The terminal is where your AI agent lives. It's just a text box that talks to your computer.

1

Install Ghostty

Ghostty is a fast, native terminal app. It handles long output smoothly (which matters when an AI is generating code) and stays out of your way.

Go to ghostty.org/download, grab the macOS “Universal Binary” .dmg, open it, and drag Ghostty to Applications. Open it (⌘ Space, type “Ghostty”, Enter). You should see a window with a blinking cursor. (If you already have Homebrew from an earlier project, brew install --cask ghostty does the same.)

🧐
Already use iTerm2, Warp or Terminal.app?That's fine. Ghostty is just our recommendation — the built-in Terminal tends to lag on long sessions.
1

Open Windows Terminal

Windows Terminal is Microsoft's modern terminal. On Windows 11 it's pre-installed; on Windows 10 grab it free from the Microsoft Store.

Open it with Win + X → Terminal, or search “Terminal” in the Start menu. Make sure you're in a PowerShell tab (the default), not Command Prompt.

⚠️
PowerShell, not CMDIf your prompt looks like C:\> you're in Command Prompt. Open a new PowerShell tab — the prompt should show PS C:\>.

4 · Install HomebrewInstall Git for Windows

2

Install Homebrew (the package manager)

Homebrew is an app store for developer tools that runs in the terminal. Paste this into Ghostty:

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

It asks for your Mac password. Nothing appears as you type — that's normal. Press Enter. Follow any “Next steps” it prints at the end (usually two lines to paste).

✅
Already have Homebrew?Run brew --version. If it prints a version, skip this step.
2

Install Git for Windows

Git is how your code gets to GitHub, and Claude Code uses the bundled Git Bash to run commands (without it, it falls back to PowerShell, which is less reliable). Download from git-scm.com/downloads/win and install with the default settings — or run winget install --id Git.Git -e --source winget in PowerShell.

Close and reopen Windows Terminal so it picks up the new PATH. Then verify:

PS> git --version
# Should print something like: git version 2.5x.x.windows.1
📦
WinGet is built inWindows 10/11 ships with winget, a package manager like Homebrew. We'll use it for the GitHub CLI later — nothing to install.

5 · Install Claude CodeCodex switch to Codexswitch to Claude Code

3

Install Claude Code

Run this in Ghostty:

Run this in PowerShell:

$ curl -fsSL https://claude.ai/install.sh | bash
PS> irm https://claude.ai/install.ps1 | iex

The installer shows no progress while it downloads — give it a minute. When it finishes, close the terminal and open a new window so the PATH update takes effect. Then verify:

$ claude --version

Now log in. Run claude — it opens a browser window to sign in with your Claude account. Follow the prompts.

$ claude

Once logged in you'll see a prompt. Type hello and press Enter to check it responds. Then type /exit.

🎉
You're set upIf Claude replied to your hello, everything works. Installed this way, Claude Code updates itself automatically in the background. If anything looks off later, claude doctor runs a quick health check.
🟡
Yellow warning about git-bash?Git is installed but not on your PATH yet. Close and reopen Windows Terminal, then run claude again. If it persists, set the path manually:
PS> [System.Environment]::SetEnvironmentVariable("CLAUDE_CODE_GIT_BASH_PATH", "C:\Program Files\Git\bin\bash.exe", "User")
Then close and reopen Terminal once more.
❓
“claude” not recognized?Refresh your PATH without restarting:
PS> $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "User") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "Machine")
PS> claude --version
If that still fails, close all Windows Terminal windows (not just the tab) and open a fresh one.
3

Make sure your ChatGPT plan includes Codex

Codex is included with every ChatGPT plan — Plus, Pro, Business, Edu and Enterprise get proper usage; Free and Go only get a small taster that won't last a workshop morning. Check yours at chatgpt.com → Settings → Subscription.

On Free? Go to chatgpt.com and Upgrade → Plus ($20/mo). Plus gives you plenty of Codex usage for a workshop morning; Pro (from $100/mo) gives much more headroom.

🔑
No API key neededSigning in with your ChatGPT account uses your subscription's included usage. You only need an API key if you want pay-as-you-go billing instead — we won't.
4

Install the Codex CLI

Run one of these in Ghostty (the first is the official installer; the second uses Homebrew):

$ curl -fsSL https://chatgpt.com/codex/install.sh | sh
$ brew install --cask codex

Run this in PowerShell:

PS> powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
🪟
Native Windows is now the defaultCodex runs directly in PowerShell with its own Windows sandbox — no WSL needed. OpenAI recommends Windows 11; Windows 10 is “best effort”. If the installer misbehaves, install Claude Code instead (it's what we demo on anyway) or, if you already use WSL, follow the Mac/Linux commands inside it.

Close and reopen your terminal, then verify:

$ codex --version
📦
Prefer npm?If you already have Node.js 22+, npm install -g @openai/codex also works. Careful: the package is @openai/codex — the unscoped codex package on npm is unrelated. (Same trap on the Microsoft Store: winget install Codex finds a QR-code app, not OpenAI's.)
5

Sign in with ChatGPT

$ codex

Choose Sign in with ChatGPT. Your browser opens — log in with the account that has your Plus/Pro plan (double-check you're not on a different, free account). Return to the terminal when it says you're done.

Type hello and press Enter to check it responds. Then type /quit (or press Ctrl + C) to exit.

🎉
You're set upIf Codex answered, you're ready. To switch accounts later: codex logout, then codex again.
🌐
Browser sign-in didn't come back?Run codex login --device-auth — it prints a URL and a short code you can enter on any device. (Device-code login is in beta; if it's refused, switch it on first under Settings → Security in ChatGPT.) codex login status tells you whether you're signed in.

6 · Install the desktop app (optional but handy)

4

Download the Claude app

The Claude desktop app gives you three ways to work with Claude; we'll touch all three during the workshop:

  • Chat — the familiar conversation interface, as a native app.
  • Cowork — Claude works alongside you on files and apps, proactively.
  • Code — Claude Code running inside the desktop app, no terminal needed.

Download from claude.ai/download, open the .dmg, drag Claude to Applications.

Download from claude.ai/download, run the installer, follow the prompts.

Sign in with the same Claude account you used in the terminal. If you see a chat interface, you're good.

🎚️
Chat vs. Cowork vs. CodeThree levels of autonomy: Chat is you asking. Cowork is Claude jumping in where it can help. Code is Claude driving — reading files, running commands, building things.
6

Download the Codex app

OpenAI ships a desktop Codex app for Mac and Windows that wraps the same agent in a friendlier window with multiple parallel threads. It's optional — the CLI is all you need — but nice to have as a fallback if the terminal feels intimidating.

Get it from chatgpt.com/codex and sign in with the same ChatGPT account.

💡
Also install the Claude appEven if you build with Codex, the free Claude app (claude.ai/download) is useful during the workshop for brainstorming and following the instructor's demos.
✅

Core setup done.

Terminal ready, AI agent talking, desktop app installed. Everything below is about getting comfortable — skim it now, and we'll practice together on the day.

7 · Getting comfortable with the terminal

Never used a terminal? Here's the crash course. Instead of clicking through folders in FinderFile Explorer, you type commands. You only need four.

👍
Good newspwd, ls, cd and mkdir all work in PowerShell too.
→

Where am I: pwd

“Print working directory.” Shows which folder you're in.

$ pwd
# /Users/yourname
→

What's here: ls

“List.” Shows what's in the current folder.

$ ls
# Desktop  Documents  Downloads  Projects ...
→

Move around: cd

“Change directory.” cd .. goes up one level; cd ~ goes home from anywhere.

# Go into Documents
$ cd Documents
# Back up one level
$ cd ..
# Home, from anywhere
$ cd ~
→

Create folders: mkdir

“Make directory.” -p creates parent folders if needed.

$ mkdir -p ~/Projects/workshop
★

The pattern you'll use every time

# 1. Go to your project folder
$ cd ~/Projects/my-project
# 2. Start the agent
$ claude
# 3. Talk to it in plain English
"Create a web page with a hero section and a contact form"
# 4. Exit when done
/exit
# 1. Go to your project folder
$ cd ~/Projects/my-project
# 2. Start the agent
$ codex
# 3. Talk to it in plain English
"Create a web page with a hero section and a contact form"
# 4. Exit when done (Ctrl+C also works)
/quit
⇥
Tab completionPress Tab while typing a folder name and the terminal finishes it for you. Try: type cd Docu, press Tab.

8 · Useful commands inside the agent

While chatting, commands that start with / control the tool itself — they're not messages to the AI.

  • /usage — how much of your plan's limit you've used and when it resets. Check it if Claude tells you to wait.
  • /clear — fresh conversation, same project files. Use when switching tasks or when Claude seems confused by old context.
  • /help — every command and shortcut. /status shows version, model and account.
  • /btw — ask a quick side question without interrupting the main task. Answer appears in an overlay; Esc dismisses.
  • /review — a code review of your recent changes, with the bugs it finds listed for you.
  • /insights — a report on how you've been using Claude Code and features you're missing.
  • Esc Esc with an empty prompt (or /rewind, also /undo) — your undo button. Pick a point in the conversation and Claude reverts both the chat and the code changes made after it. Restore code + conversation, conversation only, or code only.
🧪
Experiment freelyBecause you can always rewind, try things. If Claude takes a wrong turn, Esc Esc and you're back.
  • /status — your session, model, permissions and token usage.
  • /new — start a fresh conversation in the same folder.
  • /model — pick a model / reasoning effort. Higher effort = smarter but slower.
  • /init — create an AGENTS.md file with notes Codex reads every session (project conventions, what not to touch).
  • /diff — see what Codex has changed so far.
  • /permissions — change what Codex may do without asking (see the next step).
  • /help — every command and shortcut.
  • Esc while it's working — interrupt and redirect. Codex keeps your project in Git, so your undo button is git checkout . (discard uncommitted changes) — or just tell Codex “revert the last change.”
🧪
Commit oftenEvery time something works, say “commit this.” Then you can always jump back to a working state.

9 · Understanding permissions

An agent can either ask you before every edit and command, or move on its own with a safety net. The careful setting is right for important code and painfully slow for prototyping. For the workshop we want the faster one.

→

Auto mode

For the workshop we'll run Claude Code in auto mode. Claude edits files and runs commands on its own, but a built-in safety check still reviews each action and only stops to ask you about the genuinely risky ones (deleting things, touching files outside the project, anything irreversible). Fast, and still has a seatbelt.

Good news: on current versions auto mode is already the default when you start claude — the mode indicator under the prompt says auto. If yours says Manual instead, press Shift + Tab until it cycles round to auto, or start it explicitly:

$ claude --permission-mode auto
ModeWhat it does
default (“Manual”)Only reads on its own; asks before every edit and command. For important repos.
acceptEditsAuto-approves file edits; still asks before running commands.
autoActs on its own; a safety check asks only about risky actions. The default, and what we use in the workshop.
planRead-only. Claude can analyze but not change anything. Great for reviewing.
bypassPermissionsNo checks at all (--dangerously-skip-permissions). Not needed for us.
→

Approval modes & the sandbox

Codex has two dials: approvals (when it asks you) and a sandbox (what it's physically allowed to touch). The defaults ask a lot. For the workshop, start it like this:

$ codex --approve-for-me

--approve-for-me (OpenAI's own alias: --not-so-yolo) lets Codex edit files and run commands inside your project folder, with an automatic reviewer waving through the routine stuff instead of you. The sandbox still blocks it from touching the rest of your computer; if a step genuinely needs to go outside (e.g. installing a tool), it asks.

FlagWhat it does
(default)Read-only sandbox; asks before edits and commands. Safe, slow.
--approve-for-meEdits + commands inside the project folder; an automatic reviewer approves the routine ones. Use this for the workshop.
--dangerously-bypass-approvals-and-sandbox (aka --yolo)No sandbox, no prompts at all. No safety net at all. Fine for throwaway prototypes; don't use on anything precious.

You can also change modes mid-session with /permissions.

10 · GitHub setup

GitHub is where we'll store and publish code. With the CLI, the agent can create repos, push code and deploy pages without leaving the terminal.

A

Create a GitHub account

If you don't have one: github.com/signup. Free is all you need. Two minutes.

B

Install the GitHub CLI

$ brew install gh
PS> winget install --id GitHub.cli --source winget

Close and reopen Windows Terminal after installing.

Then log in:

$ gh auth login

When asked, choose: GitHub.com (not Enterprise) → HTTPS → Login with a web browser. It opens your browser to authorize. Verify:

$ gh auth status
# Logged in to github.com as yourname
C

Dry run: publish a page to GitHub Pages

Optional, but it proves the whole pipeline works before the workshop. GitHub Pages hosts static sites for free.

$ mkdir -p ~/Projects/my-page
$ cd ~/Projects/my-page
$ claude$ codex --approve-for-me
PS> mkdir -p ~\Projects\my-page
PS> cd ~\Projects\my-page
PS> claudePS> codex --approve-for-me

Then tell it:

Build a simple landing page with a hero section, an about
section, and a contact link. Clean, modern design, everything
in a single index.html file.

Then create a GitHub repository called "my-page", push this
project to it, and set up GitHub Pages so it's live on the web.
Give me the URL when it's done.

It will build the page, init Git, create the repo, push, enable Pages, and hand you a URL like https://yourusername.github.io/my-page/. Live within a minute or two.

To change it later: cd back into the folder, start the agent, and say “Update the headline, then push to GitHub.”

🆓
Free hosting, foreverGitHub Pages is free for public repos. No hosting fees, no servers.

11 · Railway (optional — for real web apps)

GitHub Pages only hosts static sites. If your idea needs a server — user accounts, a database, saving things people type in — you need somewhere to run code. Railway is the easiest option we've found: connect a repo, it builds and runs it, you get a URL. This very website runs on it. Skip this if you're not sure; you can set it up in five minutes on the day.

A

Create a Railway account

Go to railway.com and click Login → Login with GitHub. Using your GitHub account means Railway can deploy straight from your repos later.

New accounts start on a free trial with a small credit. To deploy for real you'll need the Hobby plan ($5/month), which includes $5 of usage — a small workshop app costs cents. You can add a card later; the trial is enough for the workshop.

B

Install the Railway CLI

$ brew install railway
PS> npm i -g @railway/cli
📦
npm not found?Install Node.js first: winget install OpenJS.NodeJS.LTS, then close and reopen the terminal. (Or use Scoop: scoop install railway.)

Then log in — it opens your browser:

$ railway login
$ railway whoami
# Logged in as you@example.com

That's all the agent needs: once you're logged in, it can run railway commands on your behalf.

C

Optional: create an API token

A token lets tools deploy without the browser login — useful for GitHub Actions or if the agent runs somewhere that can't open a browser. Not needed for the workshop itself, but here's how:

  1. Open railway.com/account/tokens.
  2. Give it a name (e.g. workshop), leave the workspace as is, click Create.
  3. Copy it immediately — it's shown only once.

Use it by setting an environment variable before running commands:

$ export RAILWAY_API_TOKEN=paste-your-token-here
$ railway whoami
PS> $env:RAILWAY_API_TOKEN = "paste-your-token-here"
PS> railway whoami
🔐
Treat it like a passwordAnyone with the token can deploy and delete your projects. Don't paste it into chat windows or commit it to GitHub. If it leaks, delete it on the tokens page and make a new one.
D

Deploy something

Inside your project folder, start the agent and tell it:

Deploy this app to Railway: create a new Railway project,
make sure the server listens on the PORT environment variable,
deploy it, generate a public domain and give me the URL.

Under the hood that's railway init → railway up → railway domain. A minute later you have a live URL like my-app-production.up.railway.app. Redeploy any time with “push the latest changes to Railway.”

💡
Keep data safe across deploysIf your app stores data in a file (like SQLite), ask the agent to “add a Railway volume and store the database on it” — otherwise the file is wiped on every deploy.
🎉

You're ready for the workshop.

Terminal set up, agent talking, GitHub connected. Bring your laptop, your charger, and your idea. See you on Wednesday, November 25 at 9:00, Topview Tower.

Haven't told me your idea yet? ↑

Common questions

Do I need to sign up?

No. Just tell me what you want to build so I can prepare, then get your laptop ready and show up at Topview Tower at 9:00 on Wednesday, November 25.

What's the plan on the day?

09:00 — Hello and a short intro: what these tools can do right now, a live demo, how the morning runs.
09:10 — Build your own thing. Take the idea you sent in and build it, alone or with whoever is sitting next to you. I'll be walking around.
11:15 — Show and tell. Everyone gets two minutes. Broken is fine, we've all been there.
12:00 — Done. Out by noon.

Can I use a free Claude or ChatGPT account?

Not really. Claude Code needs Claude Pro ($20/mo), Max, Ultra or Team — the free plan doesn't include it. Codex does sign in on a free ChatGPT account, but the included allowance covers a few quick tasks, not three hours of building; plan on ChatGPT Plus ($20/mo). If you have neither, get Claude Pro — it's what we demo on — and cancel after if you like.

I already pay for ChatGPT Pro. Do I really not need anything else?

Correct. Codex is included in your plan. Install the CLI, choose “Sign in with ChatGPT”, done. Pro has much higher usage limits than Plus, so you won't hit a wall during the workshop.

Claude Code or Codex — which is actually better?

They're close, and both improve monthly. We recommend Claude Code because the demos use it, the undo/rewind experience is excellent, and auto mode gives you speed with a safety net out of the box. If you already have ChatGPT Plus/Pro and don't want a second subscription, Codex is a perfectly good choice.

Can I use iTerm2 / Warp / Terminal.app instead of Ghostty?

Yes. Any modern terminal works. Ghostty is a recommendation, not a requirement.

Should I use WSL instead of native Windows?

No. Both Claude Code and Codex now run natively in PowerShell, Codex with its own Windows sandbox. If you already use WSL for other things, the Mac/Linux instructions apply inside it — just don't mix the two (a tool installed in WSL isn't visible from PowerShell and vice versa).

Is auto mode safe?

For workshop exercises and prototypes, yes. Claude edits files and runs commands on its own, but a safety check still stops to ask before risky or irreversible actions. For production repos or sensitive projects, press Shift + Tab to switch to default (Manual) or acceptEdits and approve actions individually.

Claude Code won't install on my Mac.

If claude says “command not found” right after installing, open a new terminal window first — the installer puts it in ~/.local/bin and the old window hasn't noticed. If the install script itself fails, try brew install --cask claude-code (this one doesn't auto-update; run brew upgrade claude-code now and then). If that fails too, bring it to the workshop — we'll sort it out.

Claude Code won't install on Windows.

Make sure you're in PowerShell (not CMD) — if you see “irm is not recognized”, you're in CMD. Close all terminal windows and reopen after installing. As a fallback, winget install Anthropic.ClaudeCode installs the same thing (but doesn't auto-update; run winget upgrade Anthropic.ClaudeCode occasionally). Still stuck? Ask at the workshop.

Do I need to know how to code?

No. You describe what you want in plain English; the AI writes the code. Basic terminal comfort helps — that's why this page covers it.

What if I hit rate limits during the workshop?

Type /usage/status inside the agent to check usage. If you're close to the limit, tell us — we'll help you keep going.

Do I need Railway?

Only if your app needs a server (logins, a database, saving what users type). Pure front-end apps — calculators, trackers that save on the device, portfolio sites — are fine on GitHub Pages for free. Step 11 takes five minutes if you decide you need it.

Can I build a mobile app, not just a website?

Yes. We start with a web app because it works on every phone instantly and is easiest to publish. If you want a native iOS/Android app, we'll show the path (Expo / React Native) during the “build your own thing” block. Bring your phone.