Section 01

What is Claude Code?

Meet the AI coding agent built by Anthropic -- the same team behind Claude.

🤖 An AI Agent in Your Terminal

Claude Code is Anthropic's AI coding agent that lives right in your terminal. Instead of switching between your editor, browser, and an AI chatbot, Claude Code works alongside you in the command line -- reading your files, understanding your project, and writing production-quality code.

It's built by the same team that created Claude, one of the most capable AI assistants available today. Think of it as having a senior developer pair-programming with you, but one that never gets tired and can read your entire codebase in seconds.

What Makes It Special
  • Deep codebase understanding -- Claude reads your entire project structure, not just the file you're looking at
  • Multi-file editing -- it can create, modify, and refactor across multiple files in a single operation
  • Context awareness -- it remembers your conversation, your project's patterns, and your preferences
  • Autonomous task completion -- give it a task and it figures out the steps, creates files, installs dependencies, and runs tests
  • Production-quality output -- writes clean, well-structured code following your project's existing patterns

Where You Can Use It

💻
CLI
In any terminal via claude
🖥
Desktop App
Native macOS and Windows app
🌐
Web App
claude.ai/code in your browser
🧩
IDE Extensions
VS Code and JetBrains plugins
Download Claude Code →
🔄 How It Differs from Other Tools

Most AI coding tools work like autocomplete -- they suggest the next few lines. Claude Code is fundamentally different. It's an agent that can:

  • Navigate your project -- it explores files, reads documentation, and understands architecture before writing code
  • Execute commands -- it runs your tests, installs packages, starts servers, and checks for errors
  • Iterate on its own work -- if a test fails, it reads the error, fixes the code, and re-runs it
  • Handle complex tasks end-to-end -- "add authentication to this app" becomes a multi-step operation it handles autonomously

Think: other tools are like spell-check. Claude Code is like hiring a contractor who builds the whole room.

Section 02

Getting Set Up

From zero to your first Claude Code session in under 5 minutes.

Step 1: Prerequisites
What You Need

You need Node.js version 18 or higher installed on your machine. If you followed the main Teach Me Dev guide, you already have this.

Check your version:

Check Node.js version
$ node --version
Expected Output
v20.11.0 (or any version 18+)
This checks which version of Node.js is installed. Claude Code is built with Node.js and requires version 18 or higher. If you see an error or a version below 18, visit nodejs.org to install the latest LTS version.
Step 2: Install Claude Code
Install globally via npm
$ npm install -g @anthropic-ai/claude-code
Expected Output
added 1 package in 12s + @anthropic-ai/claude-code@1.x.x
npm install -g installs a package globally, meaning the claude command becomes available everywhere in your terminal, not just in one project folder. The @anthropic-ai/claude-code is the official package from Anthropic's npm organization.
Step 3: First Run & Authentication
Launch Claude Code
$ claude
Expected Output
✨ Welcome to Claude Code! Opening browser for authentication... Please sign in with your Anthropic account.
Running claude for the first time opens your browser to authenticate. You can sign in with:
  • Anthropic Console -- if you have an API key (for developers/teams)
  • Claude Pro or Max subscription -- if you have a claude.ai subscription (includes Claude Code usage)

Once authenticated, your credentials are stored locally and you won't need to sign in again.

Step 4: Verify It Works
Navigate to a project and launch
$ cd ~/my-project
$ claude
Expected Output
✨ Claude Code v1.x.x Working directory: /Users/you/my-project Found 42 files in project How can I help you today?
💡
Claude Code works best when you launch it from the root of your project. It reads your file structure, package.json, README, and other files to understand what you're working on.
Step 5: The CLAUDE.md File
📝 Your Project's Memory

The CLAUDE.md file is a special file you can place in your project root. It gives Claude Code persistent context about your project -- things like coding conventions, architecture decisions, and important commands.

Think of it as onboarding documentation for your AI teammate. Here's what a good one looks like:

CLAUDE.md
# Project: My App

## Architecture
- Express backend in /server
- React frontend in /client
- PostgreSQL database

## Commands
- npm run dev -- starts both client and server
- npm test -- runs Jest test suite
- npm run lint -- ESLint check

## Conventions
- Use TypeScript for all new files
- Follow existing naming patterns
- Write tests for new features
Step 6: VS Code / Cursor Setup (Optional)
🎯 IDE Integration

If you prefer working in an IDE, install the Claude Code extension for VS Code or Cursor:

  • Open VS Code / Cursor
  • Go to Extensions (Cmd+Shift+X on Mac)
  • Search for "Claude Code" by Anthropic
  • Click Install
  • Use Cmd+Shift+P and type "Claude" to access commands

The extension embeds Claude Code directly into your editor with an integrated chat panel.

