I don’t write code by hand anymore. And no, I’m not exaggerating.
For the past few months, I’ve been using Claude Code as my primary coding companion, and it has fundamentally changed how I build software. Whether I’m scaffolding a new .NET Web API, debugging a tricky race condition, or refactoring a legacy codebase - Claude is right there in my terminal, reasoning through problems like a senior engineer sitting next to me.
But here’s the thing: most developers I talk to either haven’t heard of Claude Code, or they’ve tried it once and didn’t realize its true potential. They treat it like a fancy autocomplete. It’s not.
Claude Code is a full-fledged agentic coding assistant that can read your entire codebase, understand your architecture, plan multi-step implementations, and execute them - all while respecting your coding standards.
In this guide, I’ll show you how to get started with Claude Code in under 15 minutes. I’ll cover installation, the magic of CLAUDE.md, the new auto memory feature, Plan Mode, context management, and I’ll give you an honest comparison with GitHub Copilot and Cursor. Everything here is verified against the official docs as of June 2026.

Let’s get into it.
What is Claude Code? (2026 Overview)
Claude Code is Anthropic’s terminal-native AI coding assistant built on top of Claude (the same model powering claude.ai). Unlike traditional code completion tools that suggest snippets as you type, Claude Code operates as an agentic system - meaning it can:
- Read and understand your entire project structure
- Search through files, grep for patterns, and analyze dependencies
- Plan complex implementations before writing any code
- Execute multi-file changes while respecting your conventions
- Run shell commands, tests, and build processes
- Learn your project’s rules through a
CLAUDE.mdfile
Think of it as having a senior developer in your terminal who never gets tired, never forgets your coding standards, and can hold up to 1 million tokens of context in memory.
As of June 2026, Claude Code runs on the current Claude model family: Claude Fable 5 (the newest top-tier model, released June 9, 2026), Claude Opus 4.8, Claude Sonnet 4.6, and Claude Haiku 4.5. Fable 5, Opus 4.8, and Sonnet 4.6 all support a 1M-token context window. You can switch models any time with the /model command inside a session - I cover which model to pick later in this guide.

Claude Code launched in February 2025 and reached general availability in May 2025. It passed $1 billion in annualized revenue before the end of that year - that’s how fast developers adopted it. By mid-2026 it’s available in the terminal, a desktop app, VS Code and JetBrains extensions, the web, and even Slack.

