This is a comprehensive beginners guide for getting the most out of Claude Code, created especially for junior devs and even non-developers. It encapsulates everything we've learned over 1000 hours building agentic systems and applications that drive operational workflows for 100s of companies.
What is Claude Code?
Claude Code is Anthropic's agentic coding tool. It connects Claude directly to your computer, giving it the ability to read, write, and modify your projects rather than just chat about them.
Unlike a standard chatbot that responds to one message at a time, Claude Code can take initiative. Ask it to refactor a codebase and it will read through the files, develop a plan, make changes across multiple files, and report back on what it did. You stay in control through approval steps, but the tool handles the tedious coordination work.
Why use Claude Code?
In a standard chat app, you do the work while the AI provides suggestions. In Claude Code, you describe what you want and supervise while Claude does the implementation. It can read your files, make changes across your project, and handle the tedious coordination work for you.
In this guide
1. Setup and Installation
There are multiple ways to use Claude Code. The simplest way is to click the Code button inside the claude.ai or Claude Desktop app interface sidebar. However, most Claude Code users today still use the computer terminal command line interface (CLI) because of its flexibility.
Using Claude Code in the terminal CLI
If you haven't used your computer terminal (you'll see it called Command Prompt or PowerShell in Windows), now's a great time to learn. It might seem complicated but it's quite simple once you get the hang of it.
How to Install Claude Code using Your CLI (Terminal, Command Prompt and PowerShell)

Mac:
Open Terminal and paste:
curl -fsSL https://claude.ai/install.sh | bash
Windows:
Open PowerShell and paste:
irm https://claude.ai/install.ps1 | iex
What You Need
You need either:
- Claude Pro subscription ($20/month) - Same subscription as claude.ai
- Claude API account - Pay per use (less predictable cost)
After installing, just type claude in your terminal and follow the login.
2. Getting Started
Once you have Claude Code open, you're ready to get started. For the most part, this guide will assume you're using the CLI interface.
Claude Code Projects
All work that you do within Claude Code happens inside of a project. A project is essentially a file directory, which can live on your computer or in the cloud. You can have as many projects as you want, and projects can contain pretty much anything - documents, code, spreadsheets, media, etc.
If you're using the CLI interface you will only be able to work inside of local projects (i.e. projects on your computer's hard drive). Connecting to projects in the cloud will require an additional service, such as GitHub (free). If you're on the web app, you'll only be able to work on projects in a cloud environment. The desktop app can connect to both local and cloud projects.

Creating a new project in the desktop or web apps is as simple as selecting a folder inside the app interface. In the CLI, you'll first navigate to your desired folder by entering the command cd /path/to/your/folder and then typing claude and hitting return.
You can start Claude Code anywhere and turn it into a project, even if it already has work inside of it. It doesn't have to be a fresh directory.
Your First Project
With your first project open, type /init and hit enter. Claude will read through all the content inside your project and create a CLAUDE.md file. This file is Claude's project memory, where context specific to this project is stored. More on this later.
Claude can operate inside a project folder just like you do, using what are called bash commands. After creating your CLAUDE.md file, try some of these commands to test out what Claude can do.
based on what's in this project suggest a few next stepsfind an issue (typo, code bug, etc) in this project and suggest a fixanalyze the data in my project and graph the trends you think are most interesting
Files and Access
Claude is probably quite different from other software you've used before. All of Claude's settings and permissions are defined inside of files, which are often located inside a .claude/ folder inside your home directory or a project directory.
A typical setup for a Claude Code project will look like this with a CLAUDE.md instructions file in the project root and a .claude/ directory containing project-specific configurations.
your-project/ (project root)
├── .claude/
│ ├── /agents # Subagents available in this project
│ ├── /skills # Claude skills available in this project
│ ├── settings.json # Project-specific settings
├── CLAUDE.md # Main project instructions
Note
.json is a file type which contains information structured as key: value pairs, often used for configuration settings.
Want to use Claude Code with your team?
Try Duet—the collaborative workspace for agentic workflows.
3. Working With Claude Code
Prompting Basics
Interacting with Claude Code is very similar to using the regular Claude AI app in many ways. You can chat with it, search the web, and interact with external applications. If you can prompt a regular LLM chatbot, you can prompt Claude Code.
There are a few basic shortcut commands you'll want to get comfortable with that will make prompting Claude Code more convenient:
- You can
@mentionfiles and folders in your project to quickly reference them and make Claude read them before responding to you - Typing
/into an empty message will open up a menu of quick commands and settings options to explore meta + pwill let you choose which model (Opus, Sonnet, or Haiku) you want to work withmeta + twill let you adjust model thinking level
Approvals
By default, Claude will ask you to approve any changes that it wants to make to files or folders in your project. It will also ask for permission to run many bash commands, providing a description of what the intent of the command is (e.g. "Search for file" or "Read webpage").
It's important to review these requests especially when they involve destructive actions (i.e. deleting a file), or downloading content from the internet to your local environment. You can auto-approve many routine commands to speed up your working sessions.

