Last verified against the official docs: July 2, 2026.
Install Claude Code in your terminal
Claude Code is Anthropic's agent for the terminal — it reads your project, writes code, runs commands, and asks permission before changing anything. You need a Claude subscription (Pro, Max, Team, or Enterprise) or a Claude Console account.
macOS, Linux, or WSL (recommended)
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell
irm https://claude.ai/install.ps1 | iex
Homebrew (macOS)
brew install --cask claude-code
The native install auto-updates in the background; Homebrew and WinGet
(winget install Anthropic.ClaudeCode) don't — upgrade those manually.
First run
cd /path/to/your/project
claude
On first use you'll be prompted to log in — follow the browser flow. Credentials are stored, so it's a one-time thing. Then just talk to it:
what does this project do?
Essential commands
| Command | What it does |
|---|---|
claude | Start an interactive session |
claude "fix the build error" | Run a one-time task |
claude -p "explain this function" | One-off query, then exit |
claude -c | Continue the most recent conversation here |
claude -r | Resume a previous conversation |
/help | (inside a session) list all commands |
/clear | (inside a session) clear conversation history |
/ to see all commands and skills, press
Shift+Tab to cycle permission modes, and be specific — "fix the login bug
where users see a blank screen after wrong credentials" beats "fix the bug".
Skills — teach Claude your procedures
A skill is a folder with a SKILL.md file. Create one when you keep pasting
the same instructions or checklist into chat. Claude loads it automatically when
relevant, or you invoke it directly with /skill-name. The skill's body only
enters context when it's used — so long reference material costs nothing until needed.
Where skills live
| Level | Location | Applies to |
|---|---|---|
| Personal | ~/.claude/skills/<name>/SKILL.md | All your projects |
| Project | .claude/skills/<name>/SKILL.md | That project only |
| Plugin | <plugin>/skills/<name>/SKILL.md | Wherever the plugin is enabled |
The directory name becomes the command you type
(~/.claude/skills/deploy-staging/ → /deploy-staging). Custom
commands (.claude/commands/*.md) still work — they've been merged into
skills.
Create your first skill
mkdir -p ~/.claude/skills/summarize-changes
Then save this as ~/.claude/skills/summarize-changes/SKILL.md:
---
description: Summarize recent git changes in plain language. Use when asked
what changed recently or for a changelog-style summary.
---
Look at the last 10 commits with `git log --oneline -10` and the current
diff with `git diff HEAD`. Summarize what changed in plain language,
grouped by feature area. Keep it under 10 bullet points.
That's it. New skills are picked up live within the session — type
/summarize-changes or just ask "what changed recently?" and Claude finds it
via the description.
Good to know
$ARGUMENTSin the skill body captures whatever you type after the command (/my-skill some input).- A skill directory can hold supporting files (templates, scripts, reference docs) —
keep
SKILL.mdunder ~500 lines and link out to the rest. - Frontmatter can restrict who invokes it:
disable-model-invocation: truemakes it you-only;context: forkruns it isolated in a subagent. - Same-named skills: personal overrides project, and any of them override a bundled skill of the same name.
Plugins — package and share your setup
A plugin is a self-contained directory of skills, agents, hooks, and MCP servers that
you can version and share. Rule of thumb: start standalone in .claude/ for
quick iteration; convert to a plugin when you want to share it across projects or with
other people.
Install plugins
Inside a Claude Code session:
/plugin
That opens the plugin manager — browse, install, enable, disable. Anthropic maintains
two public marketplaces: claude-plugins-official (curated, registered
automatically) and the community one, which you add with:
/plugin marketplace add anthropics/claude-plugins-community
Create a plugin (minimal)
my-first-plugin/
├── .claude-plugin/
│ └── plugin.json ← manifest: name, description, version
└── skills/
└── hello/
└── SKILL.md ← becomes /my-first-plugin:hello
The manifest:
{
"name": "my-first-plugin",
"description": "A greeting plugin to learn the basics",
"version": "1.0.0"
}
Test it without installing anything:
claude --plugin-dir ./my-first-plugin
Plugin skills are always namespaced (/plugin-name:skill-name)
so they can't collide. After editing a plugin, run /reload-plugins to pick
up changes without restarting. There's also a shortcut for personal plugins:
claude plugin init my-tool scaffolds one in ~/.claude/skills/
that loads automatically.
What plugins can contain
| Directory / file | Purpose |
|---|---|
skills/ | Skills as <name>/SKILL.md folders |
agents/ | Custom subagent definitions |
hooks/hooks.json | Event handlers (e.g. auto-lint after every edit) |
.mcp.json | MCP server configs — connect external tools |
bin/ | Executables added to PATH while enabled |
plugin.json goes inside .claude-plugin/.
Everything else (skills/, agents/, hooks/) lives at
the plugin root.
Where to go deeper
- Quickstart — the official getting-started guide
- Skills — full frontmatter reference and advanced patterns
- Plugins — creating, testing, and distributing
- Best practices — prompting and project setup
- MCP — connecting Claude to external tools and data
Ready to build?
Claude Code installed? Head to the Prompt Library and build the backend — the rest of the agent system stacks on top of it.