Claude Code is Anthropic's agentic coding tool. It reads your codebase, edits files, runs builds and tests, and works with git, all from a plain-English request. The difference from autocomplete tools is that it works a task through end to end. Ask it to "add pagination to the orders API and update the tests" and it explores the repository, plans the change, edits several files, runs the tests, fixes what fails and reports back.
It runs in your terminal, in VS Code and JetBrains IDEs, in the Claude desktop app, and in the browser at claude.ai/code. As of October 2026 it needs a paid Claude plan (Pro at $20 per month and up, Team or Enterprise) or an Anthropic Console account billed per token. The free Claude plan doesn't include it.
Installing it
Use the native installer. It's the recommended method, and it updates itself in the background.
# macOS, Linux and WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
On Windows you don't need to run as Administrator. Make sure you run each command in the right shell: if you see "The token '&&' is not a valid statement separator", you pasted the CMD line into PowerShell. Git for Windows is optional but recommended. With it, Claude Code uses Git Bash for shell commands; without it, it uses PowerShell. Sandboxing on Windows requires WSL 2.
Package managers work too, with one catch: Homebrew, WinGet and the signed apt, dnf and apk repositories for Debian, Ubuntu, Fedora, RHEL and Alpine don't auto-update, so you'll have to upgrade those yourself.
# Homebrew (stable channel; no auto-update)
brew install --cask claude-code
# WinGet (no auto-update)
winget install Anthropic.ClaudeCode
# npm (requires Node.js 22+; never use sudo)
npm install -g @anthropic-ai/claude-code
Then check the install and start your first session inside a project folder:
claude --version # confirm the install
claude doctor # check installation and settings
cd my-project
claude # start a session; log in through the browser
If you get "claude: command not found", open a new terminal; if it still fails, the install folder isn't on your PATH. The official setup guide covers that and lists the system requirements: macOS 13+, Windows 10 1809+ or Windows Server 2019+, Ubuntu 20.04+, Debian 10+ or Alpine 3.19+, and at least 4 GB of RAM.
Picking a surface
Surface | Best for | Notes |
|---|
Terminal (CLI) | Full feature set, scripting, CI | The primary surface; supports claude -p for non-interactive runs |
VS Code extension | Inline diffs, @-mentions, plan review in the editor | Also installs in Cursor |
JetBrains plugin | IntelliJ IDEA, Rider, PyCharm, WebStorm | Requires the CLI installed separately |
Desktop app | Visual diff review, parallel sessions, scheduled tasks | macOS and Windows; Linux in beta; paid plan required |
Web (claude.ai/code) | Long-running cloud tasks on GitHub repos, parallel work | Also available in the Claude iOS and Android apps |
CI and chat | PR review, issue triage, bug reports from Slack | GitHub Actions, GitLab CI/CD, Slack integration |
Every surface runs the same engine, so your project's CLAUDE.md, settings and MCP servers carry across, and you can move work between them: /desktop hands a terminal session to the desktop app, and claude --teleport pulls a web session into your terminal.
How a session works
Claude Code has the same tools you do: reading and searching files, editing, running shell commands, fetching web pages, and calling external systems through MCP. You decide what it may do without asking through permission rules and modes. A typical task flows like this:
You describe the task in plain English
↓
Claude Code reads CLAUDE.md and searches the codebase
↓
It plans the change (or shows you a plan first in plan mode)
↓
It edits files and runs build, test and lint commands
↓
It fixes failures, then summarizes or commits the change
Type / in a session to see every command. These are the ones you'll use most:
Command | What it does |
|---|
/init
| Creates a CLAUDE.md for the project |
/plan
| Enters plan mode, optionally with a task |
/clear
| Starts a fresh conversation with empty context |
/compact
| Summarizes the conversation to free context |
/context
| Shows what is using your context window |
/model
| Switches the model and effort level |
/rewind
| Rolls back the conversation and/or code to a checkpoint |
/permissions
| Manages allow, ask and deny rules |
/mcp
| Manages MCP servers and OAuth logins |
/usage
| Shows session cost and plan usage limits |
/security-review
| Reviews your branch's changes for vulnerabilities |
On models: Claude Code uses Anthropic's current Claude models, switchable with /model. As of October 2026, Anthropic recommends Claude Opus 5.5 for most work, with Sonnet 5.5 as the faster option and Fable 5.1 for the hardest long-horizon tasks.
Teaching it your project
Out of the box, Claude Code knows nothing about your conventions. Four mechanisms fix that. CLAUDE.md is context that's always loaded. Skills are instructions loaded on demand for a specific task. Subagents are separate workers with their own context. Hooks are shell commands that run automatically, which makes them the only one of the four that is guaranteed to happen.
CLAUDE.md
CLAUDE.md is a Markdown file in your project root that Claude Code reads at the start of every session. Put in it what a new team member would need: build and test commands, architecture, conventions and things to avoid. Run /init to generate a first draft from your codebase.
# Orders Service
## Commands
- Build: dotnet build
- Test: dotnet test --filter Category!=Integration
- Format: dotnet format
## Conventions
- Minimal APIs in /Endpoints, one file per resource
- Use EF Core migrations; never edit the database by hand
- Every new endpoint needs an integration test
Keep it short and specific, because a long file wastes context on every request. If your repo already has an AGENTS.md for other coding agents, Claude Code can read that instead. It also keeps an auto memory of things it learns as it works.
Skills
A skill is a folder with a SKILL.md file: a description plus instructions for Claude to follow. You run it as /skill-name, or Claude loads it automatically when your request matches the description. Custom slash commands have been merged into skills, so old .claude/commands/*.md files still work.
.claude/skills/add-endpoint/SKILL.md
---
description: Adds a new minimal API endpoint with validation and an integration test. Use when asked to add an API endpoint.
---
1. Create the endpoint in /Endpoints/{Resource}Endpoints.cs.
2. Add request validation with FluentValidation.
3. Add an integration test in tests/Api.IntegrationTests.
4. Run dotnet test and fix failures before finishing.
Project skills live in .claude/skills/ and are shared through the repo; personal skills live in ~/.claude/skills/.
Subagents
Subagents are helper agents with their own context window, system prompt and tool list. Claude delegates work to them, such as searching a large codebase, so the main conversation stays clean. The built-in ones are Explore (fast, read-only search), Plan (research for plan mode) and general-purpose. You can define your own:
.claude/agents/code-reviewer.md
---
name: code-reviewer
description: Reviews code for quality, security and best practices
tools: Read, Glob, Grep
model: sonnet
---
You are a code reviewer. Analyze the changed code and give specific,
actionable feedback on correctness, security and readability.
Hooks
Hooks are shell commands that run at fixed points: before a tool runs, after it runs, when Claude stops, when a session starts, and so on. A line in CLAUDE.md asking Claude to format code is a request. A hook makes it happen every time. This example from the official hooks guide formats every file Claude edits:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
}
]
}
]
}
}
A PreToolUse hook that exits with code 2 blocks the action, which is how you protect files such as .env.
MCP servers
The Model Context Protocol connects Claude Code to external tools such as GitHub, Jira, databases, browsers and documentation servers:
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
claude mcp add playwright npx @playwright/mcp@latest
claude mcp list
Add --scope project to save a server to .mcp.json so the whole team gets it. If a server shows as failed, run claude mcp list, then start the server command manually to see its error. If you're building your own server, read what a .NET MCP server should never expose to AI first.
Controlling what it can do
Press Shift+Tab to cycle permission modes during a session:
Mode | What runs without asking |
|---|
Manual (default) | Reads only; edits and commands prompt you |
Accept edits | Reads, file edits and common file commands in the working directory |
Plan | Reads and research only; edits wait until you approve a plan |
Auto | Everything, with a separate classifier model reviewing actions (when available) |
Don't ask | Only pre-approved tools; everything else is denied (good for CI) |
Bypass permissions | Everything, unchecked; only for isolated containers or VMs |
If I had to pick one habit, it would be plan mode for anything non-trivial. Claude researches first and shows you a plan, and you correct a wrong approach before any code changes. Reviewing a plan is far cheaper than reviewing a wrong diff.
Permission rules in .claude/settings.json sit on top of the mode, and deny rules apply in every mode. Keep the allow list narrow: specific commands like Bash(dotnet test *) rather than broad wildcards, with secrets files denied outright. Narrow allow rules for your build and test commands are also the cure for constant permission prompts.
{
"permissions": {
"allow": ["Bash(dotnet test *)", "Bash(dotnet build *)", "Read"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)", "Bash(curl *)"]
}
}
Workflows that work well
Getting oriented in an unfamiliar codebase is one of the best first uses, because nothing gets changed:
> Explain how authentication works in this solution. Which projects
are involved, where are tokens validated, and what would break if
I upgraded the JWT library?
Bug fixing works best when you hand over the evidence and say how to verify the fix:
> This test fails with "InvalidOperationException: Sequence contains
no elements" in OrderService.GetLatest. Find the root cause, fix it,
add a regression test, and run the test project.
That last sentence matters. Claude does its best work when it can run something and check the result, so always name the test command or the expected output. Be specific about scope, too: "fix the null check in InvoiceMapper.cs" beats "fix the bugs".
For a feature, use plan mode end to end:
- Press Shift+Tab until the mode shows Plan, or type
/plan add CSV export to the reports page. - Read the plan and correct the approach, file locations or libraries.
- Approve it, and let Claude implement and run the tests.
- Review the diff, then ask it to commit with a descriptive message.
Commit often, so each step is easy to review and revert (/rewind can also restore checkpoints), and run /clear when you switch tasks. Stale context costs tokens and confuses the model.
Finally, claude -p makes it scriptable. Combined with the Don't ask mode, so that only pre-approved tools run, it fits into CI, and there are GitHub Actions and GitLab CI/CD integrations for PR review and issue triage.
# Non-interactive mode
git diff main --name-only | claude -p "review these changed files for security issues"
# Pipe logs in
tail -200 app.log | claude -p "summarize the errors and likely causes"
For a .NET-specific walkthrough, see Claude Code for .NET developers: a practical introduction.
Which plan you need
Claude Code shares one usage pool with Claude chat. Limits reset on a rolling five-hour window, and paid plans also have weekly limits. These are the prices on Anthropic's pricing page as of October 2026:
Plan | Price | Claude Code |
|---|
Free | $0 | Not included |
Pro | $20/month, or $17/month billed annually | Included |
Max 5x / Max 20x | $100 / $200 per month | Included, with 5x or 20x Pro usage per session |
Team (Standard seat) | $25/seat monthly, $20 annually | Included |
Team (Premium seat) | $125/seat monthly, $100 annually | Included, 5x Standard usage |
Enterprise | $20/seat (annual, 20-seat minimum) plus usage at API rates | Included |
Console / API | Pay per token | Included; billed by usage |
Pro suits a few focused sessions a day. Developers who run Claude Code most of the day usually hit Pro limits and move to Max. Before upgrading, though, check /usage and /context: clearing between tasks, using a smaller model for simple work and trimming CLAUDE.md all stretch a plan further. Claude Code can also run through Amazon Bedrock, Google Cloud or Microsoft Foundry if your company already buys Claude there.
One question to settle before you point it at sensitive code is data usage. It depends on your account type and settings: commercial accounts (Team, Enterprise, API) are covered by Anthropic's commercial terms, and consumer plans have their own privacy settings. Check your plan's policy.
Claude Code, Cursor or GitHub Copilot?
All three now offer agents, so the real differences are workflow, model choice and billing. Prices are as listed on each vendor's site in October 2026.
| Claude Code | Cursor | GitHub Copilot |
|---|
What it is | Agent for terminal, IDEs, desktop and web | AI-first editor (VS Code fork) with agents | Assistant built into VS Code, Visual Studio, JetBrains and GitHub |
Models | Claude models only | Grok and Composer in the included pool; Claude, GPT and others billed at API list price | Claude, GPT, Gemini, Grok and more |
Entry paid price | Pro $20/month | Plus $8/month (Grok models only); Premium $30/month | Pro $10/month |
Billing model | Five-hour and weekly usage limits | Weekly pool shared with Grok, plus prepaid top-ups | Monthly GitHub AI Credits, metered by tokens |
Strengths | Long autonomous tasks, terminal and CI scripting, hooks, skills, subagents | Fast inline editing, tab completion, polished editor UX | Deep GitHub integration, cloud agent that opens PRs, wide IDE support, enterprise controls |
Weak spots | No tab autocomplete; single model family | Third-party models cost extra since the October 2026 X Subscription change | Credit costs vary sharply by model |
Many developers combine them: Copilot or Cursor for inline completions while typing, Claude Code for multi-file tasks, refactors and automation. Claude Code's VS Code extension even runs inside Cursor. My advice is to pick by the work you do most. If your day is mostly writing code line by line, an editor with strong tab completion will serve you better. If it's mostly multi-step changes, refactors and scripted chores, Claude Code is the stronger fit, and the right first step is to run /init in a real repository and hand it a small, testable task.
Join the conversation! Your thoughts help the community grow.