Claude Code vs GitHub Copilot vs ChatGPT vs Cursor - Quick Comparison
Before diving in, let’s address the elephant in the room. You’ve probably used GitHub Copilot, ChatGPT, or heard about Cursor. How does Claude Code stack up?
| Feature | Claude Code | GitHub Copilot | ChatGPT/Codex | Cursor |
|---|---|---|---|---|
| Primary Interface | Terminal (CLI) + IDE + Web | IDE Plugin | Web/API | Full IDE (VS Code fork) |
| Context Window | Up to 1M tokens | IDE-managed (much smaller) | Model-dependent | Project-aware |
| Approach | Agentic, multi-step reasoning | Autocomplete, snippets | Conversational, iterative | Multi-file refactoring |
| Best For | Architecture, debugging, explanations | Fast completions, boilerplate | Brainstorming, exploration | Large refactors, IDE comfort |
| Learning Curve | Medium | Low | Low | Low |
| Pricing | $20-200/month (Claude subscription) | $0-39/month | $20-200/month (ChatGPT Plus/Pro) | $20-40/month |
My honest take:
- GitHub Copilot is fantastic for autocomplete and writing boilerplate fast. It’s the easiest to adopt and lives right in your IDE.
- ChatGPT/Codex excels at brainstorming, exploring ideas, and conversational problem-solving. When you need to think through an approach before touching code, it’s a great sparring partner.
- Cursor shines when you’re doing multi-file refactoring and want a familiar VS Code experience with AI baked in.
- Claude Code wins when you need reasoning. When you want the AI to understand why your code is structured a certain way, plan before executing, and explain its decisions.
For .NET developers working on complex architectures (Clean Architecture, microservices, domain-driven design) - Claude Code’s ability to hold massive context and reason through dependencies is a game-changer.
If you’re a .NET developer looking to level up your skills, these resources pair perfectly with Claude Code:
.NET Developer Roadmap
The complete guide to becoming a proficient .NET developer - from fundamentals to advanced architecture patterns.
20+ Tips from a Senior .NET Developer
Hard-won lessons and practical advice for writing better .NET code - perfect for training Claude on your coding standards.
My Journey Through AI Coding Tools
Let me share how I ended up here - and why I believe the future isn’t about picking ONE tool.
I started with GitHub Copilot like most developers. It’s decent for basic code changes and generation - no complaints there. The autocomplete is snappy, and it genuinely speeds up boilerplate work. But as I used it for larger tasks, I wasn’t happy with the context it maintained. It felt like explaining the same architectural decisions over and over. The AI would suggest patterns that contradicted what I’d just built two files ago. And the developer experience? Despite being integrated directly into the IDE, something about the back-and-forth never clicked for me when I needed deeper reasoning.
Then came Codex. I’d had a ChatGPT subscription for a long time, but I never realized it included Codex access - pleasant surprise. When I discovered it, I went all in. For JavaScript and frontend work, I could see real success. The conversational interface made it easy to iterate on ideas. I even used it to improve FullStackHero - refactoring modules, cleaning up patterns, and it actually did a solid job understanding the .NET ecosystem.
But when I tested Claude Code, I was genuinely impressed.
It wasn’t just about code generation. Claude understood my codebase structure, respected my workflow, and grasped my requirements in a way the others didn’t. When I described a feature, it would ask clarifying questions about edge cases I hadn’t considered. When I pointed it at a bug, it would trace through the call stack and identify the root cause - not just patch the symptom. The Blazor skills? Surprisingly strong. It could reason through component hierarchies, understand the render lifecycle, handle cascading parameters correctly, and suggest patterns that actually made sense for Blazor development. For complex .NET work - Clean Architecture, domain-driven design, multi-project solutions - Claude Code’s ability to hold context across dozens of files is unmatched.
The Real Lesson: Use Every Tool for What It’s Best At
Here’s what I’ve learned after months of experimentation: the goal isn’t to choose one tool and abandon the rest. Each tool has its strengths, and the smartest developers use them together.
Here’s my current setup:
- Claude Code - My primary tool for complex implementations, debugging, architectural decisions, and anything that requires deep codebase understanding. When I need the AI to think before it acts, Claude is where I go.
- GitHub Copilot - Still in my workflow for quick autocomplete and commit message generation. It’s fast, it’s inline, and for small completions it’s hard to beat.
- ChatGPT - My go-to for brainstorming ideas, exploring approaches before I write code, and rubber-ducking problems. Sometimes I just need to think out loud with an AI that isn’t tied to my codebase.
The tools complement each other. Copilot for speed. ChatGPT for exploration. Claude Code for depth.
Don’t fall into the trap of tribal loyalty to one tool. The AI landscape is evolving fast, and the developers who win are the ones who adapt their toolkit to the task at hand.
That said, for the core work of building software - understanding requirements, planning implementations, writing production code, and debugging complex issues - Claude Code has become my daily driver. And trust me, there are a lot of ways to supercharge your Claude experience beyond the basics. I’ll be covering advanced patterns, custom commands, and productivity hacks in upcoming articles.
For now, let’s get you set up.
Claude Code Installation - Get Running in 5 Minutes
Let’s get Claude Code installed. You’ll need:
- A Claude subscription (Pro at $20/month minimum) or a Claude Console (API) account
- A terminal (Command Prompt, PowerShell, or your IDE’s integrated terminal)
That’s it. The native installer doesn’t need Node.js anymore - that’s only required if you choose the npm route.
CLI vs Desktop vs Cloud - Pick Your Flavor
Here’s something most tutorials skip: Claude Code isn’t just a CLI tool. You have three ways to access it:
- CLI (Terminal) - The original experience. Runs directly in your terminal alongside your code.
- Desktop App - A standalone application with a dedicated window and UI.
- Cloud (claude.ai) - Browser-based access, works anywhere including mobile.
I use all three. And honestly, that’s the productivity hack nobody talks about.
Here’s my setup:
- CLI for intense coding sessions - When I’m deep in backend work, implementing features, or debugging complex issues, I run Claude in my terminal. It’s lightweight, fast, and stays out of the way. The CLI just feels more responsive when you’re in the zone.
- Desktop for general development - The desktop app is convenient when I want Claude in a separate window. But fair warning - it’s more memory intensive than the CLI. During really long sessions, I’ve noticed it can get sluggish or act a bit weird. If you’re on a machine with limited RAM, stick with the CLI.
- Cloud and mobile app for brainstorming - This is my go-to when I’m away from my dev machine. Thinking through architecture during a commute? Sketching out an approach before I sit down to code? I use the Claude Android app on my phone - it’s smoother than the browser and works great for quick back-and-forth conversations. The web version at claude.ai is there when I’m on a different machine without the CLI installed.
The beauty is they all share your Claude subscription. Same account, same usage limits, different interfaces for different contexts.
For this guide, I’ll focus on the CLI installation - it’s the most powerful option for developers and the one you’ll use for serious coding work.
Windows Installation
The native installer is the recommended path in the official quickstart. It auto-updates in the background, so you’re always on the latest version.
Step 1: Run the installer in PowerShell
irm https://claude.ai/install.ps1 | iexPrefer a package manager? WinGet works too:
winget install Anthropic.ClaudeCodeTip: Install Git for Windows if you haven’t already. Claude Code uses it for its Bash tooling on native Windows; without it, Claude falls back to PowerShell as the shell.
Step 2: Launch Claude Code
claudeOn first run, you’ll:
- Choose your theme (dark mode, obviously)
- Connect your Anthropic account
- Trust the current directory

