$ day-3 --am · session recap

Day 3 AM Recap — The Command Line and the Claude Code CLI

A hands-on morning that took the room from zero terminal knowledge to a working Claude Code CLI install. We learned the command line by being the agent — playing through a browser-based detective game that teaches file-system navigation — then moved into real terminals to create a project folder, install and authenticate the tools Claude needs (Claude Code itself and the GitHub CLI), and watch Claude initialize and push a repository on its own. The session closed with a first look at running models entirely on your own machine with Ollama.

A recurring caveat all morning: because the models are probabilistic, “everyone will not see the same thing I’m seeing.” Exact wording, file lists, and the order Claude does things will differ from machine to machine — that’s expected, not a bug.

Why the terminal first

Claude Code’s interface is modeled on a terminal: you type, hit return, and read what comes back. So before touching Claude, we built the underlying literacy. The framing that organized the whole exercise: “In this terminal exercise, we are Claude Code.” We’re an agent dropped onto an unfamiliar system, looking around, and accomplishing a task with the exact same tools Claude uses.

The opening analogy set the tone: “Imagine yourself, you’re a hacker… you’re now entering into a computer, you don’t know anything about this computer. You’re basically waking up, you have amnesia… This isn’t our computer, this is someone else’s computer. And this is also true for Claude Code” — which is why the first thing an agent does is explore its environment by looking around.

Demo 1 — Learning the command line by playing a game

We revisited the terminal detective game Anastasia generated the day before with Fable (a noir, Carmen Sandiego–style story rendered as a browser terminal, linked from the bottom of the Day 2 materials and on GitHub). It’s self-guided, so latecomers were told they could play through it at their own pace — “all the stuff before was background knowledge… we haven’t done a bunch of work you have to reproduce.” The game became the vehicle for every core command:

Half the fun was watching a student-built game hold up to scrutiny: it had real tab completion, save-state that survives a refresh, a notebook that logs clues, and fast-travel between cities — “Curse you, tutorialized game that’s actually doing a good job.” John was genuinely delighted to find its few bugs (a clear-screen layout glitch, a responsive-design hiccup) — “thank you, imperfection” — and noted the whole thing “is better than a lot of games that my students have done in their first classes, and it’s really disturbing.”

Demo 2 — Into the real terminal: a project folder

With the concepts in hand, everyone opened a real terminal (Git Bash on Windows, Terminal on Mac) and built a workspace by hand:

Demo 3 — Installing and launching Claude Code (and the PATH lesson)

The longest stretch was getting claude to actually run — which doubled as a real lesson in how a shell finds programs.

Once installed: accept the “trust this folder” prompt, and you’re in. Claude Code shows your working directory at the top and takes input like a terminal would. The first power-user move: the ! (shell) escape hatch — type ! and your line runs as a straight terminal command instead of going to Claude, returning the raw result. “We have gotten to the promised land. From here on out, it’s a lot easier.”

Demo 4 — Claude Code CLI “101”: working efficiently

After the break we moved past “type something and hit enter” toward habits that build confidence and save tokens:

Demo 5 — Letting Claude use GitHub: the gh CLI

To let Claude create repositories and pull requests on your behalf from the terminal, we installed the GitHub CLI (gh) — the CLI analog of the Personal Access Token used in Claude Code Web (linked under Day 3 AM in the syllabus):

The troubleshooting here was the lesson, and the same handful of mistakes recurred: running the install inside Claude Code instead of a fresh terminal (“Why are you doing all this in Claude Code? You have to do it in a terminal”); not restarting the terminal after installing, so the new tool isn’t on PATH yet (“anytime you install a program, you have to restart the terminal”); expecting gh to appear in the apps list (it won’t — “it’s not a GUI tool”); and exiting the auth flow early. A Git Bash gotcha: Ctrl-V doesn’t paste — use right-click (it’s Ctrl-Insert under the hood).

Then the payoff. In a fresh session: “Make sure this directory is initialized as a Git repository, and create a GitHub repository for it.” Just saying “GitHub” made Claude reach for gh on its own — “it already thought to use gh, even though we didn’t tell it to.” It ran gh auth status, hit a wrong-shell command, learned from the failure (“it learns from its failures just like us”) and adjusted, offered a starter README (you can’t have an empty repo), committed, and pushed a live public repository. And because the project now lives in Git, Claude can rewind the entire codebase and recover even a deleted file from an earlier commit — “this is not Windows where things go to the recycling bin.”

First look — running a model on your own machine (Ollama)

Returning to a GUI “like a nice warm bath” after the command line, we launched the Ollama desktop app to preview the week’s local-models thread:

After lunch: more Ollama, and using Claude Code driven by a local coding model.


Through-line of the session: the morning made the agent legible. By doing the file-system work by hand first, then watching Claude run the very same commands — with permissions, tool calls, and a clean rewindable transcript in view — the terminal stops being “magic” and becomes something you can read, direct, and recover from. The literacy that matters is reading what the agent does, not memorizing the commands yourself.