Section 03

How to Use Claude Code

The conversation interface, slash commands, permissions, and real-world examples.

🚀 Starting a Session

Just navigate to any project directory and run claude. Claude reads your project structure and is ready to help. You type in natural language -- no special syntax needed.

The conversation is multi-turn: Claude remembers everything you've discussed in the current session. Ask follow-up questions, request changes, or build on previous work.

Slash Commands

Built-in Commands

Type these during a session to control Claude Code's behavior:

Command What It Does
/help Show all available commands and usage tips
/clear Clear the conversation history and start fresh
/compact Summarize the conversation to free up context window space
/model Switch between available Claude models
/cost Show how much the current session has cost so far

Permission Modes

🛡 Controlling What Claude Can Do

Claude Code asks for permission before modifying files or running commands. You can configure how much autonomy to give it:

🟢 Default (Ask)
Claude asks for approval before every file edit and command execution. Best when you're learning or working on sensitive code.
🔵 Auto-Accept Edits
Claude edits files without asking but still asks before running shell commands. Good balance of speed and safety.
🟠 Full Auto
Claude edits files and runs commands autonomously. Best for trusted tasks like "add tests for everything" or "fix all lint errors."
Start with the default Ask mode. As you get comfortable and understand what Claude is doing, you can gradually increase autonomy. Always review changes before committing to git.
📁 Multi-File Editing

One of Claude Code's most powerful features: it can read and modify multiple files at once. Ask it to "add a new API endpoint with tests and update the documentation" and it will edit your route file, create a test file, and update your README -- all in one operation.

Claude shows you a diff of every change before applying it (in Ask mode), so you can review exactly what's being modified.

🔀 Git Integration

Claude Code understands git natively. It can:

  • Create commits with meaningful messages based on the changes it made
  • Create pull requests with proper descriptions and summaries
  • Handle branches -- create feature branches, switch between them
  • Review diffs -- ask it "what changed in the last 5 commits?" or "review this PR"

Example Prompts

Here are real prompts you can type into Claude Code. Each one kicks off a multi-step task that Claude handles autonomously.

Build a REST API
Build me a REST API with Express and a SQLite database. Include CRUD endpoints for users and posts, input validation, error handling, and a seed script with sample data.
Debug authentication
Find and fix the authentication bug. Users are getting logged out after 5 minutes even though the session should last 24 hours. Check the token expiry, middleware, and cookie settings.
Add tests
Add comprehensive tests for the user module. Cover all CRUD operations, edge cases, authentication, and error scenarios. Use Jest and supertest.
Refactor to hooks
Refactor this component to use React hooks. Convert all class components in src/components/ to functional components with useState and useEffect. Preserve all existing behavior.
Create CI/CD pipeline
Create a CI/CD pipeline with GitHub Actions. It should lint, test, build, and deploy to production on push to main. Add a staging deploy for pull requests.
Understand a project
Explain the architecture of this project. How is the code organized? What are the main modules and how do they interact? Draw a dependency map.
💡
The more context you give in your prompt, the better the result. Instead of "add auth," try "add JWT-based authentication with refresh tokens, bcrypt password hashing, and a /me endpoint that returns the current user."
🆕 New Projects vs Existing Projects

New projects: Create an empty folder, cd into it, and run claude. Tell Claude what you want to build and it will scaffold the entire project -- package.json, folder structure, initial code, everything.

Existing projects: Navigate to the project root and run claude. Claude reads your existing code and works within your established patterns. It's smart enough to match your code style, use your existing libraries, and follow your conventions.

Section 04

Power User Tips

Level up your Claude Code workflow with these advanced techniques.

📚 CLAUDE.md for Project Context

A well-crafted CLAUDE.md is the single biggest improvement to your Claude Code experience. Include:

  • Project overview -- what this project does and who it's for
  • Architecture notes -- how the code is organized, key design decisions
  • Build and test commands -- so Claude can run your project
  • Coding conventions -- your preferred style, patterns to follow or avoid
  • Important files -- point Claude to key configuration or entry points

Claude reads this file at the start of every session. It's like giving your AI teammate a perfect onboarding document every time.

📦 Using /compact to Manage Context

Claude Code has a context window -- a limit on how much conversation it can remember at once. Long sessions with lots of code reading can fill it up.

When you notice Claude getting slower or less accurate, type /compact. This tells Claude to summarize the conversation so far, freeing up space while preserving the important context. Think of it like taking notes and clearing the whiteboard.

🎭 Headless Mode for Scripting

Use claude -p "prompt" to run Claude Code without the interactive conversation interface. The output goes straight to stdout, making it perfect for scripting and automation.

