Setup & Foundation

Everything you need to go from zero to building real tools with Claude Code. This page gets you installed, authenticated, and thinking the right way about how to work with an AI coding partner.

Sign in to start the tutorial

This tutorial keeps score while you work. Sign in with Google and:

Already comfortable with a terminal? The fast-track Setup page detects your OS and gives you the package-manager one-liners. Come back here for the full walk-through on authentication and the mental model.
0 / 0 steps
1
What Is Claude Code?

Claude Code is an AI coding assistant made by Anthropic. It runs right in your terminal (that black window with the blinking cursor) and you talk to it in plain English. You describe what you want to build, and it writes the code, creates the files, runs commands, and debugs problems — all while you watch.

Think of it this way: You're the architect. Claude is the builder. You say "I want a four-quadrant task board with drag-and-drop" and Claude draws the blueprints, cuts the lumber, and hands you a finished product. If you don't like the paint color, you say "make it darker" and Claude repaints it.

What you'll build in this tutorial series:

  • Exercise 1 of 3: An Eisenhower Matrix — a personal task prioritizer you open in your browser
  • Exercise 2 of 3: A client homework form that emails responses to you via Google
  • Exercise 3 of 3 (The Big One): A middleware app that pushes data into a business system via API. This one comes in two versions and you only do one of them — take the QuickBooks version if your books are in QuickBooks Online, or the Contractors Cloud version if your jobs live in that CRM.
  • Then, page 5 — Harness & Memory: the settings, memory files, and habits that make every project after this one go faster

Each one is harder than the last. By the end, you'll be dangerous.

