Base Camp Setup
There are two tools here, and their names are confusingly similar. It is worth thirty seconds to separate them, because almost every muddle later starts with mixing these up.
Git runs on your machine. It keeps the journal — the record of what your files looked like at each point in time. It works with no internet connection and no account. GitHub is a website that stores copies of those journals online. And gh is a small program that lets your terminal talk to that website without opening a browser.
Git is the notebook. GitHub is the filing cabinet in another building. gh is the courier. Today you install all three and prove they work. You will not track a single file today.
First, check whether you already have git. Most Macs do. Open your terminal and run:
git --version
You should see a line like git version 2.50.1. The exact number does not matter much — anything 2.23 or newer covers everything in these two weeks. If you see a version, git is installed and you are done with this step.
If instead a dialog box pops up offering to install the command line developer tools, click Install and wait. That is macOS installing git for you. When it finishes, run git --version again.
Now install gh. This is the piece that talks to GitHub:
brew install gh
brew one. Everything after this point is identical on Windows and Mac.
winget install --id GitHub.cli
Connect gh to your GitHub account. Run:
gh auth login
Check that it took:
gh auth status
You want a line with a checkmark saying Logged in to github.com account followed by your username. If you see that, the courier knows where to go.
One last thing: sign your work. Every journal entry you make gets your name on it, so git needs to know your name. Run these two lines, with your own name and the email address on your GitHub account:
git config --global user.name "Your Name" git config --global user.email "you@example.com"
Skip this and git will invent something from your computer’s hostname, and every entry you write will be signed by a stranger. Two lines now saves untangling it later. The --global means you are setting it once for every project on this machine, not just this one.
safe-start to Claude Code — a coaching skill whose hooks ask before risky git operations, offer a reviewed savepoint before destructive work, explain half-finished merges and detached HEAD states instead of leaving you stranded in one, and default a new GitHub repository to private. Much of that is what the next two weeks are about. It is guardrails, not a sandbox and not a backup.
curl -fsSL https://ai101.health/install | bash
gh is the phone line between them. Nothing is tracked yet.