Advanced Actions
Claude Code can do a lot - too much for the average user to keep in their head all of the time. Many of the most powerful capabilities are only unlocked by creating/modifying fairly complex configuration files and scripts.
Luckily, you can fully use Claude Code without ever touching these files yourself. Claude Code has access to all of these files as well and knows what each does and how they can be modified. Simply ask Claude for an explanation of its settings, or request a modification, and it can take care of it for you.
Chat Modes
Claude Code has 3 different chat modes that offer different interaction patterns for different workflows. Switch between chat modes in the app UI or hit tab in the CLI to cycle between modes.

Ask Mode: This is the default mode, which will respond conversationally and ask for permission before editing files. Best for workflows where you want close oversight over the work that Claude does each step of the way.
Plan Mode: In plan mode, Claude will spend a lot of time exploring the project and writing a detailed planning document prior to executing your request. This mode is best to use before you ask Claude to code an app or data analysis script.
Accept Edits Mode: In accept edits mode, Claude will make changes to files without asking for permission from the user first. This mode is best for after you've reviewed Claude's work plan, or for simple low-stakes changes.
The Scope-Plan-Execute Flow
The quality of Claude's output depends heavily on what you give it upfront. Vague requests produce vague results. Specific, well-scoped requests produce high quality work. By following a scope-plan-execute workflow you'll be able to achieve high quality outputs predictably.
Scope: Start in Ask Mode by having a Q&A with Claude about your project, researching competitors, deciding on features, etc.
Plan: Enter plan mode with Claude Code to build out a comprehensive technical spec for the project.
Execute: Once you're happy with the plan, switch to Accept Edits mode and have Claude quickly implement and test the entire scope of work.
This is meant to be an iterative process. Once the first Execute phase completes, review the completed work and start another cycle to add or refine what you just built.
Compaction
When a conversation nears the context window limit, Claude Code will compact the conversation. This means that it will summarize all previous conversation for the purpose of reducing the overall number of tokens in context.
Tip
You can type /context to visualize the contents of the current context window.