If you prefer npm (requires Node.js 18+), npm install -g @anthropic-ai/claude-code still works - but unlike the native installer, it won’t auto-update.
macOS / Linux Installation
You have more options here:
# Official native installer (recommended, auto-updates)curl -fsSL https://claude.ai/install.sh | bash
# Or using Homebrew (does NOT auto-update; run brew upgrade claude-code)brew install --cask claude-codeThen simply run claude in your terminal.

CLAUDE.md File - How to Configure Claude Code for Your Project
Here’s where Claude Code becomes truly powerful.
The CLAUDE.md file is a Markdown file at the root of your project that onboards Claude onto your codebase. Every time you start a Claude session in that directory, the contents of this file are injected into context automatically - the official memory documentation covers the full loading order.
Think of it as writing instructions for a new developer joining your team - except this developer has perfect memory and follows instructions precisely.
What to Put in CLAUDE.md
Structure your CLAUDE.md around three layers:
- The What - Your tech stack, project structure, key packages
- The Why - The purpose of each component, architectural decisions
- The How - How you want Claude to work with the project
Here’s an example for a .NET Web API project:
# CLAUDE.md - MyApp API
## Tech Stack- .NET 10, ASP.NET Core Minimal APIs- Entity Framework Core 10 with PostgreSQL- Mediator for CQRS (source-generated)- FluentValidation for request validation
## Project Structure- `src/MyApp.Api/` - Entry point, endpoints, middleware- `src/MyApp.Application/` - Use cases, handlers, DTOs- `src/MyApp.Domain/` - Entities, value objects, domain events- `src/MyApp.Infrastructure/` - EF Core, external services
## Commands- Build: `dotnet build`- Test: `dotnet test`- Run: `dotnet run --project src/MyApp.Api`
## Coding Standards- Use primary constructors for dependency injection- Always pass CancellationToken to async methods- Validation goes in FluentValidation validators, not handlers- Never hardcode connection strings or secrets
## Workflow Rules- ALWAYS create a git branch before making changes- Run `dotnet test` after every implementation- Keep commits atomic and focusedCreating CLAUDE.md Automatically
The fastest way is the built-in /init command. Claude analyzes your codebase and generates a starter CLAUDE.md with build commands, test instructions, and the conventions it discovers. If a CLAUDE.md already exists, /init suggests improvements instead of overwriting it.
/initYou can also ask Claude in plain language for more control over what goes in:
Analyze this codebase and create a CLAUDE.md file that covers:1. Tech stack and dependencies2. Project structure and purpose of each folder3. Build/test/run commands4. Coding conventions you observe5. Workflow rules I should follow
Use progressive disclosure - keep the main file concise and link todetailed docs in a /docs folder if needed.Claude will scan your project, identify patterns, and create a comprehensive CLAUDE.md. You can then refine it based on your preferences.
Pro Tip: Treat
CLAUDE.mdas a living document. Commit it to version control so your entire team benefits. When coding standards evolve, update the file.
Does It Actually Work?
Let me show you. After setting up CLAUDE.md with a rule that says “always create a git branch before making changes,” I asked Claude to fix a bug:
There's a bug where clicking on the calendar doesn't set the correcttime for the new event. The time shown in the modal doesn't matchwhere I clicked.Claude found the bug in a TSX file, but before implementing the fix, it asked to create a new branch first - exactly as instructed in my CLAUDE.md.
That’s the power of this file. Claude respects your workflow.
Auto Memory - Claude Takes Its Own Notes Now
Here’s a feature that didn’t exist when I first wrote this guide: auto memory. Since Claude Code v2.1.59, Claude automatically writes notes for itself as it works on your project - build commands it figured out, debugging insights, preferences you corrected it on.
These notes live in ~/.claude/projects/<project>/memory/ as plain markdown files, with a MEMORY.md index that gets loaded at the start of every session. You write CLAUDE.md; Claude writes its own memory. The two work together:
- CLAUDE.md - instructions and rules YOU write (coding standards, architecture, workflows)
- Auto memory - learnings CLAUDE writes (things it discovered or you corrected)
Auto memory is on by default. Run /memory in a session to see everything that’s loaded, browse what Claude has saved, or toggle the feature off. Tell Claude “remember that the API tests need a local Redis instance” and it saves that for every future session.
I go much deeper on CLAUDE.md structure, the memory hierarchy, and ready-to-use .NET templates in the dedicated guide:
CLAUDE.md for .NET Developers - Complete Guide with Templates
Memory hierarchy, the WHAT-WHY-HOW framework, auto memory, and a production-ready CLAUDE.md template you can copy today.
Claude Code Plan Mode - Think Before You Code
Here’s a mistake I see developers make with AI coding tools: they jump straight into implementation without planning.
Claude Code has a Plan Mode specifically designed to prevent this. When you’re in Plan Mode, Claude can only:
- Read files
- Search and grep through code
- Browse the web for documentation
- Ask you clarifying questions
It cannot write, modify, or execute anything. It’s forced to think first.
How to Enter Plan Mode
Press Shift + Tab to cycle through permission modes until you reach Plan Mode - you’ll see the indicator in the bottom left corner of the prompt.
Tip: You can also start a session directly in Plan Mode from your terminal with
claude --permission-mode plan. Useful when you know the next task needs thinking before touching files.