What you need to get started:

  • A Windows computer (you're on one — good)
  • Internet access
  • A Gmail account — if you don't have one, make one now at accounts.google.com/signup (free)
  • A credit card for a Claude subscription (flat monthly fee — no surprises)
Everything you'll sign up for, in one place — each link opens in a new tab, so you won't lose your place here: Claude (paid, Section 2) · Google account (free) · Node.js (free, Section 3) · GitHub (free, Section 7). Later pages add Python (free) and an Intuit developer account (free). Claude is the only one that costs money.
2
Sign Up for a Claude Subscription

Anthropic is the company that makes Claude. You need a Claude account with a subscription plan so Claude Code knows who you are. This is a flat monthly fee — no metering, no token tracking, no surprises on your credit card.

Open Claude.ai
Which plan? You need at least Claude Pro ($20/month) to use Claude Code. There's also Claude Max ($100/month or $200/month) for heavier usage. Start with Pro — you can upgrade later if you hit limits. This is a flat monthly fee, like Netflix. Use it as much or as little as you want. Current plans and prices are always listed at claude.com/pricing.
That's it for the account. No API keys to manage, no usage dashboards to watch. You pay the monthly fee, Claude Code works. When you launch Claude Code for the first time, it'll open a browser window to log you in — same email and password you just created.
3
Install Node.js

Claude Code is built on Node.js, which is a tool that lets JavaScript (a programming language) run on your computer. You don't need to learn JavaScript — you just need Node.js installed so Claude Code has something to run on.

Download Node.js
That button opens nodejs.org/en/download in a new tab. Node.js is free. On the page, choose Windows and the LTS release, then download the .msi installer.
On a company-managed computer? If an installer fails with a "cancelled" message you didn't cause, your IT security policy declined it for you — nothing is broken. Ask IT to install Node.js LTS; it's a routine request. (The same can happen with any install in these tutorials — watch for notes like this one.)
How do I know it worked? Open a Command Prompt (click the Start button and search for "cmd"), then type the command below and hit Enter. You should see a version number like v20.x.x or higher.
node --version
If it says "'node' is not recognized" — nothing is broken, your Command Prompt just started before Node.js did. Close that window, open a fresh one (Start menu → type cmd → Enter), and try again. Still nothing? Re-run the installer from nodejs.org/en/download and pick Repair if it offers it.
4
Install Claude Code

Now that Node.js is installed, you can install Claude Code with a single command. This downloads it from the internet and sets it up on your machine.

Before you start: Section 3 (Node.js) has to be finished first — this command uses npm, which arrives with Node.js. The official write-up of this step lives at docs.claude.com → Claude Code setup if you ever want the reference version.
Run this in Command Prompt (Start menu → type cmd → Enter — or reuse the window from the last step):
npm install -g @anthropic-ai/claude-code
On a company-managed computer: this command installs into your own user folder and doesn't need administrator rights, so it usually works even on locked-down machines. If it's blocked anyway, ask IT to allow it.
Verify it installed:
claude --version
If it says "'claude' is not recognized" — try these in order. One of them almost always does it.
  1. Close every Command Prompt window, open a fresh one, and run claude --version again. A window opened before the install can't see it.
  2. Confirm the install actually landed: run npm list -g @anthropic-ai/claude-code. If it prints nothing, run the install command above once more and read the output for red text.
  3. Still stuck? The official install and troubleshooting pages are docs.claude.com/claude-code/setup and .../troubleshooting.
Claude Code is installed. Two tools down, zero code written. That's about to change.
5
Create Your Workspace

Before you start building, you need a home base. Every project you build will live under one root folder: C:\dev. This keeps things organized and gives Claude Code a consistent place to work.

Why C:\dev? It's short, easy to type, and keeps all your work in one place. This same structure works across every project — each one is a folder under C:\dev. When you open a terminal and type cd C:\dev\MyProject, you're in your project. Clean and simple.
If C:\dev already exists, skip this step. If Windows won't let you create folders on C:\, create dev in your user folder instead (like C:\Users\YourName\dev) and use that path everywhere in this tutorial.
Your workspace is ready. Every project gets its own folder under C:\dev.
6
Wake Up Claude for the First Time

This is the moment. You're about to open a terminal, navigate to your project folder, and start talking to an AI that writes code. Don't worry — the terminal is just a text box where you type commands. Nothing scary.

Navigate to your sandbox folder:
cd C:\dev\Sandbox
Now start Claude Code:
claude

The first time you run Claude Code, it will open a browser window and ask you to log in to your Claude account — the same one you just created. Log in, authorize Claude Code, and the browser will confirm you're connected. Switch back to the terminal.

You should now see Claude's prompt — a cursor waiting for you to type. Try saying hello:

Hello! What can you do?
Quick reference — commands you'll use constantly:

claude — Start a conversation (from your project folder)
/help — See all available commands
/clear — Clear the conversation context (do this often — it prevents crashes)
Escape or Ctrl+C — Cancel what Claude is doing
exit — End the conversation and go back to the terminal
Up arrow — Recall your previous message

Take a minute to play around. Ask Claude some questions. When you're done exploring, type exit to leave. We'll come back to Claude in a moment with a plan.

You just had your first conversation with Claude Code. Everything from here is learning how to have BETTER conversations.
7
Put It Under Version Control

Git is your undo button and a free offsite backup. Set it up once — from here on, you just tell Claude to handle the Git work.

Install Git and the GitHub CLI in Command Prompt (Start menu → type cmd → Enter) — run these one at a time, then close and reopen the window. Both are free:
winget install --id Git.Git -e
winget install --id GitHub.cli -e
On a company-managed computer: if an install fails with "You cancelled the installation" (exit code 1602) and you didn't cancel anything, your IT security policy declined it for you. Add --scope user to the end of each command to install without administrator rights. If that's blocked too, ask IT to install Git and the GitHub CLI.
If Command Prompt says "'winget' is not recognized" — your Windows doesn't have the package manager. Skip the commands above and use the regular installers instead, one at a time, clicking Next through the defaults: Git for Windows · GitHub CLI. Then close and reopen Command Prompt and carry on with the next step. (If you'd rather have winget itself, it ships with Microsoft's App Installer — details at Microsoft's winget page.)
Connect to GitHub (once). Run the command below in Command Prompt — it asks a few questions one at a time, right there in the terminal:
gh auth login
Answer: GitHub.comHTTPSYes (authenticate Git) → Login with a web browser. It then shows a one-time code — press Enter, your browser opens, and you paste the code there.

Now let Claude do the rest. From your project folder, start claude again — just like the last section — and say:

Put this project on GitHub as a private repository.
Private, not public for anything with client data or API keys — and never commit secrets. After any good chunk of work, tell Claude "save my progress to GitHub."
You've got a safety net now. Break something? "Claude, undo my last change." Lose your laptop? Your work is on GitHub.
8
Your CLAUDE.md — Teaching Claude How to Work With You

