Step 1: Install Claude Code
brew install --cask claude-code
Verify the install:
claude --version
Step 2: Log in
Run Claude Code for the first time:
claude
If you're not logged in, it will prompt you. Follow the /login flow — it opens a browser to authenticate with your Anthropic account.
Account required
Claude Code requires a Claude Pro, Max, Team, or Enterprise account. If you don't have one yet, sign up at claude.ai and choose a plan.
Step 3: Install the VS Code extension
In VS Code, press ⌘ + Shift + X and search for Claude Code. Install the official extension from Anthropic.
The extension adds:
- A Claude panel in the sidebar for chatting about your code
- Inline diffs — see exactly what Claude changed, accept or reject each edit
- Plan review — before Claude makes changes, it can show you its plan
- @-mentions — reference specific files, symbols, or selections in your messages
Step 4: Use both the CLI and the extension
They serve different purposes:
| Claude Code CLI | Claude Code Extension |
|---|---|
Full command support (/skills, /hooks, etc.) | Visual diffs and code reviews |
| Runs complex multi-step tasks | Context from selected code |
| Better for large refactors | Better for quick targeted questions |
| Works in any terminal | Integrates with VS Code UI |
Connect an external terminal to VS Code
If you run Claude in Ghostty (outside VS Code), you can still get VS Code integration by running this inside Claude:
/ide
This connects the external terminal session to VS Code so diffs appear in the editor.
Step 5: Try it in a project
Navigate to any project folder and start Claude:
cd ~/Developer/Personal/my-project
claude
Try this first prompt — it helps Claude understand your project before touching any files:
Read the project files and summarize the structure. Don't edit anything yet. Tell me the main commands, what the project does, and any patterns you notice.
What Claude Code can do
Here are things you can ask Claude Code to help with once you're set up:
Add a search bar to this page that filters the list in real-time
Fix the TypeScript error in app/api/users/route.ts
Refactor this component to use a custom hook
Review my changes and suggest a commit message
The more context Claude has (your CLAUDE.md, the project structure), the better its suggestions. Next, we'll set that up.