When to Use Plan Mode
Use Plan Mode when:
- Starting a new feature with multiple components
- Making architectural changes
- You’re not 100% sure about the approach
- Working on an unfamiliar codebase
A Real Example
Let’s say I want to build a chore management app. Instead of vibe-coding with a vague prompt like “make me a chore app,” I enter Plan Mode and write:
Build a chore management app with these requirements:- Calendar view similar to Outlook- Add/remove chores- Recurring schedules- Assign chores to team members- Manage team members
Ask me questions to clarify requirements, tech stack preferences,engineering constraints, and architecture decisions.Claude will now ask targeted questions:
- “Should this be React, Vue, or another framework?”
- “Local storage or a backend database?”
- “Do you need authentication?”
- “Any specific UI library preferences?”
After I answer, Claude generates a detailed implementation plan:
- Project structure
- Data models
- Component breakdown
- Implementation phases
- Key design decisions
This is like pair programming with a senior engineer. You discuss the approach, agree on the plan, and only then do you execute.
If I see something I disagree with (like Claude choosing JavaScript instead of TypeScript), I can say:
Use TypeScript instead of JavaScript.Claude regenerates the plan. Once I’m satisfied, I approve it and Claude starts implementing - now with a clear roadmap.
I wrote a full deep-dive on when Plan Mode pays off (and when it’s overkill):
Plan Mode in Claude Code - Think Before You Code
When to use Plan Mode, when to skip it, and how to get the most out of planning sessions on real projects.
.NET Claude Kit
Open-source Claude Code companion with 47 skills and 10 specialist agents
Claude Code Context Window - How It Understands Your Codebase
One thing that sets Claude Code apart is its context window. As of June 2026, Fable 5, Opus 4.8, and Sonnet 4.6 all support a 1 million token context window - per Anthropic’s model documentation, that’s roughly 555,000 to 750,000 words of code and conversation held in memory at once. Haiku 4.5, the fastest model, holds 200K tokens.
When this article first went out in January 2026, 200K tokens was the headline number. The 1M window changed what’s practical: entire mid-sized solutions now fit in a single session.
This means Claude can genuinely understand large codebases. I’ve used it on .NET solutions with 50+ projects, and it navigates them effectively.
How Context Works
When you start a session, Claude doesn’t load your entire codebase into memory immediately. Instead, it:
- Reads your
CLAUDE.mdfile - Scans the project structure
- Loads files on-demand as needed
- Maintains conversation history
If you’re working on a specific feature, Claude will read the relevant files, understand the dependencies, and keep that context as you iterate.
Managing Context
Context can fill up during long sessions. Here are some tips:
Clear conversation history:
Type /clear to reset the conversation while keeping your CLAUDE.md context.
Use subagents for isolated tasks: When Claude spawns a subagent (a focused task), it gets its own context. This prevents bloating your main session.
Keep CLAUDE.md concise:
Since CLAUDE.md is loaded into every session, don’t dump your entire documentation there. Keep it focused and link to external files for details.
If you want to understand exactly what fills up your context window (and what survives /compact), I broke down a full session token by token:
Anatomy of a Claude Code Session
What actually goes into your context window - system prompt, CLAUDE.md, tool results - and how to keep it lean.
Claude Code Hooks - Automate Your Workflow
Hooks let you run custom actions at specific points in Claude’s workflow. They’re event-driven - the hooks reference lists dozens of events, but these three cover most use cases:
- PreToolUse - Runs before Claude uses a tool (like before writing a file)
- PostToolUse - Runs after a tool completes
- Stop - Runs when Claude finishes a task
For example, you could set up a hook to automatically run your linter after every file edit, or validate a deployment script before execution.
# Access the hooks interface/hooksHooks are powerful for teams that want to enforce quality gates automatically. I’ll cover them in depth in a follow-up article.
Claude Code Skills - Create Your Own Shortcuts
You can create your own slash commands to streamline repetitive tasks. The modern way to do this is with skills: a SKILL.md file in a .claude/skills/<name>/ folder.
For example, create .claude/skills/test/SKILL.md:
---name: testdescription: Run the test suite and fix failures---
Run all tests for the solution and report any failures.If tests fail, analyze the error and suggest fixes.
$ARGUMENTSNow you can type /test in Claude, and it executes your predefined prompt. Claude can also invoke skills automatically when it detects they’re relevant to your prompt - that’s the part plain prompts can’t do.
Note: If you’ve seen older tutorials mention
.claude/commands/, those still work - custom commands were merged into the skills system. A file at.claude/commands/deploy.mdand a skill at.claude/skills/deploy/SKILL.mdboth create/deploy. Skills just add more: supporting files in the folder, frontmatter control, and auto-invocation.
Some ideas for skills:
/pr- Create a pull request with a structured description/review- Review the current changes for code quality/migrate- Generate an EF Core migration
I wrote a complete guide on building skills, including the exact ones I use daily:
Skills in Claude Code - Build Your Own Slash Commands
How skills work, when to use them over CLAUDE.md, and a walkthrough of building reusable workflows step by step.
Claude Code Pricing 2026 - Plans and Rate Limits Explained
Claude Code access comes with your Claude subscription. Here’s the breakdown as of June 2026:
| Plan | Price | Claude Code Access | Usage |
|---|---|---|---|
| Free | $0 | No access | - |
| Pro | $20/month ($17/mo billed annually) | Yes | Base allocation per 5-hour session |
| Max 5x | $100/month | Yes | 5x the Pro allocation per session |
| Max 20x | $200/month | Yes | 20x the Pro allocation per session |
Anthropic no longer publishes exact message counts - usage depends on the model you pick, your codebase size, and how much context each request carries. What’s fixed is the structure: a 5-hour rolling session limit plus weekly limits that apply across all Claude surfaces. Your usage is shared between claude.ai, Claude Code, and the desktop app - it’s one pool.
The easiest way to see where you stand: type /usage inside Claude Code, or check Settings > Usage on claude.ai. Both show progress bars for your current session and weekly limits.
My recommendation: Start with the Pro plan at $20/month. It’s enough for most individual developers. If you’re using Claude Code all day for heavy development, consider Max 5x.
For teams, there’s a Team plan ($25/seat monthly, with a premium seat tier for heavier usage) with centralized billing and admin dashboards - useful for tracking usage across developers.
No per-message overage fees - you get a fixed allocation per time window, and it resets. No surprise bills.
What Happens When You Hit the Rate Limit?
This is something every Claude Code user experiences eventually - you’re in the zone, shipping features, and suddenly Claude says it needs to wait.
Here’s what actually happens:
- You get a warning - Claude will tell you that you’re approaching your usage limit for the current window.
- Requests slow down or pause - Once you hit the limit, Claude won’t process new prompts until the window resets.
- The 5-hour window resets - Your session allocation refreshes every 5 hours. If you hit the limit at 2 PM, you’ll get a fresh allocation around 7 PM.
- Weekly limits sit on top - Even with fresh 5-hour windows, there’s a weekly ceiling that resets at a fixed time assigned to your account. Heavy all-day users hit this one first.
How to manage this:
- Check
/usagebefore big sessions. Knowing you’re at 80% of your weekly limit changes how you spend the rest of it. - Pick the right model. Heavier models burn through your allocation faster. For routine work, switching to a lighter model with
/modelstretches your limits considerably. - Use Plan Mode strategically. Planning consumes fewer resources than execution. Do your thinking in Plan Mode, then execute efficiently.
- Batch your requests. Instead of asking Claude to fix one file, then another, then another - describe the full scope and let it handle multiple files in one go.
- Know when to upgrade. If you’re consistently hitting limits before lunch, Max 5x at $100/month gives you 5x the headroom. For all-day coding, Max 20x is worth it.
I’ve been on Max 5x for months, and I rarely hit the ceiling. But when I was on Pro, I learned to be strategic - mornings for heavy implementation, afternoons for review and planning.
6 Claude Code Tips From a Power User
After using Claude Code extensively, here are my top tips - lessons learned from real projects, not theory.
1. Talk to Claude Like a Senior Engineer
Be clear, specific, and direct. You don’t need to be overly polite or use corporate speak - just state the facts.
Instead of:
Could you please help me with maybe adding some validationto the user input if that's not too much trouble?Try:
Add FluentValidation to the CreateUserCommand.Validate: Email is required and valid format,Name is required and max 100 chars.Claude responds better to specific, actionable instructions. Treat it like a capable colleague who needs clear requirements, not hand-holding.
2. Commit Early, Commit Often
This one has saved me countless times. Before you pile on more prompts, commit your working state.
AI can introduce regressions. Claude might fix one bug and accidentally break something else. If you’ve committed after each successful change, rolling back is trivial:
git diff HEAD~1 # See what changedgit checkout HEAD~1 -- src/file.cs # Restore specific fileI commit after every meaningful change Claude makes. It takes seconds and gives you a safety net.
3. Review the Code - Always
Claude is a teammate, not a replacement for code review. I’ve seen Claude:
- Add dependencies I didn’t ask for
- Use patterns that don’t match my architecture
- Write code that works but isn’t idiomatic
Check its work like you would any pull request. Read the diff, understand the changes, and push back if something doesn’t look right.
4. Use Plan Mode for Anything Non-Trivial
If a task touches more than 2-3 files or involves any architectural decisions, start in Plan Mode. The upfront planning saves hours of back-and-forth later.
I’ve learned this the hard way - jumping straight into implementation with a vague prompt leads to Claude making assumptions. Those assumptions compound, and suddenly you’re three files deep into an approach you don’t want.
Plan first. Execute with confidence.
5. Invest in Your CLAUDE.md
A well-crafted CLAUDE.md pays dividends across every single session. Every minute you spend refining it saves you from repeating yourself later.
Things worth adding:
- Your naming conventions
- Patterns you always use (Result pattern, Mediator, etc.)
- Patterns you never want (no repository pattern, no AutoMapper, etc.)
- How you structure commits and branches
The more specific your CLAUDE.md, the less you’ll fight Claude on style decisions.
6. Don’t Be Afraid to Say “No”
Claude will suggest approaches. Sometimes they’re great. Sometimes they’re not what you want.
Push back. Say “No, use X instead” or “I don’t like this approach because Y.” Claude is designed to iterate. It won’t get offended, and it’ll adapt to your preferences.
The best results come from a back-and-forth dialogue, not blind acceptance of the first suggestion.
Troubleshooting Common Claude Code Issues
Here are the problems I get asked about most often, with fixes.
How to Fix npm Install Permission Errors
Don’t use sudo npm install -g. Instead, fix npm’s permissions:
mkdir ~/.npm-globalnpm config set prefix '~/.npm-global'export PATH=~/.npm-global/bin:$PATHAdd that last line to your .bashrc or .zshrc to make it permanent. Then run the install again without sudo.
On Windows, run your terminal as Administrator for the initial install, or use the native installer instead of npm.
Why Doesn’t Claude Code Understand My Project Structure?
This usually means Claude hasn’t read enough context. Try:
- Create a
CLAUDE.mdfile - This is the single biggest improvement you can make. - Explicitly tell Claude to explore - Say “Read the project structure and understand the architecture before making changes.”
- Point Claude to key files - “Look at
src/Application/to understand how we structure commands and handlers.”
Claude doesn’t automatically read every file. It reads on-demand. Guide it to the important parts.
How to Prevent Claude Code From Making Unwanted Changes
This happens. Claude sometimes “improves” code while fixing something else. A few ways to prevent this:
- Be explicit about scope - “Only modify the
UserServiceclass. Don’t touch anything else.” - Add rules to
CLAUDE.md- “Never refactor code unless explicitly asked.” - Use Plan Mode - Review the plan before Claude executes. If you see unrelated changes, tell it to remove them.
And always: commit before asking Claude to make changes. Easy rollback.
What to Do When Claude Code Forgets Earlier Instructions
Long sessions can exhaust context. When this happens:
- Type
/clear- This resets the conversation but keeps yourCLAUDE.mdloaded. - Start a new session - Close and reopen Claude Code. Fresh context.
- Summarize before continuing - After
/clear, paste a brief summary: “We’re building X. We’ve completed Y. Next step is Z.”
For very long tasks, I break them into multiple sessions intentionally. Each session has focused scope.
How to Stop Claude Code From Suggesting Unwanted Patterns
Put your preferences in CLAUDE.md. Be explicit:
## Patterns We Use- Mediator for CQRS- Result<T> pattern for error handling- FluentValidation for all request validation
## Patterns We DON'T Use (Never suggest these)- Repository pattern (we use EF Core directly)- AutoMapper (we write explicit mappings)- Exceptions for control flowClaude follows these rules reliably once they’re documented.
Is My Code Sent to Anthropic’s Servers?
Yes - Claude Code sends your code to Anthropic’s API for processing. This is how it works.
However, Anthropic has stated that data from Claude Pro/Max subscriptions is not used to train models. If you’re working on sensitive code, check your company’s AI usage policy and Anthropic’s terms of service.
For enterprise needs, there’s a Teams plan with additional compliance features.
Can I Use Claude Code Offline?
No. Claude Code requires an internet connection to communicate with Anthropic’s API. There’s no offline mode.
If you’re working in an air-gapped environment, Claude Code isn’t an option - you’ll need to look at local LLM solutions.
Key Takeaways
- Claude Code is agentic, not autocomplete. It reads your codebase, plans multi-step changes, and executes them - treat it like a senior engineer, not a snippet generator.
- CLAUDE.md is the highest-leverage setup step. Ten minutes writing project rules saves hours of repeated explanations. Auto memory now handles the learnings you’d otherwise have to write down yourself.
- Plan Mode before anything non-trivial. If a task touches more than 2-3 files, plan first. Approve the approach, then execute.
- Start on Pro at $20/month. Upgrade to Max 5x only when you’re consistently hitting the 5-hour or weekly limits - check
/usageto know for sure. - Always review the diff. Claude is a teammate, not a replacement for code review. Commit early so rollbacks stay trivial.
Frequently Asked Questions
What is Claude Code?
Claude Code is Anthropic's agentic AI coding assistant. It runs in your terminal, IDE, desktop app, or browser, and can read your entire codebase, plan multi-step implementations, edit files, and run commands. Unlike autocomplete tools, it reasons through tasks before executing them.
Is Claude Code free to use?
No. Claude Code requires a paid Claude subscription (Pro at 20 dollars per month, Max at 100 to 200 dollars per month, or Team) or a pay-as-you-go Claude Console API account. The free Claude plan does not include Claude Code access.
How do I install Claude Code on Windows?
Run the native installer in PowerShell: irm https://claude.ai/install.ps1 followed by iex. Alternatively use winget install Anthropic.ClaudeCode. The native installer is recommended because it auto-updates. Node.js is only required if you choose the legacy npm installation method.
What is the difference between Claude Code and GitHub Copilot?
GitHub Copilot is primarily an autocomplete tool that suggests code as you type inside your IDE. Claude Code is an agentic assistant that understands your whole project, plans changes across multiple files, runs tests, and executes shell commands. Copilot is faster for boilerplate; Claude Code is stronger for architecture, debugging, and multi-file work.
Which Claude model should I use in Claude Code?
As of June 2026 the default on paid plans is the latest top-tier model, with Opus 4.8, Sonnet 4.6, and Haiku 4.5 also available. Use the strongest model for complex architectural work and switch to a lighter model with the /model command for routine tasks to stretch your usage limits.
What is CLAUDE.md and do I need one?
CLAUDE.md is a markdown file at your project root that Claude Code loads at the start of every session. It holds your tech stack, project structure, coding conventions, and workflow rules. You do not strictly need one, but it is the single biggest improvement you can make to output quality.
Does Claude Code send my code to Anthropic?
Yes, Claude Code sends code to Anthropic's API for processing - that is how it works. Anthropic states that data from Pro and Max subscriptions is not used to train models. For sensitive codebases, check your company's AI usage policy first.
Can I use Claude Code offline?
No. Claude Code requires an internet connection to communicate with Anthropic's API. There is no offline mode, so air-gapped environments need local LLM alternatives instead.
What’s Next? - The Complete Claude Code Series
This was just the beginning. When I first published this guide, the rest of the series was a promise. It’s now live - here’s where to go next, in reading order:
CLAUDE.md for .NET Developers - Complete Guide with Templates
My exact template for Clean Architecture, Minimal APIs, and enterprise .NET projects. Copy-paste ready, with the full memory hierarchy explained.
Plan Mode in Claude Code
When to use it, when to skip it, and how to get the most out of planning sessions.
Skills in Claude Code
Build custom slash commands that 10x your workflow - including my personal /pr, /review, and /migrate skills.
Anatomy of the .claude Folder
Rules, skills, agents, hooks, settings - what every file in the .claude directory does and how they fit together.
10 Advanced Claude Code Tips
The workflow patterns I use daily after a year of Claude Code - beyond the basics covered here.
Prompt Engineering for Claude Code
How to phrase requests so Claude gets it right the first time - with real .NET examples.
This series is the most comprehensive Claude Code resource for .NET developers on the internet. No fluff, just practical patterns you can use tomorrow.
What are your thoughts on AI coding assistants? Are you using Copilot, Cursor, or something else? Let me know in the comments - I’m curious how other developers are integrating AI into their workflows.
Happy Coding :)
What's your take?
Push back, share a war story, or ask the obvious question someone else is wondering. I read every comment.