Getting Started with Claude Code: Zero to Dangerous in 10 Minutes
Claude Code is a terminal-based AI assistant from Anthropic. Not a chatbot. Not an autocomplete plugin. It runs in your terminal, reads your entire codebase, writes files, runs commands, and figures out how to do what you ask. It is the closest thing to having another developer sitting next to you. You describe what you want, it reads your code, makes a plan, and does it. If it needs to install something, it tells you. If it needs to edit twelve files to wire up a feature, it edits twelve files. This guide gets you from zero to productive in about ten minutes.
What You Need
Three things. That is the whole list.
- A terminal - Any OS works. Mac Terminal, Windows PowerShell, Linux shell, WSL. If you can type commands into it, you are good.
- A Claude subscription or API account - Pro ($20/month), Max ($100/month), Teams, or Enterprise. Or a Console API account if you prefer pay-per-token.
- A project to work on - Any codebase. A side project, a work repo, even a brand new empty folder. Claude Code works best when it has actual code to look at, but it can also scaffold new projects from scratch.
You do not need Node.js anymore (though the npm install still works). The native installer handles everything.
Installation
There are a few ways to install. The native install is recommended because it auto-updates, so you always have the latest version without thinking about it.
# Native install (recommended) - auto-updates
# Mac / Linux / WSL:
curl -fsSL https://claude.ai/install.sh | bash
# Windows (PowerShell):
irm https://claude.ai/install.ps1 | iex
# Homebrew (Mac/Linux):
brew install --cask claude-code
# WinGet (Windows):
winget install Anthropic.ClaudeCode
# npm (any platform, requires Node.js):
npm install -g @anthropic-ai/claude-code
Heads up on updates
The native installers (curl and PowerShell) auto-update themselves. Homebrew, WinGet, and npm do not. If you use those, you will need to manually update when new versions drop. Given how fast Claude Code ships new features, auto-update is worth it.
After installing, open a new terminal window (or restart your shell) and type claude --version to confirm it works.
Your First Session
Here is the play-by-play. Open your terminal and navigate to a project you want to work on.
# Navigate to your project
cd ~/projects/my-app
# Start Claude Code
claude
The first time you run it, Claude Code will ask you to log in. It opens your browser, you authenticate with your Anthropic account, and you are done. This only happens once.
Now you are in an interactive session. You will see a prompt waiting for your input. Try the single best first command:
> what does this project do?
Claude reads your files, looks at your directory structure, checks your package.json or equivalent, and gives you a summary. It is not guessing. It is actually reading your code. On a medium-sized project this takes a few seconds. On a huge monorepo it might take longer, but it will figure it out.
Now try making an edit:
> add a loading spinner to the login page
Here is where the permission prompt shows up. Claude Code will show you exactly what it wants to do - which files it wants to edit, what changes it wants to make - and ask for your approval. You will see something like:
Claude wants to edit:
src/pages/Login.tsx
Allow? (y/n)
Press y to approve, n to reject. You are always in control. Claude Code never changes your files without asking first (unless you change the permission mode, which we will cover below).
Keyboard shortcuts you should know right away
- Escape - Cancel the current operation. Claude stops what it is doing.
- Ctrl+C - Exit Claude Code entirely.
- Shift+Tab - Cycle through permission modes (more on this below).
- Up arrow - Recall your previous message.
- Type and hit Enter mid-response - Interrupt Claude. It stops and adjusts to your new input.
Essential Commands
You can use Claude Code in interactive mode (start a conversation) or one-shot mode (run a single task and get out). Here is the reference table.
| Command | What it does | |---|---| | claude | Start an interactive session. This is the main way to use it. | | claude "task" | One-shot mode. Give it a task in quotes, it does the work and exits. | | claude -p "query" | Print mode. Quick query, prints the answer, exits. Good for scripting. | | claude -c | Continue your last conversation. Picks up right where you left off. | | claude -r | Resume a previous session. Shows you a list to choose from. | | claude commit | Smart git commit. Analyzes your changes and writes the commit message. | | /help | Inside a session, shows all available slash commands. | | /model | Switch between models mid-session (Sonnet, Opus, etc). | | Shift+Tab | Cycle through permission modes without restarting. |
The claude -c command is one you will use constantly. Close your terminal, come back later, run claude -c, and you are right back in your conversation with full context.
Permission Modes
This is important to understand early. Claude Code has four permission modes that control how much autonomy it gets. You can cycle through them with Shift+Tab during a session, or set them when you start.
1. Default (Suggest)
Asks before every file edit and every command. This is where you start, and it is totally fine to stay here. You see exactly what Claude wants to do before it does it. Good for learning the tool and for working on code you care about.
2. Auto-accept edits
Claude edits files freely without asking. It still asks before running terminal commands (like npm install, git push, etc). This is the sweet spot for most work once you trust the tool. It speeds things up a lot without giving up control over command execution.
3. Plan mode
Read-only. Claude can look at your code but cannot change anything. It creates a plan and waits for your approval before acting. Great for exploring unfamiliar codebases or when you want Claude to think through a problem before touching anything.
4. Full send
The --dangerously-skip-permissions flag. Yes, the name is intentional. Claude can do anything - edit files, run commands, install packages, push to git - without asking. The long scary flag name is a reminder that you are giving an AI unsupervised access to your system. Use it when you know what you are doing and you want maximum speed. Not recommended for your first session.
Practical advice
Start with Default mode. After a few sessions, switch to auto-accept edits for everyday work. Use Plan mode when exploring new codebases. Save full send for automated pipelines and CI/CD jobs where you have tested the workflow already.
Where Claude Code Lives
Claude Code started as a terminal tool, but it has spread to just about everywhere developers work. Here is the full list of places you can use it:
- CLI (terminal) - The original. Open your terminal, type
claude. This is the most direct way to use it and where it is most powerful. - Desktop app - A standalone application that wraps the CLI experience. The interesting bit: it uses git worktrees so you can run parallel sessions on the same repo without conflicts.
- VS Code extension - Claude Code embedded right in your editor. You get the same capabilities without leaving VS Code.
- JetBrains plugin - Same idea, different editor. Works with IntelliJ, WebStorm, PyCharm, and the rest of the JetBrains family.
- Web - Available at claude.ai/code. A browser-based version for when you do not want to install anything or you are on a machine where you cannot.
- Slack integration - Use Claude Code from Slack channels. Good for team workflows where someone can ask Claude to look into something without switching to a terminal.
- CI/CD - GitHub Actions, GitLab CI, and other pipelines. This is where the
--dangerously-skip-permissionsflag actually makes sense. Automated code review, test generation, migration scripts running in CI.
Pick whatever fits your workflow. The CLI gives you the most flexibility, but the editor integrations are great if you spend most of your time in VS Code or JetBrains.
Tips That Actually Help
After using Claude Code for a while, these are the things that actually make a difference in how good your results are.
Be specific with your requests
"Fix the login bug where expired sessions show a blank screen instead of redirecting to /login" will get you a better result than "fix the bug." Claude Code uses your description to search your codebase. More detail means it finds the right files faster and makes the right changes.
Let it explore before it builds
Before saying "refactor the auth module," try "analyze the auth module and tell me how it works." Claude will read through the code, map out the dependencies, and give you a summary. Then you can make informed decisions about what to change. The analysis step takes thirty seconds and saves you from bad refactors.
Interrupt whenever you want
If Claude is going down the wrong path, just start typing and hit Enter. It stops immediately and adjusts to your new input. You do not have to wait for it to finish. You do not have to start over. Just redirect it.
Use /compact when context gets heavy
Long sessions build up a lot of context. When things start feeling slow or Claude seems to lose track of earlier parts of the conversation, type /compact. It summarizes the conversation so far and frees up context space. Think of it as clearing your working memory without losing the important bits.
Set up a CLAUDE.md file
Create a CLAUDE.md file at the root of your repo. This is where you put project-specific instructions that Claude reads at the start of every session. Things like:
# CLAUDE.md
## Project context
This is a React + TypeScript app using Tailwind CSS.
The API lives in /server and uses Express.
## Rules
- Use functional components, no class components
- All new components go in /src/components
- Tests go next to the file they test with .test.ts suffix
- Never modify files in /src/legacy (deprecated code)
## Common tasks
- To run dev server: npm run dev
- To run tests: npm test
- To deploy: npm run deploy
Claude reads this file automatically. You write it once, and every session starts with that context. It is like onboarding a new developer except the developer actually reads the docs.
Pricing
Quick breakdown so you know what you are paying for.
- Pro ($20/month) - Uses Sonnet by default. Good for most tasks. There is a usage limit that resets monthly, and you will hit it if you are using Claude Code heavily all day, but for normal use it is plenty.
- Max ($100/month) - 200K context window, unlimited usage, access to Opus models. If you use Claude Code as your primary development tool, this is the tier that makes sense. No rate limits means no interruptions.
- Teams / Enterprise - For organizations. Admin controls, usage management, centralized billing. Contact Anthropic for pricing.
- Console API - Pay per token. You get an API key from console.anthropic.com and Claude Code uses it directly. No subscription needed. Good if you want to control costs tightly or you already have API credits.
If you are a student, check whether your university has institutional access to Anthropic tools. Some programs include it, and it can save you the subscription cost entirely.
---
Stop reading. Open your terminal. Type claude. Ask it about your project. That is it. You will learn more in five minutes of using it than in any article, including this one.
The terminal is waiting. Go type something.
Related Power of AI pages
Keep reading with AI Finder, Prompt Studio, ChatGPT vs Claude vs Gemini, the AI glossary, and Which AI Should You Use?.