Here's the most important concept in this entire tutorial:

Claude doesn't remember you between sessions. Every time you type claude and start a new conversation, it's like meeting a brilliant contractor who has total amnesia. It has no idea who you are, what you've built before, or how you like to work. CLAUDE.md fixes that.

A CLAUDE.md is a plain text file Claude Code reads automatically when it starts — before you say a word. It's your instruction manual for Claude, and it comes in two levels. The global one lives in your user profile (C:\Users\[you]\.claude\CLAUDE.md) and applies to every project on your machine — who you are and how you work belongs there, written once. A project CLAUDE.md sits at a project's root and adds rules for that one project only ("this app is a single HTML file, no server") — you'll create your first of those in Exercise 1. Right now, we're making the global one.

Without a CLAUDE.md, Claude is a generic assistant. With one, Claude is your assistant.

What goes in a CLAUDE.md?

Write this one in your own words. CLAUDE.md is how Claude learns who you actually are, so a file copied from somebody else quietly teaches Claude to expect somebody else — that's worse than having no file at all. The builder below asks you a few plain questions and assembles the file out of your answers. Nothing is filled in for you; the grey text inside each box is only an example of the kind of answer, and it disappears the moment you start typing.

A sentence or two. This is what makes Claude's answers fit your world instead of a generic one.

Be honest here. It changes how much Claude explains.

Even a rough answer helps. You can rewrite this later.

One rule per line. These become your standards.

One rule per line. These are the guardrails.

The folder you set up earlier in this tutorial, if you haven't picked another one.

Your CLAUDE.md — live preview

        

Your answers save on this device as you type.

See a filled-in example

This is somebody else's file — a landscaper who wanted help with scheduling spreadsheets. It's here to show the shape and the tone, not to be copied. Yours should sound like you, because that's the entire point of the file.

Somebody else's CLAUDE.md — an illustration, not a template
# Marisol — How I Work With Claude

## Who I Am

I run a landscaping company with three crews. Most of my day is
routing trucks, quoting jobs, and keeping the crew schedule from
falling apart when someone calls out.

I am not a developer and I do not read code. Explain things in
plain language and do not assume I know the jargon.

## What I Am Working On

Our crew schedule is a whiteboard that gets erased every Friday. I
want a spreadsheet that shows who is on which job, and prints
clean enough to hand to a foreman.

## How We Work

Explain what you are doing as you go, so I learn while we build.

1. I give you the requirements.
2. You propose a plan and wait for my approval.
3. On approval, you deliver complete working files.
4. I test it and confirm.

Ask first, do not run ahead. When something breaks, gather
information before changing code.

## Always

- Show me the whole file, not just the part that changed
- Use the crew names we actually use, not Crew A and Crew B
- Tell me when something did not work

## Never

- Never delete a file without asking me first
- Never hand me something half finished and call it done

## Where My Files Live

C:\dev

## Session Management

- Update context/JOURNAL.md before I end a session.
- Tell me to use /clear after heavy work or big file reads.
- When in doubt, /clear. Ten seconds beats losing the session.

What a mature CLAUDE.md looks like:

A mature CLAUDE.md has all of the above plus some extras that evolve out of daily use:

  • A "Brown M&M" rule — a small test at the top of your file that forces Claude to prove it actually read the instructions. (Van Halen used to put "no brown M&Ms" in their concert riders to verify promoters read the whole contract. Same idea.) If Claude skips the test, you know it skipped the file.
  • Naming conventions — rules about how to name variables and database fields so everything stays consistent
  • "Archive, don't delete" — instead of deleting old files, move them to an archive folder. You never lose work.
  • "Claude runs commands" — Claude executes terminal commands itself instead of telling you to do it. You shouldn't have to touch the terminal for routine tasks.

Other consultants might add rules like:

  • "All client-facing documents use our company letterhead"
  • "Use metric units, not imperial"
  • "My clients speak Spanish — build bilingual interfaces"
  • "I'm working on a Mac, not Windows"

The CLAUDE.md grows over time. Every time Claude does something you don't like, add a rule. Every time it does something great, add a rule to keep doing it. It's a living document.