Common Claude Code Projects
Claude Code is a very versatile tool, capable of coding in any language and automating workflows in any external application that provides API or MCP integration. Agentic coding (vibe coding) is an obvious use case for making web apps and internal tools, but there are many other types of projects that operators should explore.
- Agentic Coding - Interactive web apps, forms, internal tools, feature prototypes
- Data Analysis - Dashboards, business analytics, qualitative analysis
- Personal Organization - Note taking, project tracking, file organization
- Workflow Automation - Deep research, document review, CRM admin
4. Memory
Memory is how Claude remembers things about you and your projects. The primary way to manage memory is via CLAUDE.md files.
Note
.md is a file extension for markdown files. Markdown is a way of formatting text documents that uses simple, plain-text syntax (like # for headings or ** for bold), making it easy to read and write with structure.
Claude Code allows you to organize multiple CLAUDE.md files in a hierarchical structure, each serving a different purpose. Memory files higher in the hierarchy (i.e. org-wide instructions) take precedence over lower ones (i.e. project-specific settings).

Updating Memory
There are 2 main ways to update Claude Code's memory.
- Type
/memoryto pull up a dialogue that will enable you to update either project-level or user-level memories. - Directly modify (or ask Claude to modify) the contents of a
CLAUDE.mdfile.
Memory Best Practices
All of the relevant (project-, user-, and org-level) CLAUDE.md files are loaded into Claude's context at the beginning of a session. If these files are too long, you may run into the common issue of context filling up too quickly, causing frequent compactions. Therefore, it's important to include only the most vital information in each memory file.
Only include specific information that the AI must have in order to perform well in your project. What to include depends on the nature of the project. Here are a few suggestions:
# Important commands
- npm run build: Build the project
- npm run typecheck: Run the typechecker
# Style conventions
- Use `@/` for web app imports
- Always cite sources when using information from web research
# Workflow requirements
- Always run tests before committing code changes
- Check for duplicates before adding records
# Project directory structure (for easy navigation)
your-project/ (project root)
├── app/
│ ├── index.html
│ ├── script.js
├── /example
│ ├── ...
Want to use Claude Code with your team?
Try Duet—the collaborative workspace for agentic workflows.
5. Subagents
What are subagents
When you work with Claude Code, you're typically interacting with the "regular" Claude Code agent. Subagents allow you to deploy specialized agents for specific tasks.
Subagents have their own system prompts, skills, and tools (more on these later). Importantly, subagents also have separate context, which allows them to run their own long-running workflows such as research without polluting Claude's context.
You can prompt the primary Claude agent to utilize specific subagents, but Claude will also delegate to subagents autonomously when it encounters situations that match a subagent's description.
When to use subagents
Subagents are best used for delegating tasks that require specialized agent behavior, or tasks that consume large numbers of tokens and are best done in a separate context window.
Some examples of useful subagents:
- Code review agent
- Research agent
- Copyediting agent
Subagents can be deployed in parallel, a powerful workflow that enables Claude Code to complete large tasks quickly. One situation where this can be very useful is research: instead of having Claude pursue one research question at a time, you can have multiple research subagents conduct research on different topics simultaneously.
How to create agents
To view, create, and modify subagents, type /agents. Creating an agent this way will generate a new markdown file in ~/.claude/agents that describes your agent with metadata and a detailed system prompt.
If you wish you can also directly create and edit agents by modifying this directory. Make sure to structure your .md files with correct markdown described in the subagent documentation.
6. MCP Tools
What are MCP tools?
MCP tools (often just called tools) are how Claude interacts with the external world. Tools are made available to Claude via MCP servers, which function like plugins for your AI apps. Installing a server gives Claude access to all of the tools contained in that server.
To get more concrete - let's picture the Notion MCP server. Once you install it into Claude Code, you'll have access to all of the tools offered by that server, such as notion-create-pages, notion-search, notion-update-page, notion-get-comments, and so on. These tools let Claude use Notion, just like a human user would.

How to install MCP servers
You can find quick installation instructions for many popular MCP servers here. The specific installation process depends on whether you're using the Claude AI app or the CLI.
CLI method
Most servers will come with their own easy to copy-paste command. But for everything else, use the generalized command for adding MCP servers to Claude Code below.
claude mcp add [SERVER NAME] --transport [TRANSPORT TYPE] [MCP SERVER URL]
You can also install servers by updating your configuration files (ie .mcp.json or .claude.json) directly. I wouldn't recommend this unless you're comfortable troubleshooting issues that may arise from doing this incorrectly. Claude can assist with this setup if desired.
Claude AI app method
Inside the Claude Code app, click settings

Local Server
You can run an MCP server locally on your machine. The Claude Code client spawns the server process and communicates via stdin/stdout methods.
Most MCP servers are distributed as npm or Python packages, which you can install using a command they provide. Then you'll add the server to your MCP configuration file: .claude/settings.json or global settings):
{
"mcpServers": {
"server-name": {
"command": "node",
"args": ["path/to/server/index.js"],
"env": {
"OPTIONAL_VAR": "value"
}
}
}
}
Where to find MCP servers
Many products make MCP servers available to their users who already have a subscription. Check their integration settings for more information.
You can also find libraries of 3rd party MCP servers from providers like Composio and Pipedream, which convert open APIs into MCP tools and offer them via their own servers.
Want to use Claude Code with your team?
Try Duet—the collaborative workspace for agentic workflows.
7. Skills
What are skills
Skills are one of the newest and most significant innovations in agentic tooling. They're basically a written instruction manual telling Claude how to do something. Skills consist of a detailed prompt describing the skill, plus other supporting files like templates, resources and scripts all packaged together in a file.

Skills live in a .claude/skills/ folder within your project directory. When you start a new Claude Code session, Claude reads a short description of each available skill so it knows what's in its toolkit.
When you give Claude a task, it checks whether any skill matches what you're asking for. If there's a match, Claude loads the full skill prompt and follows those instructions. You can also explicitly tell Claude to use a skill if it doesn't activate automatically.
What are skills good for
Skills are ideal for encoding specialized or proprietary processes into your Claude Code workflows. If you've ever wanted Claude to follow a certain workflow, use a library or set of tools like an expert, or format a document in a certain way, then skills will be useful for you.
Most useful skills fall into one of these buckets:
Workflows:
One way to use skills is to encode the steps of a complex workflow into a reusable package, replacing the need for re-writing or copy-pasting complex prompts. Perfect uses include code review, document processing, and web automation tasks.
You're not limited to prompts, though. You have full control over how deterministic the workflow is: describe it in text to let Claude execute end-to-end using its judgement, turn the workflow into an executable script for a predictable result, or design it to be somewhere in between.
Expert execution:
Sometimes the workflow itself isn't complicated, but involves in-depth use of a complex programming library or specialized tool. Claude can figure out how to use it, but will spend extra time reading documentation and learning through trial and error during each session. A skill can teach Claude how to use a specific tool the way an expert would, including best practices, common pitfalls to avoid, and your preferred conventions.
Templating:
Skills can ensure Claude produces documents with consistent formatting and structure. Whether you need invoices, reports, or emails that follow a specific template, you can package example files and formatting rules into a skill. Claude will then generate new documents that match your template exactly, rather than inventing its own format each time.
How to use skills
Invoking skills:
The simplest way to use a skill is to type / followed by the skill name. This tells Claude to activate that specific skill for your current task. You can also just describe what you want to do, and Claude will often recognize when a skill applies and use it automatically.
Creating new skills:
You can create skills by asking Claude directly. Just say something like "create a skill for writing weekly status reports" and Claude will generate the skill file for you. Alternatively, you can write skill files yourself by creating a markdown file in .claude/skills/ with a description and detailed instructions.
Managing skills:
Your skills are just files in your project folder, so you can edit, rename, or delete them like any other file. To see what skills are available, you can ask Claude "what skills do you have?" or browse the .claude/skills/ directory yourself. Since skills are stored as plain text files, you can also share them with teammates or copy them between projects.
Note
Until recently, Claude Code had a separate feature called "commands" that you'd invoke by typing /command-name. Anthropic has since merged commands into skills, so everything now works through the unified skills system.
8. Hooks
What are hooks
Hooks are shell commands that auto-execute when specific events happen during a Claude Code session. They receive JSON input via stdin containing session and tool context, and their exit codes control behavior (0 for success, 2 for blocking error).
When to use hooks
- Run linters or formatters after file edits
- Log tool usage for auditing
- Block certain operations based on custom rules
- Send notifications when Claude completes tasks
- Validate inputs before tools execute
How to create hooks
Configure hooks via the /hooks command or directly in settings files.
Available hook events:
PreToolUse/PostToolUse- before and after tool executionPermissionRequest- when Claude needs approvalUserPromptSubmit- when you send a messageNotification/Stop/SubagentStop- session lifecycle eventsPreCompact- before context compactionSessionStart/SessionEnd- session boundaries
Hooks can allow, deny, or modify tool behavior based on your logic.
Output styles
Output styles modify how Claude communicates by adjusting its system prompt.
Built-in styles:
| Style | Behavior |
|---|---|
| Default | Optimized for completing dev tasks efficiently |
| Explanatory | Adds educational "Insights" between tasks explaining implementation choices |
| Learning | Collaborative mode where Claude shares insights, asks you to contribute code, and adds TODO(human) markers |
Switch styles with the /output-style command.
Custom styles:
Create markdown files defining your preferred communication style:
- User-level:
~/.claude/output-styles/ - Project-level:
.claude/output-styles/
Want to use Claude Code with your team?
Try Duet—the collaborative workspace for agentic workflows.
9. Plugins and Marketplace
By now you've learned about several ways to extend Claude Code: subagents, skills, hooks, and MCP servers. Each lives in its own configuration file or folder. Each requires manual setup. And if you want to share your setup with a teammate or use it across projects, you're stuck copying files around.
Plugins solve this problem by packaging extensions into shareable bundles.
What are plugins?
A plugin is a bundle that wraps up any combination of Claude Code extensions into a single, versioned package you can install with one command.
A plugin can contain:
- Slash commands - custom
/commands - Subagents - specialized AI agents for specific tasks
- Skills - capabilities Claude activates automatically
- Hooks - event handlers that run before or after actions
- MCP servers - pre-configured external connections
- LSP servers - language intelligence for code understanding
Think of plugins as "extension packs." Instead of manually setting up an MCP server, configuring related slash commands, and writing hooks - you install one plugin that bundles all of it together.
Why this matters
Before plugins: You spend an afternoon setting up Claude Code exactly how you like it. Your coworker asks how you did it. You walk them through every step or send them files to place in the right directories. Something breaks.
After plugins: You install a plugin. They install the same plugin. Done.
Team consistency. Install a plugin at project scope and everyone working in that repository gets the same extensions.
Community leverage. The marketplace contains plugins built by developers who've already solved problems you're about to encounter.
Version control. Plugins are versioned. When an update fixes a bug or adds capabilities, you update the plugin rather than manually tweaking config files.
Finding and installing plugins
The /plugin command opens the plugin manager where you can browse, install, and manage plugins.
The official Anthropic marketplace is built in. Installing takes seconds:
/plugin install [plugin-name]
Installation scopes
- User scope - applies to all your projects (personal productivity tools)
- Project scope - installs into
.claude/and gets version-controlled (team workflows) - Local scope - project-specific but only for you (experiments)
Team marketplaces
Organizations can run their own marketplaces for internal distribution. Add your team's marketplace in settings and it appears alongside the official one.
10. FAQ
Want to use Claude Code with your team?
Try Duet—the collaborative workspace for agentic workflows.