Headless mode examples
$ claude -p "Generate a .gitignore for a Node.js project" > .gitignore
$ claude -p "Explain what this function does" < utils.js
$ claude -p "Write a commit message for these changes" | pbcopy
Line 1: Runs Claude with a prompt and writes the output directly to a .gitignore file.
Line 2: Pipes the contents of utils.js into Claude as input and gets an explanation back.
Line 3: Asks Claude to generate a commit message and copies it to your clipboard (on macOS). These can be combined into shell scripts for powerful automation.
🔄 Multi-Turn Conversations

Don't try to put everything in one prompt. Start broad, then iterate:

  • First: "Set up a new Express API with TypeScript"
  • Then: "Add a users endpoint with CRUD operations"
  • Then: "Add JWT authentication"
  • Then: "Write tests for everything we've built"
  • Finally: "Create a PR with all these changes"

Claude remembers everything from the session, so each prompt builds on the last. This iterative approach gives you more control and better results than one massive prompt.

🌳 Using Claude with Git Worktrees

Git worktrees let you check out multiple branches simultaneously in different directories. Combined with Claude Code, you can run multiple Claude sessions in parallel -- one building a feature, another fixing a bug, another writing tests.

Parallel work with worktrees
$ git worktree add ../my-project-feature feature/new-auth
$ cd ../my-project-feature
$ claude
Result
Now you have a separate Claude session working on the feature branch while your main branch stays untouched in the original directory.
💡
Each terminal tab can run its own Claude Code session. Open three tabs, create three worktrees, and have three Claudes working on different tasks simultaneously. It's like having a team of developers.
Section 05

Claude Cowork

Cowork brings Claude's agentic power to your desktop for knowledge work beyond coding — documents, research, file organization, and more.

What Is Cowork?

While Claude Code lives in your terminal for coding tasks, Cowork lives in the Claude Desktop app for everything else. Instead of responding to one prompt at a time, you describe an outcome, step away, and come back to finished work.

Claude Code
  • Terminal-based
  • Code editing & execution
  • Git integration
  • Developer workflows
Cowork
  • Desktop app
  • File & document processing
  • Research & synthesis
  • Knowledge work

Requirements

  • Claude Desktop app (macOS or Windows)
  • Apple Silicon (M1 or later) for macOS
  • Paid subscription — Pro ($20/mo), Max ($100–$200/mo), Team, or Enterprise
  • Active internet connection
💡
In Claude Desktop, look for the mode selector at the top. Switch from Chat to Tasks — that's Cowork mode.

The 30-Minute Setup That Changes Everything

Out of the box, Cowork is mediocre. With proper context files, it becomes a different tool entirely. Create a dedicated workspace folder and add these files:

1. about-me.md

Who you are, what you do, your current priorities. This gives Claude the context to tailor every output to you.

about-me.md
I'm a product manager at a B2B SaaS startup.
I manage a team of 5 engineers.
My current focus is Q2 planning and our API launch.
I prefer concise, direct communication.

2. voice-and-style.md

How you like things written — tone, formatting rules, examples of writing you like.

voice-and-style.md
Tone: Professional but approachable.
Use bullet points over paragraphs.
Avoid jargon unless the audience is technical.
Always include a TL;DR at the top of long documents.
⚠️
Security tip: Create a dedicated workspace folder for Cowork rather than giving it access to your entire home directory.

⭐ What Cowork Is Great For

📂 File Organization

Sort hundreds of files into categorized folders, rename with consistent conventions, and get a log of every change. Drop a messy Downloads folder and get it organized.

📈 Data Synthesis

Give Claude multiple documents and it reads them all simultaneously, connecting dots across sources rather than just summarizing each. Great for competitive analysis or literature reviews.

📝 Document Generation

Create Excel spreadsheets with working formulas, PowerPoint decks, formatted reports, and SOPs. Outputs are real files, not just text.

🧾 Receipt & Expense Processing

Drop receipts in a folder and ask Claude to create a formatted expense report. It extracts amounts, dates, and vendors automatically.

🔁 Batch Processing

Describe a pattern once and Cowork applies it to everything — rename 200 files, convert formats, extract data from PDFs. One prompt, hundreds of actions.

📱 Remote Task Assignment

On Pro/Max plans, assign tasks from your phone and check in later. Start a research task before a meeting, come back to a finished brief.

Supercharge with Connectors

Cowork integrates with 50+ tools through connectors. Some highlights:

💬 Slack 📄 Google Drive 📝 Notion 📧 Gmail 📅 Google Calendar 📊 Salesforce

See the MCP Connectors page for a full list of integrations.

💡
Key limitation: Cowork has no persistent memory between sessions. That's why the context files (about-me.md, voice-and-style.md) are critical — they re-establish who you are every time. Without them, each session starts from scratch.
Section 06

