Claude Code: полный гайд — установка, MCP, агенты, skills
Что такое Claude Code?
Claude Code — это агентный CLI-инструмент от Anthropic, который работает в терминале и взаимодействует с кодовой базой напрямую: читает и редактирует файлы, выполняет команды, ищет по коду, управляет git-воркфлоу. В отличие от чат-интерфейсов, Claude Code оперирует в контексте реального проекта — видит структуру файлов, зависимости и конфигурации. Поддерживает расширение через MCP серверы, кастомные skills, субагенты и хуки. Работает с подпиской Pro ($20/мес), Max ($100-200/мес) или через API.
TL;DR
- -Claude Code — агентный CLI, который работает с кодовой базой напрямую: читает файлы, выполняет команды, редактирует код, управляет git — без копирования контекста в чат
- -Установка одной командой: curl -fsSL https://claude.ai/install.sh | bash (macOS/Linux) или через Homebrew/npm; авторизация через Pro/Max подписку или API-ключ
- -CLAUDE.md — файл проектных инструкций, который загружается в каждую сессию: команды сборки, стандарты кода, архитектурные решения; рекомендуемый размер — до 200 строк
- -MCP серверы расширяют Claude Code внешними инструментами (GitHub, Notion, базы данных); конфигурация в .mcp.json на уровне проекта или в ~/.claude.json для персональных серверов
- -Субагенты — специализированные AI с отдельным контекстом; определяются как markdown-файлы в .claude/agents/, могут работать параллельно и иметь ограниченный набор инструментов
- -Средняя стоимость через API — $13/день на разработчика (90% пользователей тратят менее $30/день); Pro план — $20/мес, Max 5x — $100/мес, Max 20x — $200/мес
Claude Code — агентный CLI от Anthropic. Запускается в терминале, работает с проектом напрямую: читает файлы, выполняет shell-команды, редактирует код, управляет git. Копировать код в чат не нужно — Claude видит всю кодовую базу.
Это standalone CLI, а не IDE-расширение вроде Cursor или Windsurf. Не привязан к редактору. Работает через stdin/stdout, встраивается в любой процесс — от интерактивной разработки до CI/CD.
Что умеет Claude Code
Встроенные инструменты:
- Read/Write/Edit — чтение, создание и редактирование файлов с поддержкой точечных замен. Edit использует exact string matching для точечных правок — не перезаписывает файл целиком
- Bash — выполнение shell-команд с полным доступом к окружению. Каждая команда запрашивает разрешение пользователя (если не добавлена в allowlist)
- Glob — поиск файлов по паттернам (
**/*.ts,src/**/*.test.js). Возвращает пути, отсортированные по времени модификации - Grep — поиск по содержимому файлов через ripgrep. Поддерживает regex, фильтрацию по типу файлов, контекстные строки
- Agent — запуск субагентов для параллельных задач с изолированным контекстом
- WebSearch/WebFetch — поиск в интернете и загрузка веб-страниц для получения актуальной информации
- LSP — навигация по коду через Language Server Protocol (go to definition, find references)
- MCP-инструменты — любые внешние интеграции через Model Context Protocol
Claude Code работает агентно: получает задачу, декомпозирует, использует инструменты, проверяет результат. Один промпт запускает цепочку из десятков действий — от анализа кода до коммита.
Типичный workflow при запросе «исправь баг в авторизации»:
- Claude ищет файлы, связанные с авторизацией (Grep/Glob)
- Читает код и анализирует логику (Read)
- Находит проблему и редактирует файлы (Edit)
- Запускает тесты для верификации (Bash)
- При необходимости — фиксит тесты
- Создаёт коммит с осмысленным сообщением (Bash: git commit)
Отличие от Claude.ai, Cursor, Windsurf
| Характеристика | Claude.ai | Cursor/Windsurf | Claude Code |
|---|---|---|---|
| Интерфейс | Веб/десктоп чат | IDE (fork VS Code) | Терминал CLI |
| Доступ к файлам | Загрузка вручную | Открытый проект | Весь проект автоматически |
| Выполнение команд | Sandbox (ограничено) | Встроенный терминал | Полный доступ к shell |
| MCP серверы | Через Connectors | Ограниченно | Полная поддержка |
| Автоматизация | Нет | Ограничено | SDK, хуки, CI/CD |
| Git-операции | Нет | Базовые | Полный workflow |
| Субагенты | Нет | Нет | Встроенная поддержка |
Установка и первый запуск
Системные требования
- macOS, Linux или Windows (через WSL2)
- Node.js 18+ (для npm-установки)
- Git (рекомендуется)
- Подписка Pro/Max или API-ключ Anthropic
Установка
Рекомендуемый способ — через curl (macOS/Linux):
curl -fsSL https://claude.ai/install.sh | bash
Альтернативные варианты:
# Homebrew (macOS/Linux)
brew install --cask claude-code
# npm (deprecated, но работает)
npm install -g @anthropic-ai/claude-code
# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
# Windows Package Manager
winget install Anthropic.ClaudeCode
Проверка установки:
claude --version
Авторизация
Два способа авторизации:
Через подписку Pro/Max — основной вариант:
claude
# При первом запуске откроется браузер для авторизации
# Войдите с учётной записью claude.ai
Через API-ключ — для API-тарификации или корпоративного использования:
export ANTHROPIC_API_KEY="sk-ant-..."
claude
Если установлена переменная ANTHROPIC_API_KEY, Claude Code берёт её вместо подписки — оплата по API-ценам, лимит Pro/Max не расходуется. Переключение обратно:
claude auth logout
claude auth login # Выберите авторизацию через подписку
Первый запуск
cd /path/to/your/project
claude
Claude Code прочитает CLAUDE.md (если есть), подключит MCP серверы из .mcp.json, загрузит auto memory и skills.
Команды — обычный естественный язык:
> Объясни архитектуру этого проекта
> Найди все TODO в коде
> Добавь валидацию входных данных в auth.ts
> Запусти тесты и исправь ошибки
Каждая операция с файлами и каждая bash-команда требует подтверждения. Доверенные команды можно пропускать через permissions:
{
"permissions": {
"allow": [
"Bash(npm test *)",
"Bash(git log *)",
"Bash(git diff *)",
"Read(*)"
]
}
}
Это сохраняется в .claude/settings.json (проект) или ~/.claude/settings.json (глобально).
Для выхода — Ctrl+C или команда /exit.
Обновление
claude update
Или переустановка тем же методом. Обновления выходят часто. Проверка версии:
claude --version
CLAUDE.md — настройка контекста проекта
Файл инструкций, который загружается в контекст каждой сессии. Определяет команды сборки, стандарты кода, архитектурные правила проекта. Принципы эффективного управления контекстом подробно разобраны в руководстве по context engineering.
Расположение и приоритет
Файлы загружаются из нескольких уровней. Более специфичные имеют приоритет:
| Уровень | Расположение | Назначение |
|---|---|---|
| Managed policy | /Library/Application Support/ClaudeCode/CLAUDE.md | Корпоративные стандарты (деплоится через MDM) |
| Project | ./CLAUDE.md или ./.claude/CLAUDE.md | Командные инструкции, коммитятся в репозиторий |
| User | ~/.claude/CLAUDE.md | Персональные предпочтения для всех проектов |
| Local | ./CLAUDE.local.md | Личные настройки проекта (gitignored) |
Claude Code обходит дерево директорий вверх от текущей: если запустить в foo/bar/, загрузятся foo/bar/CLAUDE.md, foo/CLAUDE.md и все CLAUDE.local.md рядом с ними.
Структура файла
Хороший CLAUDE.md — конкретный и лаконичный. Целевой размер — до 200 строк.
# Project conventions
## Commands
- Build: `npm run build`
- Test: `npm test -- --watch`
- Lint: `npm run lint`
- Deploy: `npm run deploy`
## Stack
- TypeScript 5.x, strict mode
- React 19, functional components only
- Prisma ORM, PostgreSQL
## Code standards
- Named exports, never default exports
- Tests next to source: `foo.ts` → `foo.test.ts`
- API routes return `{ data, error }` shape
- Use `zod` for input validation
## Architecture
- `src/api/` — API handlers
- `src/services/` — business logic
- `src/lib/` — shared utilities
- `src/types/` — TypeScript types
## Git
- Conventional commits: `feat:`, `fix:`, `refactor:`
- PR description обязательно
- Squash merge в main
Импорт файлов
Импорт через @path синтаксис:
@README.md
@docs/architecture.md
@package.json
# Additional rules
- Always check test coverage before committing
Файлы разворачиваются при старте сессии. Вложенность — до 5 уровней. Пути относительно файла с импортом.
Автоматическая генерация
Команда /init анализирует кодовую базу и генерирует стартовый CLAUDE.md:
claude
> /init
Если CLAUDE.md уже существует, /init предложит улучшения, а не перезапишет файл.
Расширенный режим с интерактивным флоу:
CLAUDE_CODE_NEW_INIT=1 claude
> /init
Claude спросит, какие артефакты настроить (CLAUDE.md, skills, hooks), исследует кодовую базу субагентом, задаст уточняющие вопросы и покажет предложение перед записью файлов.
Organize rules — структурирование правил
Для крупных проектов инструкции можно разбить по файлам в .claude/rules/:
.claude/rules/
├── testing.md # Правила тестирования
├── api-design.md # API-конвенции
├── security.md # Требования безопасности
└── frontend/
└── components.md # Правила для компонентов
Rules-файлы могут иметь scope по паттернам файлов через YAML frontmatter:
---
paths:
- "src/api/**/*.ts"
---
All API handlers must validate input with zod schemas.
Return 400 for validation errors with field-level details.
Это загружает правило только при работе с файлами, совпадающими с паттерном.
MCP серверы
Model Context Protocol (MCP) — стандарт интеграции AI с внешними сервисами. MCP серверы дают Claude Code доступ к GitHub, Notion, базам данных, мониторингу и другим API.
Принцип работы
MCP сервер — процесс, который стартует вместе с сессией и отдаёт инструменты через стандартизированный протокол. Claude Code сам обнаруживает доступные инструменты и вызывает их по мере надобности.
Схемы инструментов загружаются лениво (deferred by default) — в контекст попадают только имена, а полные определения подгружаются при первом использовании. Экономия токенов.
Конфигурация
Проектный уровень (.mcp.json в корне проекта, коммитится в репозиторий):
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "${DATABASE_URL}"
}
}
}
}
Пользовательский уровень (через CLI, сохраняется в ~/.claude.json):
# Добавить сервер для всех проектов
claude mcp add --scope user github \
npx -y @modelcontextprotocol/server-github
# Добавить с переменными окружения
claude mcp add --scope user notion \
npx -y @notionhq/notion-mcp-server \
-e NOTION_API_KEY="${NOTION_API_KEY}"
Полезные MCP серверы
Разработка и DevOps:
| Сервер | Назначение | Пакет |
|---|---|---|
| GitHub | Issues, PR, code search | @modelcontextprotocol/server-github |
| PostgreSQL | SQL-запросы к базе | @modelcontextprotocol/server-postgres |
| Sentry | Ошибки и мониторинг | @sentry/mcp-server-sentry |
| Supabase | Управление проектом | Встроенный в Claude Code |
Продуктивность:
| Сервер | Назначение | Пакет |
|---|---|---|
| Notion | Страницы, базы данных | @notionhq/notion-mcp-server |
| Linear | Задачи и проекты | linear-mcp (через OAuth) |
| Slack | Сообщения и каналы | @modelcontextprotocol/server-slack |
| Google Workspace | Docs, Sheets, Gmail | Community servers |
Данные и поиск:
| Сервер | Назначение | Пакет |
|---|---|---|
| Brave Search | Веб-поиск | @modelcontextprotocol/server-brave-search |
| Exa | AI-поиск | Community server |
| Filesystem | Доступ к файлам | @modelcontextprotocol/server-filesystem |
Управление серверами
# Список серверов
claude mcp list
# Статус в сессии
> /mcp
# Удалить сервер
claude mcp remove github
# Отключить без удаления
claude mcp disable github
Написание собственного MCP сервера
Нет готового сервера — пишите свой. MCP сервер общается через stdin/stdout по JSON-RPC. Подробнее о том, как проектировать и деплоить кастомные MCP серверы в продакшн, — в руководстве по MCP серверам.
Минимальный сервер на Node.js:
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
const server = new Server({
name: "my-custom-server",
version: "1.0.0",
});
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "get_status",
description: "Get service status",
inputSchema: {
type: "object",
properties: {
service: { type: "string", description: "Service name" }
},
required: ["service"]
}
}]
}));
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "get_status") {
const status = await checkStatus(request.params.arguments.service);
return { content: [{ type: "text", text: JSON.stringify(status) }] };
}
});
const transport = new StdioServerTransport();
await server.connect(transport);
SDK доступен для TypeScript, Python, Go, Rust и других языков. Документация: modelcontextprotocol.io.
Claude Code как MCP-сервер
Claude Code сам может быть MCP-сервером для других приложений:
claude mcp serve
Конфигурация для Claude Desktop:
{
"mcpServers": {
"claude-code": {
"type": "stdio",
"command": "claude",
"args": ["mcp", "serve"]
}
}
}
Оптимизация MCP-серверов
MCP инструменты потребляют контекст. Что делать:
- Отключайте неиспользуемые серверы через
/mcp - Для CLI-инструментов (gh, aws, gcloud) предпочтительнее прямой вызов через Bash — нулевой overhead на определение инструментов
- Проверяйте потребление контекста через
/cost
Агенты и субагенты
Agent tool
Agent — встроенный инструмент для запуска субагентов. Субагент — отдельная Claude-инстанция со своим контекстом, промптом и (опционально) ограниченным набором инструментов.
Зачем:
- Изоляция контекста — промежуточные результаты не засоряют основной разговор
- Параллелизация — несколько субагентов работают одновременно
- Специализация — каждый субагент получает промпт с экспертизой под конкретную задачу
- Ограничение инструментов — субагенту можно запретить запись файлов или выполнение команд
Создание субагентов
Субагенты определяются как markdown-файлы:
- Проектные:
.claude/agents/*.md - Глобальные:
~/.claude/agents/*.md
Формат файла — markdown с YAML frontmatter:
---
name: code-reviewer
description: Expert code review specialist. Use for quality, security, and maintainability reviews.
tools: Read, Grep, Glob
---
You are a code review specialist. Focus on:
1. Correctness — logic errors, edge cases, race conditions
2. Security — injection, auth bypass, data exposure
3. Performance — N+1 queries, unnecessary allocations
4. Maintainability — naming, abstraction level, test coverage
Provide specific, actionable feedback with code examples.
Prioritize issues by severity: critical > major > minor > suggestion.
Поля конфигурации:
| Поле | Обязательное | Описание |
|---|---|---|
name | Да | Идентификатор (lowercase, дефисы) |
description | Да | Когда использовать субагент |
tools | Нет | Разрешённые инструменты. Без поля — доступны все |
model | Нет | Модель (haiku, sonnet, opus) |
Пример: параллельный code review
---
name: security-scanner
description: Scan code for security vulnerabilities
tools: Read, Grep, Glob
model: sonnet
---
Analyze code for OWASP Top 10 vulnerabilities:
- SQL injection, XSS, CSRF
- Hardcoded secrets and credentials
- Insecure deserialization
- Broken access control
Return findings as structured JSON with severity levels.
---
name: test-coverage
description: Analyze test coverage and suggest missing tests
tools: Read, Grep, Glob, Bash
model: sonnet
---
Analyze test coverage:
1. Find untested functions and edge cases
2. Check boundary conditions
3. Verify error handling paths
4. Suggest specific test cases to add
При запросе «сделай полный code review» Claude Code может запустить оба субагента параллельно и агрегировать результаты. О том, как выстроить систематический AI-assisted code review, — в чеклисте по AI code review.
Auto memory для субагентов
Субагенты накапливают знания между сессиями через persistent memory:
---
name: debugger
description: Debug complex issues across the codebase
tools: Read, Grep, Glob, Bash
memory: user
---
Memory субагента хранится в ~/.claude/agent-memory/ и загружается при каждом его вызове. Доступные значения: user (общая для всех проектов), project (привязана к репозиторию), local (текущая директория).
Skills и команды
Skills (ранее commands) — переиспользуемые промпты. Вызываются как /name в сессии.
Расположение
- Проектные:
.claude/commands/*.mdили.claude/skills/<name>/SKILL.md - Глобальные:
~/.claude/commands/*.mdили~/.claude/skills/<name>/SKILL.md
Простой skill
Файл .claude/commands/review.md:
Review the current git diff for:
1. Code quality and readability
2. Security vulnerabilities
3. Performance implications
4. Missing test coverage
Provide actionable feedback organized by priority.
Использование: /review в сессии Claude Code.
Skill с frontmatter
.claude/commands/fix-issue.md:
---
allowed-tools: Read, Grep, Glob, Edit, Bash
argument-hint: [issue-number]
description: Fix a GitHub issue by number
---
Fix GitHub issue #$1:
1. Read the issue description from GitHub
2. Understand the requirements
3. Find relevant code
4. Implement the fix
5. Write tests
6. Create a commit with conventional message
Использование: /fix-issue 42
Динамический контекст
Два механизма вставки контекста:
Bash-подстановка — вывод команды включается в промпт:
---
description: Create a git commit based on current changes
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
---
## Context
- Status: !`git status`
- Diff: !`git diff HEAD`
## Task
Create a commit with conventional commit message based on the changes above.
Файловые ссылки — содержимое файлов вставляется в промпт:
---
description: Review project configuration
---
Review these configuration files:
- @package.json
- @tsconfig.json
- @.env.example
Check for security issues, outdated dependencies, and misconfigurations.
Организация skills
Поддиректории создают namespace:
.claude/commands/
├── frontend/
│ ├── component.md # /component
│ └── style-check.md # /style-check
├── backend/
│ ├── api-test.md # /api-test
│ └── db-migrate.md # /db-migrate
└── review.md # /review
Для skills с вложенными файлами — формат skills/:
.claude/skills/
└── deploy/
├── SKILL.md # /deploy
├── checklist.md # Файл-ресурс
└── templates/
└── release.md # Шаблон
Просмотр доступных skills
> /skills # Список всех skill
> /help # Включая встроенные команды
Хуки — автоматизация поведения
Хуки — shell-команды на определённых этапах жизненного цикла Claude Code. В отличие от CLAUDE.md (рекомендации), хуки — код, который выполняется каждый раз детерминированно.
Типы хуков
| Хук | Когда срабатывает | Может блокировать |
|---|---|---|
PreToolUse | Перед вызовом инструмента | Да |
PostToolUse | После завершения инструмента | Нет |
UserPromptSubmit | При отправке промпта пользователем | Да |
Notification | При уведомлении | Нет |
Stop | Когда Claude завершает ответ | Да |
SubagentStop | Когда субагент завершает задачу | Да |
PreCompact | Перед операцией compact | Нет |
PostCompact | После операции compact | Нет |
SessionStart | При старте сессии | Нет |
SessionEnd | При завершении сессии | Нет |
Конфигурация
Хуки настраиваются в settings.json (проектном или пользовательском) или через /hooks:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { read f; if echo \"$f\" | grep -q '\\.ts$'; then npx prettier --write \"$f\"; fi; }"
}
]
}
]
}
}
Этот хук автоматически форматирует TypeScript файлы через Prettier после каждого редактирования.
Примеры хуков
Автоформатирование Go-файлов:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | { read f; if echo \"$f\" | grep -q '\\.go$'; then gofmt -w \"$f\"; fi; }"
}
]
}
]
}
}
Защита чувствительных файлов от редактирования:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 -c \"import json, sys; data=json.load(sys.stdin); path=data.get('tool_input',{}).get('file_path',''); sys.exit(2 if any(p in path for p in ['.env', 'package-lock.json', '.git/']) else 0)\""
}
]
}
]
}
}
sys.exit(2) блокирует операцию и передаёт Claude обратную связь о причине блокировки.
Логирование всех bash-команд:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "jq -r '\"\\(.tool_input.command) - \\(.tool_input.description // \"No description\")\"' >> ~/.claude/bash-command-log.txt"
}
]
}
]
}
}
Десктоп-уведомление при ожидании ввода:
{
"hooks": {
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "osascript -e 'display notification \"Awaiting your input\" with title \"Claude Code\"'"
}
]
}
]
}
}
Настройка через UI
Вместо ручного редактирования settings.json:
> /hooks
# Выберите тип хука → добавьте matcher → укажите команду
Лимиты и тарифы
Планы подписки
| План | Цена | Лимит использования | Claude Code |
|---|---|---|---|
| Free | $0 | Базовый | Нет |
| Pro | $20/мес | Стандартный | Включён |
| Max 5x | $100/мес | 5x от Pro | Включён |
| Max 20x | $200/мес | 20x от Pro | Включён |
| Team (Premium seat) | $100/мес (annual) / $125/мес (monthly) | 5x | Включён |
| Enterprise | Custom pricing (через sales) | Индивидуальный | Включён |
Лимиты Pro и Max общие для Claude.ai и Claude Code — один и тот же лимит на оба инструмента.
API-тарификация
При использовании через API-ключ (а не подписку) — оплата по токенам:
| Модель | Input (за 1M токенов) | Output (за 1M токенов) |
|---|---|---|
| Opus 4.6 | $5 | $25 |
| Sonnet 4.6 | $3 | $15 |
| Haiku 4.5 | $1 | $5 |
Prompt caching снижает стоимость повторного контекста (system prompt, CLAUDE.md):
- Write cache: 1.25x от input-цены
- Read cache: 0.1x от input-цены
Средняя стоимость через API: $13 в день на разработчика. 90% пользователей тратят менее $30/день. Для команд — порядка $150-250/мес на разработчика.
Что делать при достижении лимита
Pro: перейти на Max 5x, включить extra usage, переключиться на API, дождаться сброса лимита.
Max: перейти на Max 20x, включить extra usage, переключиться на API.
Проверка статуса:
> /status # Текущая конфигурация, версия и подписка
> /cost # Расход токенов за сессию (для API)
> /stats # Статистика использования и история сессий
Оптимизация расходов
- Используйте Sonnet для повседневных задач, Opus — для сложной архитектуры и multi-step reasoning
- Переключайте модель на лету:
/model - Очищайте контекст между задачами:
/clear - Делегируйте verbose-операции (тесты, логи) субагентам
- Держите CLAUDE.md компактным — он загружается каждую сессию
Продвинутые техники
Auto memory
Claude накапливает знания между сессиями без ручного ввода. Сам решает, что запомнить: команды сборки, отладочные инсайты, архитектурные заметки, предпочтения по стилю кода.
Хранилище: ~/.claude/projects/<project>/memory/
memory/
├── MEMORY.md # Индекс, загружается каждую сессию (первые 200 строк / 25KB)
├── debugging.md # Паттерны отладки
├── api-conventions.md # API-решения
└── ...
MEMORY.md — индекс, который Claude читает при старте. Остальные файлы читаются по требованию.
Управление:
> /memory # Просмотр и редактирование
Включение/отключение:
{
"autoMemoryEnabled": false
}
Все файлы memory — обычный markdown, который можно редактировать или удалять.
Plan mode
Режим, где Claude анализирует кодовую базу и предлагает план без внесения изменений. Переключение: Shift+Tab.
Применение:
- Перед крупными рефакторингами — согласовать подход до начала работы
- Анализ архитектуры без риска случайных изменений
- Экономия токенов: согласовать план дешевле, чем переделывать неправильную реализацию
Git worktrees
Claude работает в изолированном клоне репозитория:
claude --worktree
Claude создаёт worktree, копирует gitignored файлы из .worktreeinclude, выполняет работу, возвращается в основной репозиторий.
Файл .worktreeinclude в корне проекта:
.env
.env.local
node_modules/
Субагенты тоже могут использовать worktree-изоляцию:
---
name: experimental-refactor
description: Try experimental refactoring approaches
isolation: worktree
tools: Read, Edit, Bash, Grep, Glob
---
Compact — управление контекстом
При заполнении контекстного окна Claude Code автоматически сжимает историю разговора.
Ручной вызов с кастомными инструкциями:
> /compact Focus on code changes and test results
CLAUDE.md файлы переживают compaction — перечитываются с диска и заново инжектируются в сессию.
Настройка поведения в CLAUDE.md:
# Compact instructions
When compacting, preserve: test output, code changes, architectural decisions.
Discard: exploration steps, file listings, intermediate search results.
Выбор модели
Переключение модели в сессии:
> /model
Рекомендации:
| Задача | Модель | Почему |
|---|---|---|
| Ежедневная разработка | Sonnet 4.6 | Баланс скорости и качества |
| Архитектурные решения | Opus 4.6 | Глубокий multi-step reasoning |
| Простые субагенты | Haiku 4.5 | Минимальная стоимость |
Extended thinking
Включён по умолчанию — Claude «думает» перед ответом. На сложных задачах это даёт заметный прирост качества. Thinking-токены тарифицируются как output.
Управление:
> /effort # Уровень усилий: low, medium, high, max
Переменная окружения для ограничения бюджета:
export MAX_THINKING_TOKENS=8000
Контекст сессии
Что загружено в контекст:
> /cost # Расход токенов за сессию (для API)
> /memory # CLAUDE.md и rules файлы
> /mcp # MCP серверы и инструменты
> /skills # Доступные skills
> /permissions # Текущие разрешения
> /status # Версия, модель, аккаунт и подключения
Resume — продолжение сессий
# Показать последние сессии
claude --resume
# Продолжить последнюю сессию
claude --continue
# Переименовать сессию для удобства
> /rename refactoring-auth-module
Реальные сценарии использования
Онбординг в новый проект
> Объясни архитектуру проекта: основные модули, как они связаны,
какие фреймворки и паттерны используются
Claude прочитает ключевые файлы (package.json, конфиги, точки входа), обойдёт структуру директорий и даст сжатый обзор. Дальше — уточняющие вопросы:
> Как устроена авторизация? Покажи flow от логина до получения токена
> Какие API-эндпоинты есть? Составь таблицу: путь, метод, назначение
Рефакторинг
> Переведи все callback-based функции в src/services/ на async/await.
Сохрани существующее поведение. Запусти тесты после каждого файла.
Claude обработает файлы последовательно, запуская тесты между изменениями. При ошибке — остановится и исправит до перехода к следующему файлу.
Исследование бага
> В production сыпятся ошибки "Connection timeout" в auth-сервисе.
Логи: cat /tmp/auth-errors.log
Найди причину и предложи исправление.
Claude проанализирует логи, найдёт паттерн ошибок, проследит код от точки сбоя до root cause и предложит fix.
Генерация тестов
Для максимальной эффективности генерацию тестов удобно строить по методологии TDD с AI, где Claude Code ведёт разработку итеративно через цикл red-green-refactor.
> Напиши тесты для src/services/billing.ts.
Покрой: happy path, edge cases, error handling.
Используй vitest. Мокай внешние зависимости.
CI/CD интеграция
Claude Code встраивается в CI-пайплайн для автоматического code review или фикса:
# В GitHub Actions
claude -p "Review the diff and report critical issues" \
--output-format json \
--yes \
--max-turns 3
# Автоматический фикс линтер-ошибок
claude -p "Fix all ESLint errors in the staged files" --yes
Tips & tricks
Эффективные промпты
Конкретика экономит токены. Вместо «улучши этот код» — «добавь валидацию input в функцию processPayment в src/billing/processor.ts».
Включайте критерии верификации: «запусти тесты и убедись, что все проходят», «покажи diff перед коммитом».
Навигация и отмена
Escape— остановить текущую генерацию- Двойной
Escape—/rewindк предыдущему checkpoint (откатывает и разговор, и код) Shift+Tab— переключение plan mode
Несколько инстансов
Claude Code запускается в нескольких терминалах одновременно. Каждый инстанс — отдельная сессия со своим контекстом.
Паттерн: один инстанс для разработки, второй — для тестирования и отладки.
Инкрементальная разработка
Вместо «реализуй всю фичу целиком»:
- Напиши один файл → протестируй → продолжай
- Используй plan mode для согласования подхода перед реализацией
/clearмежду несвязанными задачами
Ошибки ловятся рано, когда их дёшево исправить.
CLI-флаги для автоматизации
# Одноразовый запрос без интерактивной сессии
claude -p "explain the auth flow in this project"
# С конкретным форматом вывода
claude -p "list all API endpoints" --output-format json
# Pipe stdin
cat error.log | claude -p "analyze these errors"
# Non-interactive с автоматическим одобрением
claude -p "fix all lint errors" --yes
SDK для программного использования
npm/Python-пакет для интеграции в свои инструменты:
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Fix the failing tests",
options: { maxTurns: 5 }
})) {
if (message.type === "result") {
console.log(message.result);
}
}
from claude_agent_sdk import query
result = query(
prompt="Analyze test coverage",
options={"max_turns": 3}
)
Безопасность
- Claude Code выполняет команды с правами текущего пользователя. Не запускайте от root
- Хуки выполняются с вашими credentials — проверяйте их перед добавлением
PreToolUseхуки могут блокировать операции — используйте для защиты production-файлов- Секреты в
.mcp.jsonссылайтесь через${ENV_VAR}, не хардкодьте /permissions— проверка текущих разрешений
Перед интеграцией AI-инструментов в продакшн-процессы имеет смысл провести аудит безопасности AI-систем.
Полезные встроенные команды
| Команда | Назначение |
|---|---|
/init | Генерация CLAUDE.md |
/compact | Ручное сжатие контекста |
/clear | Очистка разговора |
/model | Переключение модели |
/cost | Расход токенов за сессию (для API) |
/stats | Статистика использования и история сессий |
/status | Версия, модель, аккаунт и подключения |
/memory | Управление памятью |
/hooks | Конфигурация хуков |
/mcp | Статус MCP серверов |
/skills | Доступные skills |
/rewind | Откат к checkpoint |
/resume | Продолжить прошлую сессию |
/rename | Переименовать сессию |
/login | Переключение авторизации |
/logout | Выход |
/effort | Уровень thinking |
/permissions | Текущие правила разрешений |
Частые проблемы и решения
Claude не следует инструкциям из CLAUDE.md
CLAUDE.md — контекст, а не жёсткая конфигурация. Claude старается следовать инструкциям, но 100% compliance не гарантирован.
Диагностика:
> /memory # Убедиться, что файл загружен
> /status # Проверить версию и конфигурацию
Решения:
- Сделать инструкции конкретнее: «use 2-space indentation» вместо «format code nicely»
- Убрать конфликтующие инструкции между файлами
- Уменьшить размер CLAUDE.md (цель — до 200 строк)
- Для критичных правил использовать hooks вместо инструкций
Контекстное окно переполняется
Симптомы: Claude забывает ранние решения, качество ответов падает.
> /compact # Сжать историю, сохранив ключевые решения
> /clear # Полная очистка для несвязанной задачи
Профилактика: /clear между задачами, verbose-операции — субагентам, компактный CLAUDE.md.
MCP сервер не подключается
> /mcp # Статус серверов
> /status # Общая диагностика подключений
Частые причины:
- Не установлен npx-пакет (первый запуск может занять время)
- Не выставлена переменная окружения с токеном
- Порт занят другим процессом (для HTTP-серверов)
API-ключ вместо подписки
Если установлена ANTHROPIC_API_KEY, Claude Code берёт API-тарификацию даже при наличии Pro/Max подписки:
unset ANTHROPIC_API_KEY
claude auth logout
claude auth login # Выбрать подписку
FAQ
Можно ли использовать Claude Code без интернета?
Нет. Claude Code отправляет запросы к API Anthropic при каждом действии. Локальных моделей нет. Без стабильного интернета инструмент не работает.
Как Claude Code обрабатывает приватный код? Данные уходят на серверы Anthropic?
Код отправляется в API для обработки. Anthropic не использует данные пользователей API и Pro/Max для обучения моделей. Для корпоративных сценариев есть Enterprise план с дополнительными гарантиями и SSO. Если политика компании запрещает отправку кода внешним сервисам, Claude Code не подойдёт.
Работает ли Claude Code с монорепозиториями?
Да. Claude Code работает от текущей директории. В монорепо запускайте из корня или из конкретного пакета. CLAUDE.md на каждом уровне позволяет задавать контекст: общие правила в корне, специфичные — в пакетах. Git worktrees тоже работают с монорепо.
Можно ли запустить Claude Code в Docker-контейнере?
Да. Claude Code — обычный CLI на Node.js. Установите его в контейнер, передайте ANTHROPIC_API_KEY через переменную окружения и запускайте в non-interactive режиме через claude -p "задача" --yes. Популярный сценарий — CI/CD пайплайн, где Claude делает code review или автоматические фиксы.
Как ограничить, к каким файлам Claude Code имеет доступ?
Три механизма. Permissions в settings.json контролируют, какие команды выполняются без подтверждения. PreToolUse хуки блокируют операции по паттернам (например, запрет записи в .env). .claudeignore файл (аналог .gitignore) исключает файлы из индексации.
Claude Code поддерживает работу с ветками Git?
Полностью. Claude Code выполняет любые git-команды через Bash: создаёт ветки, переключается между ними, делает merge и rebase. Команда --worktree запускает сессию в изолированном git worktree. При коммитах Claude генерирует осмысленные сообщения на основе diff.
Как работать с Claude Code в команде? Конфликты настроек?
Командные настройки хранятся в коммитимых файлах: CLAUDE.md, .mcp.json, .claude/settings.json, skills в .claude/commands/. Личные настройки — в CLAUDE.local.md (gitignored) и ~/.claude/ (глобальные). Конфликтов не бывает: проектные файлы одинаковые у всех, персональные — у каждого свои.
Можно ли использовать Claude Code с другими LLM (GPT-5.4, Gemini)?
Claude Code работает только с моделями Claude (Anthropic API). Другие провайдеры не поддерживаются. Однако через MCP серверы можно подключить внешние LLM как инструменты — например, MCP-сервер для OpenAI API — и вызывать их из сессии Claude Code для сравнения или специализированных задач.
Что произойдёт, если Claude Code сломает код в проекте?
Каждое действие (Edit, Bash) требует подтверждения пользователя (кроме команд в allowlist). Двойной Escape откатывает последнее изменение вместе с историей разговора. Git worktrees дают полную изоляцию. Если что-то пошло не так, git diff покажет все изменения, git checkout . откатит всё. Claude Code не делает ничего, что нельзя отменить через git.
Как отлаживать MCP серверы, которые не работают?
Проверьте статус через /mcp в сессии. Убедитесь, что переменные окружения установлены (токены, ключи). Запустите сервер вручную в терминале (npx -y @package/name) — это покажет ошибки запуска. Логи MCP доступны в ~/.claude/logs/. Для кастомных серверов — проверьте stdin/stdout: MCP общается по JSON-RPC через стандартные потоки, лишний вывод в stdout ломает протокол.
Заключение
Claude Code убирает прослойку между AI и кодом — прямая работа с проектом вместо копирования в чат. MCP серверы, субагенты, skills и хуки адаптируют его под любой стек и процесс.
Рекомендации для старта:
- Настройте CLAUDE.md с командами сборки и стандартами проекта
- Подключите 2-3 MCP сервера, которые используете ежедневно (GitHub, база данных)
- Создайте skills для повторяющихся задач (review, deploy, test)
- Добавьте хук автоформатирования для вашего стека
- Используйте plan mode перед крупными изменениями
Начните с малого: один проект, базовый CLAUDE.md, без MCP. По мере освоения — добавляйте серверы, субагенты и автоматизацию. Через auto memory каждая следующая сессия эффективнее предыдущей.
Документация Claude Code: code.claude.com/docs. Репозиторий с примерами: github.com/anthropics/claude-code.