FREELofty Health Check: connect your Lofty and see where your leads are slipping.Check my score
    Free guide · AI coding agent

    Claude Code: install, connect & start building

    By the end of this page you will have Claude Code installed on your own computer, signed in to your own account, opened in a folder you chose on purpose, and proven with one small change that you checked yourself and could undo.

    Checked against the official Claude Code documentation at code.claude.com/docs on 7 September 2026. Claude Code ships changes often and the screens move, so if what you see does not match this page, check the official page linked at the bottom before assuming you did something wrong.

    Understand · CHAT ≠ AGENT · read this first

    Claude Code is Claude with hands, working inside a folder you choose

    Claude in a browser writes you an answer that you copy out yourself. Claude Code reads the files on your computer, edits them, and runs commands, inside a folder you pointed it at.

    This is the distinction that decides everything else on this page. A chat window has no access to anything on your machine: whatever it produces, you move by hand. Claude Code is an agentic tool that reads your codebase, edits files, runs commands, and integrates with your development tools. That is more useful and it is also a bigger grant of trust, which is why installing it, choosing where it runs, and deciding what it may do without asking are separate, deliberate steps rather than one download.

    Claude in a browser or app

    A conversation you copy out of

    • You describe something, Claude writes it, and you move the result yourself.
    • It cannot see the files on your computer and cannot change them.
    • Nothing on your machine changes because you had the conversation.

    Claude Code

    An agent that acts on your files

    • Reads your codebase, edits files, runs commands, and works across multiple files and tools.
    • Runs on several surfaces: the terminal, IDE extensions such as VS Code and JetBrains, a desktop app, and the web.
    • Reads your project files as needed, so you do not have to paste them in.

    The folder you start it in

    The boundary it works inside

    • By default Claude has access to files in the directory where you launched it.
    • That directory is the session's primary working directory, and access is extended only by you.
    • Which is why this guide has you choose that folder on purpose rather than starting wherever the terminal happened to open.

    What Claude Code is not

    It is not a website builder that publishes anything for you. It changes files on your computer. Whether those changes ever reach the internet is a separate decision you make with your own hosting.

    It is not a replacement for version control. The documentation says so directly: checkpoints are designed for quick, session-level recovery, and for permanent history you keep using something like Git.

    It is not free with a free Claude account. The documentation states that Claude Code requires a Pro, Max, Team, Enterprise, or Console account, and that the free Claude.ai plan does not include access.

    You do not have to choose one

    Nothing about installing Claude Code takes the browser away. Most people keep using Claude in a browser for thinking, drafting and questions, and reach for Claude Code when the work is a change to files that already exist.

    If what you want today is a month of content or a buyer guide, the browser is the right tool and this page is not the one you need.

    How do I know this landed?

    Nothing to install yet. Answer these out loud:

    1. Where do the files live that Claude Code will be editing: on your computer, or somewhere else?
    2. If you have a conversation with Claude in a browser, what changes on your computer?
    3. What decides which files a Claude Code session can reach?

    Answers: On your own computer. Nothing. The folder you started it in, plus any directory you add on purpose.

    You may stop at WORKING CLAUDE CODE

    WORKING CLAUDE CODE is the finish line of this guide, not a checkpoint on the way to something bigger. Installed, signed in, one proven change, and the safety boundaries decided on purpose is a complete result. Everything after the milestone is optional, and none of it is required for this guide to have worked.

    An account is required, and plans change

    Claude Code requires an account. The documentation states that it needs a Pro, Max, Team, Enterprise, or Console account, and that the free Claude.ai plan does not include Claude Code access. Plans and included usage change, so check the current official pricing page before you pay for anything on the strength of this guide.

    Check the current Claude plans and pricing (opens in a new tab)

    Do you need this guide today?

    Claude in a browser, or Claude Code?

    Both are Claude. They differ in what they can touch and in what you have to do afterwards. This table is here so you can decide honestly whether you need this guide today.

    Where it runs
    BrowserIn a browser tab or the Claude app.
    Claude CodeOn your computer, in a terminal, an IDE, a desktop app, or the web.
    What it can see
    BrowserOnly what you paste or upload into the conversation.
    Claude CodeThe files in the folder you started it in, read as needed.
    Who makes the change
    BrowserYou do. You copy the result out and save it yourself.
    Claude CodeClaude Code edits the files directly, and you review the change.
    Undo
    BrowserNothing to undo. Nothing changed.
    Claude CodeCheckpoints and /rewind for session-level recovery, plus your own version control.
    Account needed
    BrowserWorks on the free plan.
    Claude CodeRequires a Pro, Max, Team, Enterprise, or Console account.
    What it costs you to get wrong
    BrowserA bad draft you do not use.
    Claude CodeA change to a real file, which is why permissions and undo are covered before any real work.

    The browser is the right tool when you want

    • Writing, planning and thinking out loud
    • Anything where you want the words, not the file
    • You do not want to install anything

    Claude Code is the right tool when you want

    • Changing files that already exist on your computer
    • Work that spans several files at once
    • A repeatable job you are tired of doing by hand

    If every row on the right sounds like more than you need right now, that is a real answer. Come back when you have a folder of files you want changed.

    Section 1CHECK

    Check your computer and your account

    Goal

    Confirm this machine and this account can run Claude Code, before you install anything.

    Prerequisites

    • A computer you control and can install software on.
    • The ability to open a terminal, or the willingness to use the desktop app instead.

    Exact user action

    Two things can stop you before you start: an operating system that is too old, and an account that does not include Claude Code. Both are quicker to check now than to diagnose after a failed install.

    The documentation lists the supported platforms as macOS 13.0 or later, Windows 10 1809 or later, Windows Server 2019 or later, Ubuntu 20.04 or later, Debian 10 or later, and Alpine Linux 3.19 or later. Hardware is 4 GB or more of RAM and an x64 or ARM64 processor. An internet connection is required, and the shell can be Bash, Zsh, PowerShell or CMD.

    1. Step 1: Check your operating system version against that list.

      On a Mac, the Apple menu then About This Mac. On Windows, Settings then System then About.

    2. Step 2: Check which Claude plan your account is on.

      The documentation states that Claude Code requires a Pro, Max, Team, Enterprise, or Console account, and that the free Claude.ai plan does not include Claude Code access.

    3. Step 3: Decide which surface you want: the terminal, or the desktop app.

      The desktop app includes Claude Code, so you do not need to install the CLI separately. This guide follows the terminal, because it is the surface the documentation treats as the full-featured one and the one every later step assumes.

    4. Step 4: Pick the folder you intend to work in, and write the path down.

      Not the desktop, and not your whole home directory. A single project folder with files you would not mind seeing changed.

    You are not installing anything in this section. You are removing the two reasons the install would have failed.

    Where

    In your operating system settings, in your Claude account page, and in your own file browser.

    Nothing here happens inside Claude Code, because Claude Code is not on the machine yet.

    Expect to see

    An operating system version at or above the ones listed, and a plan name that is one of Pro, Max, Team, Enterprise, or Console.

    A folder path you could type out from memory.

    Save / apply

    Nothing to save. Note the folder path somewhere you can see it, because you will type it in section 3.

    Verify success

    Before moving on, confirm all three:

    1. Your operating system is at or above the listed minimum for your platform.
    2. Your Claude account is on a plan that includes Claude Code.
    3. You have chosen one specific folder, and it is not your entire home directory.

    Common friction

    Security / privacy

    What this step exposes

    Nothing is exposed in this section, because nothing is installed and nothing is signed in. The one decision with a security consequence is the folder you chose, and you have not acted on it yet.

    If the folder you picked contains client files, contracts, or anything you would not paste into a chat window, choose a different folder for your first run. You can always add a directory later, on purpose.

    Next safe step

    You know the machine and the account will work. Nothing has been installed, so there is nothing to undo.

    Safe to stop here

    How do I know this worked?

    • You can name your operating system version and it is at or above the documented minimum.
    • You can name your Claude plan and it is not the free plan.
    • You can name the exact folder your first session will run in.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Not yet verified2 details this guide will not guess at
    • How much Claude Code usage each plan includes is not stated on the setup or quickstart pages this guide was built from. Check the current official pricing page before you choose a plan on the strength of included usage.
    • Availability is limited to Anthropic supported countries, which the documentation links to as a separate list. This guide does not reproduce that list, because it changes.
    Section 2INSTALL

    Install Claude Code, and prove it installed

    Goal

    Get the claude command onto your machine and see it report its own version.

    Prerequisites

    • Section 1 complete: a supported operating system and a plan that includes Claude Code.
    • A terminal open. On a Mac that is Terminal; on Windows it is PowerShell or CMD.

    Exact user action

    The documentation calls the native install the recommended method, and gives a different one-line command for each platform. Use the one that matches where you are typing, not the one you saw first.

    On Windows the two shells look similar and take different commands. Your prompt shows PS C:\ when you are in PowerShell and C:\ without the PS when you are in CMD.

    macOS, Linux or WSL — native install

    curl -fsSL https://claude.ai/install.sh | bash

    Windows PowerShell — native install

    irm https://claude.ai/install.ps1 | iex

    macOS — Homebrew, if you already use it

    brew install --cask claude-code

    Windows — WinGet, if you already use it

    winget install Anthropic.ClaudeCode

    Prove it installed

    claude --version
    1. Step 1: Open your terminal and run the install command for your platform, copied exactly.

      You do not need to run as Administrator on Windows.

    2. Step 2: Wait for the install to finish, then run claude --version.

      A working installation prints a version number such as 2.1.211 (Claude Code).

    3. Step 3: If you want a fuller check, run claude doctor.

      It prints read-only installation and settings diagnostics without starting a session, including install health and any warnings with suggested fixes.

    4. Step 4: On native Windows, consider installing Git for Windows.

      The documentation recommends it so Claude Code can use the Bash tool. Without it, Claude Code uses PowerShell as the shell tool instead. WSL setups do not need it.

    Native installations update themselves in the background. Homebrew and WinGet installations do not, and are upgraded with their own commands when you choose to.

    Where

    In your terminal application, in any directory. Where you run the installer does not decide where Claude Code can later work.

    On macOS and Linux the native installer manages a launcher at ~/.local/bin/claude.

    Expect to see

    Install output that ends without an error, then a version line from claude --version that reads as a number followed by (Claude Code).

    No browser window yet. Signing in is the next section, not this one.

    Save / apply

    Nothing to save by hand. The installer places the command for you.

    If claude --version worked, that result is the thing you are keeping from this section.

    Verify success

    Run the version command and read the output:

    1. claude --version prints a version number followed by (Claude Code).
    2. The command did not report command not found.
    3. Optionally, claude doctor reports no warnings you do not understand.

    Common friction

    Security / privacy

    What this step exposes

    You have just run an install script from the internet, which is a real grant of trust. Use only the URLs on the official documentation page, and do not accept an install command from a forum post, a video description, or this page if it ever disagrees with the official one.

    Claude Code has been installed but not signed in and not pointed at anything. At this moment it holds no credential and has read nothing of yours.

    Next safe step

    The command exists and reports its version. It cannot do anything yet: there is no account attached and no folder chosen.

    Safe to stop, but not useful yet

    How do I know this worked?

    • claude --version prints a version number followed by (Claude Code).
    • You used the install command for the shell you were actually in.
    • You have not yet been asked to log in, and that is correct at this point.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Not yet verified1 detail this guide will not guess at
    • The documentation lists ripgrep as usually included with Claude Code, and routes the case where it is missing to a separate troubleshooting page. This guide does not reproduce that fix, because it is version and platform specific.
    Section 3CONNECT

    Sign in, and open Claude Code in the folder you chose

    Goal

    Attach one deliberately chosen account, and start a session inside one deliberately chosen folder.

    Prerequisites

    • Section 2 complete: claude --version prints a version.
    • The folder path you wrote down in section 1.
    • A browser you are signed in to with the Claude account you intend to use.

    Exact user action

    These two things happen together, and the order matters. You move into the folder first, then start Claude Code, because the directory you launch it from is the directory it can reach.

    On first launch Claude Code opens a browser window for you to log in. When login completes, the terminal shows Login successful and prompts you to press Enter to continue.

    Move into your folder, then start Claude Code

    cd your-project
    claude

    Switch accounts later, from inside a session

    /login

    Check which account and plan the session is using

    /status
    1. Step 1: In your terminal, change into the folder you chose, replacing your-project with your own path.

      If you are unsure you are in the right place, list the folder contents before you continue. Starting in the wrong directory is the single most common way a first session goes wrong.

    2. Step 2: Run claude.

      Claude Code opens an interactive session in your terminal.

    3. Step 3: Complete the login in the browser window that opens.

      If the browser does not open automatically, press c to copy the login URL to your clipboard and paste it into your browser yourself.

    4. Step 4: If the browser shows a login code instead of returning you to the terminal, paste that code at the prompt that reads Paste code here if prompted.

      The documentation notes this happens when the browser cannot reach Claude Code's local callback server, which is common in WSL2, SSH sessions and containers.

    5. Step 5: Run /status and read which account is signed in.

      Do this before any real work. If you have more than one Claude account, this is the moment to find out which one you actually attached.

    Once logged in, your credentials are stored and you will not need to log in again for each session.

    Above the prompt you will see the version, the current model, and the working directory. Read the working directory line and confirm it is the folder you meant.

    Where

    In your terminal, then in a browser tab that Claude Code opens for you, then back in the terminal.

    Credentials are stored by Claude Code itself: in the encrypted macOS Keychain on a Mac, and in a credentials file under your user profile on Linux and Windows.

    Expect to see

    The terminal reads Login successful and asks you to press Enter to continue.

    A prompt, with the version, current model and working directory shown above it.

    /status naming the account you intended to use.

    Save / apply

    Nothing to save. Claude Code stores the credential itself and reuses it in later sessions.

    To detach the account later, run /logout at the Claude Code prompt.

    Verify success

    You are connected when all three are true:

    1. The terminal showed Login successful.
    2. The working directory shown above the prompt is the folder you chose in section 1.
    3. /status names the account and organization you meant to use.

    Common friction

    Security / privacy

    What this step exposes

    This is the step where Claude Code gains both an identity and a scope. The identity is the account you just signed in with. The scope is the folder you launched in: by default Claude has access to files in the directory where you launched it, and that directory is the session's primary working directory.

    If you work with client material, the account you attach here is the account that will be associated with the work. Choose it deliberately rather than accepting whichever one your browser happened to be signed in to.

    Access is widened only by you: with the --add-dir argument at startup, or the /add-dir command inside a session. Nothing widens it on its own.

    Next safe step

    You have a live session, attached to a known account, scoped to a known folder. It has not read or changed anything yet.

    Safe to stop here

    How do I know this worked?

    • The terminal showed Login successful and you pressed Enter to continue.
    • You can point at the working directory line and say why that folder is the right one.
    • /status shows the account you meant, not a second account you had forgotten about.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Not yet verified1 detail this guide will not guess at
    • Whether a Claude Console account and a Claude.ai subscription can be held side by side and switched between without re-authenticating each time is not settled by the pages this guide was built from. The documented authentication precedence list decides which credential wins, but the day-to-day workflow is not described.
    Section 4FIRST SUCCESS

    Ask before you change: a first task that touches nothing

    Goal

    Prove the session can read your project, while it is still incapable of surprising you.

    Prerequisites

    • Section 3 complete: a live session in the right folder, signed in to the right account.

    Exact user action

    Your first instruction should be a question, not a change. You are testing two things at once: that Claude Code can actually see your project, and that you can read what it tells you well enough to catch it being wrong.

    Claude Code reads your project files as needed, so you do not have to manually add context.

    Your first prompt

    what does this project do?

    A second, more specific one

    explain the folder structure

    See the commands available to you

    /help
    1. Step 1: Type what does this project do? and press Enter.

      Claude will analyze your files and provide a summary.

    2. Step 2: Read the answer against what you already know about the folder.

      This is the actual test. You are not checking whether the answer sounds good; you are checking whether it describes your folder and not a generic project.

    3. Step 3: Ask one follow-up you already know the answer to.

      Something like explain the folder structure. If you can catch a wrong answer here, you can catch one later when it matters.

    4. Step 4: Type /help to see what commands are available in your session.

    If the summary describes files you recognise, the connection between Claude Code, your account, and your folder is proven end to end. That is the whole purpose of this section.

    If it describes something you do not recognise, stop here. Almost always it means the session is running in a different directory than you think.

    Where

    Entirely inside the Claude Code session in your terminal.

    Nothing leaves the session and nothing on disk changes; reading files is not editing them.

    Expect to see

    A summary that names real files and real folders from your project.

    No permission prompt for the reading itself. Read-only file access inside the working directory does not require approval.

    Save / apply

    Nothing to save. This section deliberately produces no artefact.

    What you keep is the knowledge that the session sees your real project.

    Verify success

    Read the answer, then confirm:

    1. The summary names at least one file or folder you recognise by sight.
    2. Nothing in your folder changed. Check the folder in your file browser if you want to see it for yourself.
    3. You could tell whether the answer was right, rather than only whether it sounded confident.

    Common friction

    Security / privacy

    What this step exposes

    This section exposes the contents of the folder you chose to the session. That is the whole point, and it is why section 1 asked you to pick the folder deliberately.

    Read-only file access within the working directory does not require approval, so nothing here will stop and ask. If that makes you uncomfortable for this particular folder, the answer is a different folder, not a different setting.

    Next safe step

    You have proof that the tool can see your work. You have changed nothing, so there is nothing to undo, and this is a genuine place to stop for the day.

    Safe to stop here

    How do I know this worked?

    • The answer named something in your project that you recognised without checking.
    • Your folder is unchanged.
    • You are confident you would have noticed if the answer had been about the wrong folder.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Section 5FIRST SUCCESS

    Your first real edit, checked with your own eyes and undoable

    Goal

    Let Claude Code change one file, verify the change yourself, and prove you can put it back.

    Prerequisites

    • Section 4 complete: the session demonstrably sees your project.
    • One small, low-stakes file you would not mind being wrong for ten minutes.

    Exact user action

    This is the section the whole guide exists for. Everything before it was setup; everything after it is optional. Keep the first edit small enough that you can check it by looking.

    Before you ask for the change, know how to undo it. Claude Code automatically captures the state of your code before each user prompt, and you reopen those points with /rewind, or by pressing Esc twice when the prompt input is empty.

    A small, checkable first change

    add a hello world function to the main file

    Open the rewind menu

    /rewind

    Ask what changed

    what files have I changed?
    1. Step 1: Ask for one small change, in plain language.

      Claude Code finds the appropriate file and shows you the change. If it asks before making the change, select Yes to approve.

    2. Step 2: Open the changed file yourself and read it.

      In your normal editor, or your file browser. Do not accept the session's own description of what it did as proof that it did it.

    3. Step 3: Run /rewind and look at the menu without choosing anything yet.

      The menu lists each prompt you sent during the session. Seeing it once, before you need it, is the point of this step.

    4. Step 4: Practise the undo: choose Restore code, then check the file again.

      The two code restore options appear only when the selected checkpoint has tracked file changes to revert. Restore code reverts file changes while keeping the conversation.

    5. Step 5: Ask for the change again, and this time keep it.

      You now know the change is reversible, which is the only reason to be relaxed about the next hundred of them.

    Know the limits of that undo before you rely on it. Checkpointing does not track files modified by bash commands, and it does not restore edits made by most subagents. Only direct file edits made through Claude's file editing tools are tracked.

    The documentation is explicit that checkpoints are for quick, session-level recovery and are not a replacement for version control.

    Where

    In the session for the request, in your own editor for the check, and back in the session for /rewind.

    Checkpoints are saved with the conversation, so /rewind still works after you resume a session.

    Expect to see

    A change shown to you in the session, and possibly a prompt asking you to approve it.

    A real difference in the file when you open it yourself.

    A /rewind menu listing each prompt you sent during this session.

    Save / apply

    Claude Code writes the file for you. There is no separate save step for the edit itself.

    If the change is one you want to keep beyond this session, section 6 covers committing it, which is the only durable save.

    Verify success

    Do these in order, and do not skip the second one:

    1. You opened the file outside Claude Code and saw the change with your own eyes.
    2. You opened the /rewind menu and saw your prompts listed.
    3. You restored the code once, confirmed the file went back, and then re-applied the change on purpose.

    Common friction

    Security / privacy

    What this step exposes

    This is the first time Claude Code writes to your disk. Everything before this was reversible by closing the terminal; this is not.

    Your undo has documented limits. Bash command changes are not tracked, symlinked and hard-linked paths are not restored, and manual changes you make outside the session are normally not captured.

    Which is the honest argument for section 6: version control is the backstop that covers what checkpoints do not.

    Next safe step

    One real change, made by the tool, verified by you, and proven reversible. This is the smallest complete success the guide is aiming for.

    Not a stopping point

    How do I know this worked?

    • You saw the change in the file yourself, outside Claude Code.
    • You used /rewind at least once and watched a file go back.
    • You can say in one sentence what checkpoints do not cover.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Section 6WORK

    Files, repositories, and the save that actually lasts

    Goal

    Move from one file to real project work, with version control as the safety net rather than checkpoints.

    Prerequisites

    • Section 5 complete: one verified, reversible change.
    • For the Git steps, a folder that is already a Git repository, or the willingness to make one.

    Exact user action

    Claude Code understands your entire codebase and can work across multiple files and tools to get things done. That is the capability worth having, and it is also the point at which session-level undo stops being enough.

    Claude Code works directly with git: it stages changes, writes commit messages, creates branches, and opens pull requests. In practice this means you can ask for version control in the same plain language as everything else.

    See what has changed

    what files have I changed?

    Commit, in plain language

    commit my changes with a descriptive message

    Work on a branch instead of your main line

    create a new branch called feature/first-try

    Generate a starting CLAUDE.md for this project

    /init
    1. Step 1: Ask what has changed, and read the answer before you commit anything.

    2. Step 2: Ask for a branch before you attempt anything larger than a one-file edit.

      A branch is what lets a bad afternoon be discarded rather than unpicked.

    3. Step 3: Ask Claude Code to commit, then check the result yourself.

      A commit is the first save in this guide that survives closing the terminal, deleting the session, and the checkpoint retention window.

    4. Step 4: Once, and only once you have a project you keep returning to, run /init.

      It generates a starting CLAUDE.md by analyzing your codebase, with build commands, test instructions and conventions it discovers. If a CLAUDE.md already exists, /init suggests improvements rather than overwriting it.

    CLAUDE.md is a markdown file in your project that Claude Code reads at the start of every session. Treat it as the place you write down what you would otherwise re-explain, and keep it short: the documentation targets under 200 lines per file, because longer files consume more context and reduce adherence.

    That is as far as this guide takes CLAUDE.md. It is genuinely useful on the second project and mostly a distraction on the first.

    Where

    In the session for the requests, and in your repository for the results.

    A project CLAUDE.md lives at ./CLAUDE.md or ./.claude/CLAUDE.md, and is shared with anyone else working on the project through version control.

    Expect to see

    A list of changed files that matches what you believe you changed.

    A commit you can see in your own Git history, not only in the session transcript.

    If you ran /init, a new CLAUDE.md file in the project root describing your project.

    Save / apply

    The commit is the save. Everything before it is recoverable only for as long as the session's checkpoints survive.

    Claude Code deletes a session's file snapshots in a retention sweep, by default about 30 days after the session last saved one.

    Verify success

    Confirm the work is genuinely saved:

    1. Your Git history shows the commit, checked outside Claude Code.
    2. The commit message describes what actually changed.
    3. If you ran /init, you have read the generated CLAUDE.md and corrected anything it got wrong about your project.

    Common friction

    Security / privacy

    What this step exposes

    A commit is a durable record. Before you ask for one, know what is in the folder: anything Claude Code has touched can end up in it, including files you did not think about.

    CLAUDE.md is shared with your team through version control, so write project standards in it, not personal notes or anything private. The documentation provides CLAUDE.local.md for personal project preferences, to be added to your .gitignore.

    Next safe step

    You can work across a real project and save the result durably. From here the only thing left is deciding, on purpose, what the tool may do without asking.

    Safe to stop, but unproven

    How do I know this worked?

    • You can see your commit in your own Git history, outside Claude Code.
    • You can explain why the commit, not the checkpoint, is the real save.
    • If you created a CLAUDE.md, you have read it and it is true about your project.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Not yet verified1 detail this guide will not guess at
    • Connecting Claude Code to GitHub for automated pull-request review runs through GitHub Actions and a separate install step. That is documented as its own topic and is deliberately outside this first guide.
    Section 7SECURE

    Permissions, what it may touch, and how to stop it

    Goal

    Decide on purpose whether Claude asks before it acts, and know how to interrupt it when it is doing the wrong thing.

    Prerequisites

    • Sections 1 to 6 complete, or at least section 5: you have seen the tool make a change.

    Exact user action

    This section is last because it is easier to understand once you have watched the tool work, and it is the most important section on the page. A permission mode sets which actions Claude can take in a session without asking you first.

    You may not be in the mode you assume. On Pro, Max and Team plans the built-in starting permission mode is auto mode, in which a second model, the classifier, reviews actions instead of you. In Manual mode, Claude Code stops and asks you before most actions that edit files, run shell commands, or reach the network.

    Cycle permission modes inside a session

    Shift+Tab

    Start a session that asks you about everything

    claude --permission-mode default

    See and manage the rules in force

    /permissions

    Explore a codebase without letting it edit

    claude --permission-mode plan
    1. Step 1: Find out which mode your session is actually in, and switch modes with Shift+Tab.

      The mode that reviews every action is named Manual in the CLI. Its config value is default, which is why the flag reads --permission-mode default.

    2. Step 2: For your first weeks, prefer Manual mode.

      In Manual mode the only thing that runs without asking is reading. File edits, shell commands and network access stop and ask you.

    3. Step 3: Learn to read a permission prompt before you answer it.

      Read the actual command or file path in the prompt, not the sentence around it. Approving once is different from approving permanently: choosing Yes, and don't ask again saves a rule to .claude/settings.local.json at the root of the repository.

    4. Step 4: Know how to stop it mid-action: press Esc.

      Esc interrupts Claude or closes a dialog. Ctrl+C interrupts a running operation or clears the input. Ctrl+D exits the session.

    5. Step 5: Start a fresh session when the work changes.

      Use /clear to clear the conversation history. A session that has drifted across three unrelated tasks gives worse answers than a new one aimed at the task in front of you.

    6. Step 6: Review what you have approved with /permissions.

      The dialog lists all permission rules and the settings.json file each rule comes from, so a rule you approved in a hurry three weeks ago is visible rather than invisible.

    Refusing an action costs you nothing. If a prompt asks to run something you do not recognise, decline it and ask Claude in plain language what it was trying to do and why.

    Permission rules are enforced by Claude Code, not by the model. Instructions in your prompt or CLAUDE.md shape what Claude tries to do, but they do not change what Claude Code allows.

    Where

    Shift+Tab, Esc and /permissions all work inside the running session.

    Permanent approvals are written to .claude/settings.local.json at the root of the git repository.

    Expect to see

    A visible mode indicator that changes as you press Shift+Tab.

    In Manual mode, prompts before file edits and shell commands.

    A /permissions dialog listing every rule and where it came from.

    Save / apply

    To make every terminal session on your machine start in Manual mode, set permissions.defaultMode to "default" in ~/.claude/settings.json.

    That is a deliberate, persistent choice, and it is the one this guide recommends for a first month.

    Verify success

    You are in control when you can do all four:

    1. You can say which permission mode your current session is in.
    2. You can switch to Manual mode and see the prompts appear.
    3. You have pressed Esc to stop Claude at least once, on purpose.
    4. You have opened /permissions and read what is already approved.

    Common friction

    Security / privacy

    What this step exposes

    This is the section that decides how much of your machine a mistake can reach. Permission modes set the baseline, and permission rules layer on top to pre-approve or block specific tools. Deny rules block in every mode.

    Claude Code has access to files in the directory where you launched it. That boundary is the reason section 1 asked you to choose a folder rather than starting in your home directory.

    The mode that skips all checks, bypassPermissions, is documented for isolated containers and virtual machines only. If you are following this guide on your own laptop, that mode is not for you.

    Next safe step

    You have decided, on purpose, what Claude Code may do without asking, and you know how to stop it. That completes the guide.

    Finish line

    How do I know this worked?

    • You can name your current permission mode and say why you chose it.
    • You have stopped Claude mid-action with Esc and watched it stop.
    • You have read your own /permissions list and recognised every rule in it.
    • You know which folder this session can reach, and why.

    If any line is untrue, go back to Verify success and then Common friction above before continuing.

    Not yet verified2 details this guide will not guess at
    • Auto mode's classifier decides which actions it reviews and which skip review. The full list is maintained on the official permission-modes page and changes, so this guide does not reproduce it.
    • The built-in starting permission mode depends on your plan, your version, and whether Claude Code could fetch its feature flags. The documented way to know for certain is to look at the mode indicator in your own session rather than to reason about which case you are in.

    Milestone

    WORKING CLAUDE CODE

    If the checklists in all seven sections are complete, you have a WORKING CLAUDE CODE:

    • Installed from the official source on a computer you control, and proven with claude --version.
    • Signed in with one deliberately chosen account, confirmed with /status rather than assumed.
    • Opened in a folder you chose on purpose, and you can say why that folder and not another.
    • One real change made by the tool, checked with your own eyes outside the session, and proven reversible with /rewind.
    • A durable save you can see in your own version control, not only in the session.
    • A permission mode chosen on purpose, a permissions list you have read, and Esc pressed at least once to stop it.

    That is the finish line, not a checkpoint. Everything below is optional, and none of it is needed for this guide to have worked.

    Keeping it working

    • Native installations update themselves in the background. Homebrew and WinGet installations do not, and need their own upgrade command when you choose to run it.
    • Run claude doctor when something feels wrong. It reports installation and settings diagnostics without starting a session.
    • Re-read /permissions every so often. Approvals accumulate quietly, and the list is the only place they are visible.
    • Commit before anything ambitious. Checkpoint snapshots are removed in a retention sweep, by default about 30 days after the session last saved one; a commit is not.

    Nothing beyond a plan that includes Claude Code was required to reach this point, and this guide has not asked you to buy anything else.

    Optional · after WORKING CLAUDE CODE

    Go further: what do you want it to do next?

    You have a working setup. These are directions people go next, described as outcomes rather than instructions, so you can tell which one you actually want before you spend an evening on it. None of them is a prerequisite for anything above.

    Rules that apply to every item

    Do one at a time, and only when the thing above it is boring.

    Anything marked Outline is a real documented capability that this guide has not walked through step by step. Follow the official documentation for those, not a half-remembered version of this page.

    If a direction does not solve a problem you actually have this month, skip it.

    Turn a repeatable job into a written instruction

    Verified

    A CLAUDE.md in your project that Claude Code reads at the start of every session, so you stop re-explaining the same context.

    This is the honest first step from a working setup towards a working system: write down what you would otherwise say twice.

    Run /init to generate a starting file, then correct it. Keep it under 200 lines; longer files consume more context and reduce adherence.

    Work somewhere other than the terminal

    Verified

    The same Claude Code, driven from VS Code, a JetBrains IDE, a desktop app, or a browser.

    Each surface connects to the same underlying engine, so your project's CLAUDE.md files, settings and MCP servers work across all of them.

    Let it use tools beyond your files

    Outline

    Claude Code reaching an external system through the Model Context Protocol, an open standard for connecting AI tools to external data sources.

    This is where a coding assistant starts becoming a working system. It is also where a permission mistake stops being local to your laptop, so do it after section 7 is second nature.

    Documented as its own topic with its own quickstart. Not covered here.

    Automated review on your pull requests

    Outline

    Claude Code running in CI to review code and triage issues, rather than only on your own machine.

    Useful once more than one person touches the project. Genuinely unnecessary before that.

    Runs through GitHub Actions or GitLab CI/CD and has its own setup path in the official documentation.

    None of these makes your setup more correct. A working Claude Code that you understand beats an elaborate one you do not.

    Read before you point it at anything that matters

    What Claude Code can reach, and what you decide

    Read this before you point Claude Code at anything that matters: client files, a live website, or a repository other people depend on. None of it is exotic; all of it is decided by choices you already made in sections 3 and 7.

    What a session can reach

    • The folder you launched in. By default Claude has access to files in the directory where you launched it, and that directory is the session's primary working directory.
    • Any directory you added on purpose, with --add-dir at startup or /add-dir during a session. These follow the same permission rules as the original working directory.
    • Whatever your permission mode allows without asking. In Manual mode that is reading only; in auto mode a classifier reviews actions instead of you.

    What you decide

    • Which account is attached, which you confirm with /status rather than assume.
    • Which folder a session starts in, which is the single most consequential decision on this page.
    • Which permission mode you work in, cycled with Shift+Tab or set with permissions.defaultMode.
    • Which approvals become permanent, which you can review and remove in /permissions.

    Keep your clients' work separate

    If you work on more than one client's material, keep them in separate folders and start a separate session for each. The working directory is the boundary Claude Code actually enforces, so one folder per client is the simplest way to make that boundary mean something.

    Do not add a client folder to a session that is already running in another client's project. The /add-dir command makes it easy and the boundary does not come back when you are done.

    About this guide

    This guide is based on the official Claude Code documentation at code.claude.com/docs, read on 7 September 2026, and is updated as the product changes. Where the documentation does not settle a question, this page says so in a Not yet verified note rather than presenting a guess as fact. Claude Code ships often; the official pages are the authority whenever they disagree with this one.

    Read the official Claude Code documentation (opens in a new tab)