Fun Projects to Try

Ten project ideas to build with Claude Code -- from beginner to advanced. Each includes the exact prompt to get started.

🎨 Personal Portfolio
Beginner
Build a beautiful personal website to showcase your work, skills, and projects. Responsive design with dark mode support.
Claude Prompt Build me a personal portfolio website. Use vanilla HTML, CSS, and JavaScript. Include a hero section with my name and title, an about section, a projects grid with cards, a skills section with progress bars, and a contact form. Make it responsive and add a dark/light mode toggle. Use a modern, clean design with smooth animations.
Full-Stack Todo App
Intermediate
A complete todo application with user authentication, persistent storage, and a polished UI. Covers the full stack.
Claude Prompt Build a full-stack todo app with authentication. Use React for the frontend, Express for the backend, and SQLite for the database. Include user registration and login with JWT, CRUD for todos with categories and due dates, drag-and-drop reordering, and a clean modern UI. Add proper error handling and input validation.
🧩 Chrome Extension
Intermediate
Create a browser extension that adds useful functionality. Learn about extension APIs, popup UIs, and content scripts.
Claude Prompt Build a Chrome extension that tracks time spent on different websites. Include a popup that shows today's browsing stats with a pie chart, a settings page to set daily limits for specific sites, and notifications when you exceed limits. Use Chrome's alarms and storage APIs. Include a manifest.json for Manifest V3.
🛠 CLI Productivity Tool
Beginner
Build a command-line tool that makes your daily workflow faster. Great for learning Node.js CLI patterns.
Claude Prompt Build a CLI productivity tool with Node.js using Commander.js. Include commands for: managing a local task list (add, list, complete, delete), a pomodoro timer with terminal notifications, quick note-taking that saves to markdown files, and a daily standup generator that summarizes your git commits. Make it installable globally via npm.
💬 Real-Time Chat App
Advanced
A real-time messaging application with WebSockets. Learn about persistent connections, rooms, and live updates.
Claude Prompt Build a real-time chat application. Use React for the frontend and Express with Socket.io for the backend. Include user authentication, multiple chat rooms, direct messaging, typing indicators, read receipts, emoji support, and file sharing. Store messages in SQLite. Add a clean, Slack-inspired UI with a sidebar for channels.
📝 Blog with CMS
Intermediate
A personal blog with an admin panel for writing and managing posts. Covers markdown rendering, routing, and content management.
Claude Prompt Build a blog with a simple CMS. Use Next.js with a SQLite database. Include an admin dashboard for creating, editing, and deleting posts with a markdown editor, a public-facing blog with syntax-highlighted code blocks, tags and categories, an RSS feed, SEO meta tags, and a search feature. Style it with Tailwind CSS.
🌦 Weather Dashboard
Beginner
A beautiful weather app that pulls data from a real API. Great for learning async JavaScript and data visualization.
Claude Prompt Build a weather dashboard using the OpenWeatherMap API. Use vanilla HTML, CSS, and JavaScript. Include current weather with a large display, a 5-day forecast with icons, a search by city name with autocomplete, geolocation to detect the user's city, temperature unit toggle (F/C), and animated weather backgrounds. Make it responsive and visually polished.
💰 Expense Tracker
Intermediate
Track your income and expenses with categories, charts, and budgets. A practical app you'll actually use.
Claude Prompt Build an expense tracker app. Use React with Chart.js for the frontend and Express with SQLite for the backend. Include adding income and expenses with categories, monthly and yearly summaries with pie and bar charts, budget limits per category with alerts, CSV export, and a recurring transactions feature. Add a clean dashboard layout.
🎮 Interactive Learning Game
Intermediate
Build an educational game that teaches coding concepts through interactive challenges -- like your own Teach Me Dev!
Claude Prompt Build an interactive learning game that teaches JavaScript basics. Include a series of coding challenges where users write code in a browser-based editor, an automated test runner that checks their solutions, progressive difficulty with hints, a scoring system with a leaderboard stored in localStorage, and animated celebrations when challenges are completed. Use a dark theme.
🌍 Open Source Contribution
Advanced
Use Claude Code to find and fix a real issue in an open source project. The ultimate way to level up your skills and give back.
Claude Prompt Help me contribute to an open source project. First, explain the architecture of this codebase. Then look through the open issues tagged "good first issue" or "help wanted." Find one that matches my skill level, explain what needs to be done, implement the fix, write tests, and help me create a well-formatted pull request with a clear description.
🚀
Don't worry about getting the prompt perfect. Start with any of these, and then iterate with follow-up messages. "Make it look better." "Add error handling." "Add a loading spinner." Claude Code is built for multi-turn conversations -- each message builds on the last.