I put off trying Claude Code for months. I’d seen the demos, and honestly they made me a little suspicious — everything in them worked a bit too smoothly. Then I finally ran it on a repo I actually cared about, and about ten minutes in I stopped being suspicious.
So let me just walk you through it. Nothing clever. We’ll get it installed, get you logged in, and then give it one real job to do in a project of yours. Fifteen minutes, give or take.
So what is this thing, actually?
It’s not autocomplete in your editor, and it’s not another chat tab you paste snippets into. It’s a program that runs in your terminal, inside your project folder. It reads your real files. It runs your real commands. It edits your actual code.
The part that took me a while to get: it can read whatever it likes, but it can’t change anything without coming back to you first. That’s the whole shape of it.
Think of it as a colleague who joined today, reads unbelievably fast, and has to check with you before touching anything.
Let’s get it installed
There are a few ways in. I’d start with the official installer — it keeps itself updated, which I appreciate a lot more than I expected to.
macOS, Linux, or WSL:
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell:
irm https://claude.ai/install.ps1 | iex
If you’d rather use a package manager you already have, brew install --cask claude-code, winget install Anthropic.ClaudeCode and npm install -g @anthropic-ai/claude-code all work too. The npm one wants Node 22 or newer, and none of them update themselves — that’ll be on you.
| Operating system | macOS 13+, Windows 10 1809+, or Ubuntu 20.04+ |
| Memory | 4 GB or more |
| Plan | Pro, Max, Team or Enterprise |
| Time | About 15 minutes |
Then check it actually landed:
$ claude --version
2.1.270 (Claude Code)
Logging in, and the one gotcha
Now cd into a project you actually care about — a real one, not an empty scratch folder. Then just run claude.
The first time, it opens a browser so you can sign in with your Claude account. If your browser doesn’t cooperate, press c to copy the login URL and paste it in yourself. If you ever need to do this again later, /login.
⚠️ You need a paid Claude plan for this — Pro, Max, Team or Enterprise. The free Claude.ai plan doesn’t include Claude Code. (A Claude Console API key with credits works too, if that’s more your thing.)
Now give it something real to do
Here’s my one piece of advice, and it’s the thing I wish someone had said to me first: start with something you can check. Not “build me an app.” Something where you’ll know within seconds whether the answer is any good.
Three to try, in rising order of nerve:
- “Explain what this project does and how it’s laid out.” Zero risk, and it tells you straight away whether it really read your repo or is just being agreeable.
- “Where is X configured? Give me the file and the line.” You can verify that in about two seconds, which is exactly the point.
- “Add a
--dry-runflag to that script and update the README.” The first one that writes anything.
That third one is where it gets interesting. It goes and reads a few files first, works out how your script handles its arguments, then comes back with a proposed change and waits:
> add a --dry-run flag to sync.js and the README
⏺ Read scripts/sync.js (86 lines)
⏺ Read README.md (41 lines)
I'll parse the flag with the other arguments and
skip the write step when it's set.
Edit scripts/sync.js
+ const dryRun = argv.includes('--dry-run');
~ 4 more lines changed
Do you want to make this edit?
❯ 1. Yes
2. Yes, and don't ask again this session
3. No, tell Claude what to do differently
Nothing has touched your disk yet. It’s asking. You read the diff, and you decide.
And here’s the honest bit: it will sometimes be confidently, fluently wrong. Not often, but it happens, and it never sounds unsure when it does. You’re still the one who ships. That’s not a flaw to engineer around — it’s just the deal.
Three things before you walk away
/helpshows you everything it can do. Worth thirty seconds of your life./clearstarts a fresh conversation. Use it whenever you move to an unrelated task, so the last thing doesn’t bleed into the next one.claude -cpicks up your last conversation in that folder, so closing the terminal doesn’t lose anything.
And when you’re done, /exit, or Ctrl+D twice.
Next time
See that little “asks you first” box in the diagram up there? That’s the entire subject of Part 2. There are five different settings for how much it checks with you, one keyboard shortcut that moves between them, and one mode I think you should basically live in.
Go break something small first, though. It’s a lot more fun than reading about it. 🙂