To set up Claude Code, install it with the command for your system, open a new terminal, run claude in your project folder and sign in through your browser. Then run /init to create a CLAUDE.md, choose a permission mode and add your first skill.
Claude Code is Anthropic's AI coding agent. You start it in a project folder, describe what you want, and it reads your code, edits files and runs commands. This guide takes you from nothing to a useful first session. Everything here follows the official quickstart and setup docs as of today.
What do you need for Claude Code?
You need an account that includes Claude Code, a supported system and a project to work on. Before you start, check that you have:
- An account. A Claude Pro, Max, Team or Enterprise plan, a Claude Console account, or access through Amazon Bedrock, Google Cloud or Microsoft Foundry. The free Claude plan does not include Claude Code. Plans change, so check claude.com/pricing for current details.
- A supported system. macOS 13 or later, Windows 10 1809 or later, Ubuntu 20.04+, Debian 10+ or Alpine 3.19+, with 4 GB of RAM or more.
- A project to work on. Any folder of code. A small side project is a good first choice.
Never used a terminal? Anthropic has a terminal guide, and there is also a desktop app if you prefer not to use the terminal at all.
Step 1: Install Claude Code
Pick the command for your system and paste it into a terminal. The native installer is the recommended option and updates itself in the background.
macOS, Linux or WSL:
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell (your prompt starts with PS C:\):
irm https://claude.ai/install.ps1 | iex
Windows CMD (your prompt starts with C:\ and no PS):
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
Prefer a package manager? These work too, but they don't update automatically:
# macOS with Homebrew (stable channel)
brew install --cask claude-code
# Windows with WinGet
winget install Anthropic.ClaudeCode
# npm, needs Node.js 22 or later. Don't use sudo.
npm install -g @anthropic-ai/claude-code
There are also signed apt, dnf and apk repositories for Debian, Ubuntu, Fedora, RHEL and Alpine, listed on the setup page.
On Windows, you can run Claude Code natively or inside WSL. Installing Git for Windows is recommended for native Windows so Claude Code can use Bash; without it, Claude Code uses PowerShell instead.
Step 2: Check the install
Open a new terminal window and run:
claude --version
You should see a version number followed by (Claude Code). If the shell says claude is not found, the install folder isn't on your PATH yet; the troubleshooting page walks through the fix. For a fuller health check, run claude doctor.
Step 3: Start a session and sign in
Go to your project and start Claude Code:
cd path/to/your-project
claude
The first time, it asks you to log in. Follow the prompts and finish in your browser. Your credentials are saved, so you won't need to do this again. To switch accounts later, type /login inside a session.
When the prompt appears you'll see the version, the current model and your working folder above it.
Step 4: Ask your first questions
Start by letting Claude read the project. You don't need to paste any files; it opens what it needs.
what does this project do?
where is the main entry point, and how do I run the tests?
explain the folder structure
Then try a small change:
add input validation to the signup form and show an error under each field
Claude Code finds the right files and shows you the edit. In Manual mode it asks before changing files or running commands. Read the diff, then approve or ask for changes. It can also handle Git for you:
what files have I changed? commit them with a clear message
Two habits help a lot from day one. First, be specific: "fix the login bug where users see a blank screen after a wrong password" works much better than "fix the bug." Second, for bigger tasks, ask Claude to look around and make a plan before it writes code.
Step 5: Create a CLAUDE.md with /init
Each session starts fresh. CLAUDE.md is a Markdown file that Claude reads at the start of every session, so it's where you put what you'd otherwise repeat: build commands, test commands, conventions.
Run this inside a session:
/init
Claude analyzes your codebase and writes a starting CLAUDE.md with the commands and conventions it finds. If one already exists, it suggests improvements instead of overwriting it. Then edit it to add what Claude couldn't discover on its own:
# Project notes
- Use pnpm, not npm.
- Run pnpm test and pnpm lint before saying a task is done.
- Never edit files in src/generated/. They are built from the schema.
- API handlers live in src/api/. Validate all input with zod.
Keep it short. Anthropic's docs suggest staying under about 200 lines, because a long file uses more context and gets followed less reliably. If your repo already has an AGENTS.md for other agents and no CLAUDE.md, Claude Code reads that instead. The CLAUDE.md guide goes deeper.
Step 6: Choose how much to approve
Permission modes decide what Claude can do without asking. Press Shift+Tab in a session to cycle through them.
| Mode | What it does |
|---|---|
Manual (default) |
Asks the first time it uses each tool |
| Accept edits | Edits files and runs common file commands without asking |
| Plan | Reads and explores, but doesn't edit your source files |
| Auto | Runs without routine prompts, with a background check on risky actions. Recent versions start in this mode when it's available |
Start in Manual or Plan while you learn how it works. Once you trust the routine actions in a project, allow them so you aren't asked every time. Run /permissions to see and edit rules, or add them to .claude/settings.json:
{
"permissions": {
"allow": ["Bash(npm run *)", "Bash(git commit *)"],
"deny": ["Bash(git push *)"]
}
}
This lets Claude run npm scripts and make commits without asking, and refuses git push. There is also a mode that skips all prompts; the docs say to use it only in isolated environments like containers.
Step 7: Add your first skill
A skill is a folder with a SKILL.md file. Claude reads each skill's short description at the start of a session and loads the full instructions when your request matches. You can also run one yourself with a slash, like /release-notes.
Create one by hand:
mkdir -p ~/.claude/skills/release-notes
Then save this as ~/.claude/skills/release-notes/SKILL.md:
---
name: release-notes
description: Draft release notes from merged pull requests, grouped as New,
Improved and Fixed. Use when the user asks for release notes or a changelog.
---
1. List the pull requests merged since the last tag.
2. Group them as New, Improved and Fixed.
3. Write one plain line per change, from the user's point of view.
Or install skills someone else wrote, straight from GitHub:
npx skills add https://github.com/<owner>/<repo>.git
Start a new session and ask for release notes. See Claude Code skills for where skills live and how to write a description that gets picked up.
Commands worth knowing
| Command | Where | What it does |
|---|---|---|
claude |
Shell | Start a session |
claude "task" |
Shell | Start with a first prompt |
claude -p "query" |
Shell | Run one task and exit |
claude -c |
Shell | Continue the last conversation in this folder |
claude -r |
Shell | Pick a past conversation to resume |
/help |
Session | List commands |
/clear |
Session | Clear the conversation |
/exit |
Session | Quit |
Type / in a session to see every command and skill you have.
Next steps
Once the basics feel natural:
- Read Claude Code best practices for prompting and project habits.
- Add more skills for tasks you repeat: code reviews, commit messages, migrations.
- Look at hooks for things that must happen every time, like formatting after each edit.
- Connect tools you already use through MCP.
As your skills pile up, keep them somewhere safe. Kipt saves your prompts and skills in your own private GitHub repo: paste to save, ⌘K to find, and Promote to skill to turn a prompt into a SKILL.md. Then npx skills add https://github.com/<you>/<repo>.git installs your whole library on any new machine.