Let's create your global one now. Start Claude Code in your Sandbox folder and ask it to create the file for you — you'll be standing in Sandbox, but the file lands in your user profile, so every future project inherits it. Hit Copy on the preview panel above to put your CLAUDE.md on the clipboard, then paste the short instruction below into Claude, press Enter twice for a new line, and paste your file right after it:

Instruction to give Claude — editable
Where the file goes: your user profile, at C:\Users\[your username]\.claude\CLAUDE.md. The name is exactly CLAUDE.md — capital letters, .md on the end. Claude will create the .claude folder if it isn't there yet. Don't worry about typing the path yourself; Claude knows your username and will fill it in.
Noticed context/JOURNAL.md in there? That folder is covered in the next section. You don't need to create it now — the rule just tells Claude where the journal lives once you start keeping one.
Test that it works: Type /clear (this restarts the conversation so Claude re-reads the CLAUDE.md). Then ask Claude: "What do you know about me?" Claude should repeat back the details from your CLAUDE.md. If it does, the file is working.
You now have a global CLAUDE.md. Claude reads it at the start of every conversation, in every project on this machine. You'll never have to re-introduce yourself.
9
Your context/ folder — Scope and Journal

Your global CLAUDE.md tells Claude who YOU are. Now you need to tell Claude what you're BUILDING and what's HAPPENED so far. Both of those live in a single folder called context/ at the root of your project.

Two files do the work:
  • context/PROJECT.md — the project brief. What are you building, who is it for, what's the stack, what's done, what's next.
  • context/JOURNAL.md — the running log. At the end of every session, you ask Claude to add a dated entry: what we did, what worked, what's next.
Claude reads both at the start of every session. You never have to re-explain the project or where you left off.

Why two files instead of one? PROJECT.md is the current state — short, kept up to date, rewritten as the project evolves. JOURNAL.md is the history — dated entries that pile up, newest first. One file would either get too long for Claude to read every session, or lose the history every time you updated the scope. Two files keep each one focused.

Here's a simple PROJECT.md. Don't create this one — we'll make real ones in the exercises.

Example context/PROJECT.md # Project: Client Intake Form ## Goal Build a web form that new clients fill out before their first meeting. Responses get emailed to me. ## User My clients. Non-technical. They'll open this in a browser on their phone or computer. ## Tech - Single HTML file (no server needed for the form itself) - Google Apps Script backend for email delivery ## Status Form layout done. Email backend in progress. ## Constraints - Must work on mobile - Must save progress if they close the tab (localStorage) - Must look professional, not like a government form

And here's a JOURNAL.md after a few sessions:

Example context/JOURNAL.md # Journal Newest first. ## 2026-04-15 - Built the form layout (intake.html) - Added localStorage so progress saves automatically - NEXT: wire up Google Apps Script for email delivery ## 2026-04-14 - Created project folder and CLAUDE.md - Sketched out the form fields with Claude - Decided on single-HTML-file approach (no server)

How to maintain JOURNAL.md: at the end of every session, before you type exit, say this to Claude:

Update context/JOURNAL.md with what we did today. Include decisions, what works, what doesn't, and what's next.

That's it. Claude appends a dated entry. Next session, Claude reads both files and picks up exactly where you left off.

About the older "three-file methodology." Earlier versions of this tutorial taught PROJECT.md and MEMORY.md at the project root. The new model puts both in a context/ folder and renames MEMORY.md to JOURNAL.md — that's because Claude has its own built-in memory system in your user profile (covered on the harness page) with a file also called MEMORY.md, and the collision was confusing. Same idea, sharper boundary: project state lives in the project (context/); facts about you live in the harness.
The Foundation
Every project you build will have a CLAUDE.md at the root for project rules and a context/ folder with PROJECT.md and JOURNAL.md — while your global CLAUDE.md covers who you are. That's the foundation. You'll add other folders (source/, output/, reference/, archive/) as projects grow. Everything else is just typing.

Next Up: Exercise 1 of 3

You're going to tell Claude to build you a personal Eisenhower Matrix — a four-quadrant task board with drag-and-drop. You'll have a real, working tool when you're done.

Start Exercise 1 of 3 →