Install, authenticate, and prove it works
By the end you can
- Install Claude Code on your platform with the method that matches how you want updates handled
- Authenticate with the account type you actually have, and know which plans include Claude Code
- Prove the install is healthy with claude --version and claude doctor rather than assuming it
- Choose a surface (terminal, VS Code, JetBrains, desktop, web) and say what each one adds
There are five ways to install Claude Code and they differ in exactly one thing that matters later: who is responsible for updates. Pick deliberately, because "my Claude Code doesn't have that feature" is almost always a Homebrew install that nobody has upgraded since February.
Install
The native installer is the documented recommendation, and native installs auto-update in the background (Advanced setup).
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash# Windows PowerShell
irm https://claude.ai/install.ps1 | iexThe alternatives, and what you are signing up for:
| Method | Command | Updates |
|---|---|---|
| Native (recommended) | curl -fsSL https://claude.ai/install.sh | bash | Automatic, in the background |
| Homebrew | brew install --cask claude-code | Manual: brew upgrade claude-code |
| WinGet | winget install Anthropic.ClaudeCode | Manual: winget upgrade Anthropic.ClaudeCode |
| npm | npm install -g @anthropic-ai/claude-code | Manual, and needs Node.js 22+ |
| apt / dnf / apk | see the docs for the signed repos | Through your normal system upgrades |
Authenticate
Claude Code requires a Pro, Max, Team, Enterprise, or Console account. The free Claude.ai plan does not include Claude Code (Setup). You can also route through Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry if your organisation does.
Log in by starting a session and following the browser prompt:
claudeTwo things worth knowing before you hit them:
- If
ANTHROPIC_API_KEYis set in your environment, Claude Code does not open the browser login. It prompts you once to approve that key instead. If you meant to use your subscription and find yourself billed to Console credits, this is why. /logininside a running session switches accounts or re-authenticates.
Prove it works
This is the first place the course's central habit shows up: a thing is not working because it looked like it worked. Two commands, in this order.
claude --versionA healthy install prints a version and the product name — 2.1.211 (Claude Code)
in the docs' example. If this prints command not found, nothing below will help
until it doesn't.
claude doctorclaude doctor prints read-only installation and settings diagnostics without
starting a session: install health, settings-file validation errors, and warnings
with suggested fixes. It also reports the result of the most recent auto-update
attempt, which is the fastest way to find out that your updates have been
silently failing for three weeks.
$ claude --version
2.1.191 (Claude Code)claude doctor is a full-screen report rather than a line of output, so there is
nothing useful to paste here — run it and read it. What you are looking for is
three things: that the install method it names is the one you actually used, that
the last auto-update attempt succeeded, and that no settings file is listed as
invalid. A settings file with a JSON syntax error is silently ignored, which
presents later as "Claude keeps asking permission for things I allow-listed".
Run both commands now, before you go on. The rest of Level 1 assumes a working install, and every later level assumes you will check rather than assume.
Choosing a surface
Every surface connects to the same engine — the same agentic loop, and the same
CLAUDE.md, settings, and MCP servers from your repo
(Overview). What changes is where the
code runs and how you see it.
| Surface | Adds | Needs |
|---|---|---|
| Terminal CLI | Everything; the reference surface | The install above |
| VS Code / Cursor | Inline diffs, @-mentions, plan review, history | The extension |
| JetBrains | Interactive diffs, selection context sharing | The plugin plus the CLI |
| Desktop app | Visual diff review, parallel sessions, scheduled tasks, cloud sessions | Its own download; includes Claude Code |
Web (claude.ai/code) | Long-running tasks, repos you don't have locally, parallel work | Nothing local |
Two of those lines are the ones people get wrong. The JetBrains plugin requires the CLI installed separately; the desktop app does not, because it ships Claude Code inside it.
Checkpoint
You should have a version number and a clean claude doctor on your own machine,
and be able to say which of the five install methods you used and who is
responsible for updating it.