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 при запросе «исправь баг в авторизации»:

  1. Claude ищет файлы, связанные с авторизацией (Grep/Glob)
  2. Читает код и анализирует логику (Read)
  3. Находит проблему и редактирует файлы (Edit)
  4. Запускает тесты для верификации (Bash)
  5. При необходимости — фиксит тесты
  6. Создаёт коммит с осмысленным сообщением (Bash: git commit)

Отличие от Claude.ai, Cursor, Windsurf

ХарактеристикаClaude.aiCursor/WindsurfClaude 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:

СерверНазначениеПакет
GitHubIssues, PR, code search@modelcontextprotocol/server-github
PostgreSQLSQL-запросы к базе@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 WorkspaceDocs, Sheets, GmailCommunity servers

Данные и поиск:

СерверНазначениеПакет
Brave SearchВеб-поиск@modelcontextprotocol/server-brave-search
ExaAI-поиск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Включён
EnterpriseCustom 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 запускается в нескольких терминалах одновременно. Каждый инстанс — отдельная сессия со своим контекстом.

Паттерн: один инстанс для разработки, второй — для тестирования и отладки.

Инкрементальная разработка

Вместо «реализуй всю фичу целиком»:

  1. Напиши один файл → протестируй → продолжай
  2. Используй plan mode для согласования подхода перед реализацией
  3. /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 и хуки адаптируют его под любой стек и процесс.

Рекомендации для старта:

  1. Настройте CLAUDE.md с командами сборки и стандартами проекта
  2. Подключите 2-3 MCP сервера, которые используете ежедневно (GitHub, база данных)
  3. Создайте skills для повторяющихся задач (review, deploy, test)
  4. Добавьте хук автоформатирования для вашего стека
  5. Используйте plan mode перед крупными изменениями

Начните с малого: один проект, базовый CLAUDE.md, без MCP. По мере освоения — добавляйте серверы, субагенты и автоматизацию. Через auto memory каждая следующая сессия эффективнее предыдущей.

Документация Claude Code: code.claude.com/docs. Репозиторий с примерами: github.com/anthropics/claude-code.