
Полная версия:
Claude Code: Полное руководство по AI-ассистенту для разработчиков
Итоги главы
В этой главе мы:
– Проверили системные требования для Claude Code
– Установили Claude Code через npm, Homebrew или в Docker
– Настроили аутентификацию через веб-вход, API-ключ или облачного провайдера
– Изучили систему конфигурационных файлов: CLAUDE.md, .claude/, ~/.claude/
– Настроили интеграцию с VS Code, JetBrains, Vim/Neovim и Emacs
– Оптимизировали рабочее окружение: tmux, утилиты командной строки, алиасы
– Разобрали типичные проблемы при установке и их решения
– Научились управлять затратами на API
В следующей главе мы сделаем первые практические шаги: создадим проект, научимся основным паттернам взаимодействия и напишем первый код с помощью Claude Code.
Глава 3. Первые шаги с Claude Code
3.1. Запуск и интерфейс командной строки
Итак, Claude Code установлен, аутентификация настроена, и вы готовы к работе. Откройте терминал и перейдите в каталог с проектом – или созданим новый:
mkdir -p ~/projects/my-first-project
cd ~/projects/my-first-project
claude
Claude Code запускается и представляет лаконичный интерфейс командной строки. В отличие от громоздких графических приложений, здесь нет кнопок, менюю или панелей инструментов – только текстовое поле для ввода и область для отображения ответов. Эта минималистичность обманчива: за ней скрывается мощная система, способная выполнять сложнейшие операции.
Интерфейс Claude Code состоит из нескольких элементов:
Строка приглашения (prompt) – символ >, за которым вы вводите свои запросы. Здесь вы общаетесь с AI на естественном языке: задаёте вопросы, ставите задачи, просите объяснить код.
Область вывода – пространство, где Claude Code отображает свои ответы, включая текст, код, визуализации прогресса и результаты выполнения инструментов.
Индикаторы инструментов – при выполнении операций (чтение файлов, запуск команд, запись в файлы) Claude Code показывает, какой инструмент используется и с какими параметрами. Это обеспечивает прозрачность: вы всегда видите, что именно делает AI.
Строка состояния – внизу экрана отображается информация о текущей модели, стоимости сессии и количестве использованных токенов.
Режимы работы
Claude Code поддерживает несколько режимов работы:
Интерактивный режим (по умолчанию) – вы ведёте диалог с Claude Code, поочерёдно отправляя запросы и получая ответы. Это основной режим для повседневной работы.
claude # Запуск в интерактивном режиме
Однократный режим (print mode) – Claude Code обрабатывает один запрос и завершает работу. Удобно для скриптов и автоматизации.
claude –print "Объясни, что делает файл main.py"
Режим продолжения – возобновление предыдущего диалога:
claude –continue # Продолжить последний диалог
claude –resume # Выбрать из списка предыдущих диалогов
Pipe-режим – Claude Code принимает входные данные через стандартный ввод:
cat error.log | claude –print "Проанализируй эти логи ошибок"
git diff | claude –print "Проведи code review этих изменений"
Pipe-режим – невероятно мощная возможность, потому что он позволяет встраивать Claude Code в любой конвейер Unix-команд. Представьте:
grep -rn "TODO:" src/ | claude –print "Расставь приоритеты для этих задач"
git log –oneline -20 | claude –print "Напиши changelog из этих коммитов"
npm audit –json | claude –print "Объясни найденные уязвимости и предложи решения"
3.2. Анатомия диалога
Каждое взаимодействие с Claude Code можно разложить на несколько фаз. Понимание этих фаз поможет строить более эффективные диалоги.
Фаза 1: Получение запроса
Вы вводите запрос на естественном языке. Claude Code принимает запрос, добавляет к нему системный контекст (содержимое CLAUDE.md, информацию о проекте, историю диалога) и отправляет на обработку.
Фаза 2: Планирование
Claude Code анализирует запрос и определяет, какие действия необходимы для его выполнения. Для сложных задач он может сформулировать явный план:
> Добавь аутентификацию через JWT в наш API
Claude Code:
Для добавления JWT-аутентификации мне потребуется:
1. Установить необходимые зависимости (PyJWT, passlib)
2. Создать модель User
3. Написать функции хеширования паролей
4. Реализовать эндпоинты регистрации и входа
5. Создать middleware для проверки токенов
6. Обновить существующие эндпоинты
Начинаю с зависимостей…
Фаза 3: Выполнение инструментов
Claude Code последовательно вызывает инструменты для реализации плана. Каждый вызов отображается в интерфейсе:
Tool: ReadFile
File: requirements.txt
Tool: Bash
Command: pip install PyJWT passlib[bcrypt]
Tool: WriteFile
File: app/models/user.py
[показ содержимого файла]
Tool: WriteFile
File: app/core/security.py
[показ содержимого файла]
Фаза 4: Запрос подтверждения (при необходимости)
Для потенциально опасных операций Claude Code запрашивает ваше подтверждение:
Tool: Bash
Command: pip install PyJWT passlib[bcrypt]
Allow? [Y/n/always]
Варианты ответа:
– Y или Enter – разрешить выполнение
– n – отклонить
– always – разрешить и запомнить для этого типа операций
Фаза 5: Подведение итогов
После выполнения всех шагов Claude Code подводит итог:
Готово! Я добавил JWT-аутентификацию:
[+] Установлены PyJWT и passlib
[+] Создана модель User с хешированием пароля
[+] Реализованы эндпоинты /auth/register и /auth/login
[+] Создан middleware verify_token
[+] Обновлены защищённые маршруты
Для тестирования:
curl -X POST http://localhost:8000/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "secret123"}'
3.3. Базовые команды и навигацияСлэш-команды
Claude Code поддерживает набор слэш-команд для управления сессией. Разберём каждую подробно.
/help – Справка
> /help
Доступные команды:
/help Показать эту справку
/clear Очистить контекст диалога
/compact Сжать контекст (экономия токенов)
/status Информация о сессии
/cost Стоимость текущей сессии
/model Переключить модель
/permissions Управление разрешениями
/config Настройки
/bug Отправить отчёт об ошибке
/quit Выход
/clear – Сброс контекста
Команда /clear полностью сбрасывает контекст диалога. Используйте её, когда:
– Переключаетесь на совершенно другую задачу
– Контекст стал слишком большим и замедляет работу
– Claude Code «запутался» и даёт неадекватные ответы
После /clear Claude Code забудет всё, что обсуждалось ранее, но сохранит конфигурацию проекта (CLAUDE.md, settings и т. д.).
/compact – Сжатие контекста
/compact – одна из наиболее полезных команд. Она заставляет Claude Code сжать историю диалога, сохранив ключевую информацию, но уменьшив объём контекста. Это экономит токены и деньги.
> /compact
Контекст сжат:
До: 45 832 токена
После: 12 447 токенов
Сэкономлено: 33 385 токенов (~73%)
Рекомендуется вызывать /compact после каждого крупного блока работы – например, после завершения реализации конкретной функции.
Вы также можете указать фокус при сжатии:
> /compact Сфокусируйся на работе с базой данных
Claude Code сожмёт контекст, но сохранит детали, связанные
с базой данных, и удалит менее релевантную информацию.
/status – Информация о сессии
> /status
Session Info:
Model: claude-sonnet-4-20250514
Context used: 23,451 / 200,000 tokens (12%)
Messages: 14
Files read: 8
Files written: 3
Commands executed: 5
Duration: 12m 34s
Cost: $0.47
/cost – Детализация стоимости
> /cost
Cost Breakdown:
Input tokens: 187,234 ($0.32)
Output tokens: 41,892 ($0.15)
Cached tokens: 124,891 ($0.04)
Total: $0.47
Горячие клавиши
Claude Code поддерживает стандартные горячие клавиши терминала:
– Ctrl+C – отменить текущую операцию или выйти
– Ctrl+D – выйти из Claude Code
– Up/Down – навигация по истории запросов
– Tab – автодополнение слэш-команд
– Ctrl+L – очистить экран (без сброса контекста)
– Esc – отменить ввод текущего промпта
Многострочный ввод
Для длинных промптов используйте многострочный ввод. Нажмите \ в конце строки для продолжения на следующей, или используйте Shift+Enter (в поддерживающих терминалах):
> Создай REST API со следующими эндпоинтами: \
GET /users – список пользователей, \
POST /users – создание пользователя, \
GET /users/:id – получение пользователя, \
PUT /users/:id – обновление, \
DELETE /users/:id – удаление. \
Используй Express.js и MongoDB.
3.4. Управление контекстным окном
Контекстное окно – это «рабочая память» Claude Code. Всё, что вы обсудили, все прочитанные файлы и результаты выполненных команд хранятся в этом окне. Когда окно заполняется, старая информация начинает вытесняться, что может привести к потере контекста.
Размер контекстного окна
В зависимости от модели, контекстное окно Claude Code составляет:
– Claude Sonnet: ~200 000 токенов
– Claude Opus: ~200 000 токенов
– Claude Haiku: ~200 000 токенов
Один токен – это примерно 4 символа для английского текста и 1-2 символа для русского. Файл на 1000 строк занимает примерно 10 000-20 000 токенов.
Стратегии управления контекстом
1. Будьте избирательны. Не просите Claude Code «прочитай все файлы в проекте». Вместо этого укажите конкретные файлы или каталоги:
> Проанализируй весь проект
> Проанализируй файлы в каталоге src/auth/ – мне нужно
понять текущую систему аутентификации
2. Используйте /compact регулярно. Как упоминалось ранее, сжатие контекста высвобождает место для новой информации.
3. Разбивайте задачи. Вместо одного длинного диалога ведите несколько коротких. Завершили реализацию одной функции – начните новый диалог для следующей.
4. Используйте CLAUDE.md. Информация из CLAUDE.md загружается автоматически и занимает меньше места, чем повторные объяснения в диалоге.
5. Следите за индикатором. Команда /status показывает, какой процент контекстного окна использован. При приближении к 70-80% подумайте об оптимизации.
Что происходит при переполнении
Когда контекстное окно заполняется, Claude Code применяет алгоритм сжатия:
– Старые сообщения сжимаются в краткие резюме
– Результаты выполненных команд усекаются
– Содержимое прочитанных файлов может быть частично удалено
– Системные промпты и CLAUDE.md сохраняются в приоритете
Вы можете заметить, что Claude Code «забыл» что-то, что обсуждалось ранее. Это нормально – просто напомните ему нужный контекст.
3.5. Первый проект: создание веб-приложения
Давайте создадим полноценный проект, чтобы увидеть Claude Code в действии. Мы построим простое, но функциональное веб-приложение – менеджер заметок.
Шаг 1: Инициализация проекта
> Создай новый проект – менеджер заметок.
Стек: Node.js, Express, SQLite, EJS для шаблонов.
Базовая функциональность: создание, чтение, редактирование,
удаление заметок. Каждая заметка имеет заголовок, содержимое
и дату создания/обновления.
Claude Code начнёт работу:
– Создаст package.json с зависимостями
– Инициализирует npm-проект
– Создаст структуру каталогов:
notes-app/
+– package.json
+– server.js
+– database.js
+– routes/
| +– notes.js
+– views/
| +– layout.ejs
| +– index.ejs
| +– note.ejs
| +– edit.ejs
+– public/
| +– style.css
+– README.md
– Напишет код сервера, маршруты, модели и шаблоны
– Установит зависимости
– Проверит работоспособность
Шаг 2: Проверка и запуск
После генерации проверим, что всё работает:
> Запусти приложение и проверь, что главная страница открывается
Claude Code выполнит:
node server.js
И проверит доступность через curl или встроенный инструмент.
Шаг 3: Доработка
Теперь добавим функциональность:
> Добавь поиск по заметкам: поле поиска на главной странице,
которое фильтрует заметки по заголовку и содержимому.
Поиск должен быть нечувствительным к регистру.
Claude Code изменит несколько файлов:
– Добавит маршрут /search в routes/notes.js
– Добавит SQL-запрос с LIKE в database.js
– Обновит шаблон index.ejs, добавив форму поиска
– Обновит стили в style.css
Шаг 4: Итерация
Этот процесс можно продолжать сколько угодно:
> Добавь категории для заметок
> Добавь markdown-рендеринг в содержимом заметки
> Добавь экспорт заметок в PDF
> Добавь тёмную тему
Каждый запрос – это итерация, которая наращивает функциональность проекта. Claude Code помнит контекст предыдущих шагов и строит новые функции на существующей основе.
3.6. Работа с файлами
Работа с файлами – одна из основных возможностей Claude Code. Разберём ключевые операции.
Чтение файлов
Claude Code может читать файлы различными способами:
> Покажи содержимое файла server.js
> Прочитай все файлы в каталоге src/
> Что находится в package.json?
При чтении файла Claude Code отображает его содержимое и подтверждает, что файл загружен в контекст. Это позволяет модели анализировать код и предлагать изменения.
Создание файлов
> Создай файл config.js с настройками приложения:
порт, строка подключения к БД, секретный ключ для JWT
Claude Code создаст файл с осмысленным содержимым:
// config.js
const config = {
port: process.env.PORT || 3000,
database: {
url: process.env.DATABASE_URL || 'sqlite:./data/app.db',
},
jwt: {
secret: process.env.JWT_SECRET || 'change-me-in-production',
expiresIn: '24h',
},
app: {
name: 'Notes Manager',
version: '1.0.0',
},
};
module.exports = config;
Редактирование файлов
Claude Code может вносить точечные изменения, не перезаписывая весь файл:
> В файле server.js добавь middleware для логирования
запросов с помощью morgan
Claude Code прочитает файл, определит нужное место для вставки и внесёт минимальные изменения:
// Добавлено:
const morgan = require('morgan');
// …
app.use(morgan('dev'));
Удаление файлов
> Удали файл temp.js – он больше не нужен
Claude Code запросит подтверждение перед удалением.
Переименование и перемещение
> Переименуй database.js в db/connection.js
Claude Code создаст каталог, переместит файл и обновит все import/require-ссылки в проекте.
Массовые операции
Одно из преимуществ агентного подхода – способность выполнять массовые операции:
> Добавь JSDoc-комментарии ко всем экспортируемым функциям
в каталоге src/utils/
Claude Code последовательно прочитает каждый файл, проанализирует функции, добавит документацию и сохранит изменения.
3.7. Работа с терминалом
Claude Code может выполнять команды в терминале – это даёт ему возможность непосредственно взаимодействовать с операционной системой, инструментами разработки и инфраструктурой.
Безопасность выполнения команд
Прежде чем обсуждать возможности, важно подчеркнуть: Claude Code не выполняет произвольные команды без вашего ведома. Система разрешений работает следующим образом:
– Безопасные команды (чтение файлов, ls, cat, find, grep) – выполняются без подтверждения
– Команды разработки (npm run, pytest, go build) – зависят от настроек
– Потенциально опасные (установка пакетов, изменение конфигурации) – требуют подтверждения
– Опасные (rm, sudo, curl | bash) – всегда требуют подтверждения
Вы можете настроить уровень доверия через разрешения в .claude/settings.json.
Типичные сценарии выполнения команд
Установка зависимостей:
> Установи необходимые зависимости для проекта
Claude Code: Для этого мне нужно выполнить:
npm install express ejs better-sqlite3 morgan
Allow? [Y/n/always]
Запуск тестов:
> Запусти тесты и исправь падающие
Claude Code выполнит `npm test`, проанализирует вывод,
найдёт причины ошибок и исправит код.
Сборка проекта:
> Собери проект для продакшена
Claude Code выполнит `npm run build`, проверит результат,
исправит проблемы при необходимости.
Работа с Git:
> Создай коммит с осмысленным сообщением
Claude Code проанализирует diff, сформулирует сообщение
и выполнит `git add` + `git commit`.
Анализ системы:
> Покажи использование дискового пространства в проекте
> Какие процессы занимают порт 3000?
> Проверь, запущен ли Docker
Конвейеры команд
Claude Code может строить сложные конвейеры команд и анализировать их результаты:
> Найди все TypeScript файлы с неиспользуемыми импортами
Claude Code может выполнить:
npx ts-prune | head -50
И затем проанализировать результат, показав вам список
файлов с неиспользуемыми экспортами.
3.8. Навигация по проекту
Одна из мощных возможностей Claude Code – способность самостоятельно навигировать по проекту. Вы не обязаны указывать точные имена файлов и пути – Claude Code найдёт нужное самостоятельно.
Поиск файлов
> Где определена функция calculateDiscount?
Claude Code использует grep/ripgrep для поиска:
rg "function calculateDiscount|calculateDiscount =" src/
И найдёт: src/utils/pricing.js:42
Понимание зависимостей
> Какие файлы импортируют модуль database.js?
Claude Code найдёт все файлы, которые используют
require('./database') или import from './database'.
Анализ структуры
> Опиши архитектуру проекта
Claude Code прочитает ключевые файлы (package.json,
структуру каталогов, основные модули) и составит
описание архитектуры.
Поиск по содержимому
> Найди все места, где используется deprecated API
из библиотеки axios
Claude Code выполнит поиск по шаблонам и покажет
результаты с контекстом.
3.9. Мультимодальность: работа с изображениями
Claude Code (через модели Claude) поддерживает мультимодальность – он может анализировать изображения. Это полезно в нескольких сценариях:
Реализация дизайна
Если у вас есть макет интерфейса в виде изображения, вы можете передать его Claude Code:
> Вот макет главной страницы [скриншот].
Реализуй этот дизайн в HTML/CSS.
Claude Code проанализирует изображение и создаст HTML/CSS-код, максимально приближенный к макету.
Анализ скриншотов ошибок
> Вот скриншот ошибки в браузере [изображение].
Что может быть причиной?
Claude Code прочитает текст ошибки с изображения и предложит решение.
Диаграммы и схемы
> Вот диаграмма архитектуры [изображение].
Создай Docker Compose файл на основе этой схемы.
3.10. Паттерны эффективного взаимодействия
За время работы с Claude Code сообщество выработало ряд паттернов, которые значительно повышают эффективность.
Паттерн «Контекст -> Задача -> Ограничения»
Структурируйте запросы в три блока:
> [Контекст] Мы разрабатываем e-commerce платформу на Django.
Сейчас работаем над модулем корзины покупок.
[Задача] Нужно реализовать функцию применения промокодов.
Промокод может давать процентную скидку (10%, 20%) или
фиксированную (500 руб, 1000 руб). Один промокод на заказ.
[Ограничения] Используй существующую модель CartItem.
Промокоды хранятся в таблице Promo. Валидацию делай на
уровне сервиса, не в модели.
Паттерн «Обзор -> Детализация -> Реализация»
Для сложных задач разбивайте работу на три этапа:
> Предложи архитектуру системы уведомлений.
Поддержка: email, push, SMS, in-app.
> Отлично, давай детализируем вариант с очередями.
Как будет выглядеть интерфейс NotificationService?
> Реализуй NotificationService согласно обсуждённому плану.
Паттерн «Покажи перед изменением»
Перед внесением изменений в критический код попросите Claude Code показать план:
> Покажи, как ты собираешься изменить auth middleware,
но пока не меняй файлы. Я хочу посмотреть план.
Это даёт возможность скорректировать направление до того, как будут внесены изменения.
Паттерн «Исправь и проверь»
После каждого блока изменений просите запустить проверку:
> Исправь ошибку в парсере и запусти тесты,
чтобы убедиться, что ничего не сломалось.
Этот паттерн помогает ловить регрессии на ранней стадии.
Паттерн «Объясни как учителю»
Когда вы хотите не просто получить код, но и понять решение:
> Реализуй алгоритм LRU-кэша и объясни каждый шаг,
как будто я джуниор-разработчик. Почему именно
такая структура данных? Какие альтернативы?
3.11. Управление сессиями
Claude Code поддерживает сохранение и возобновление диалогов, что позволяет продолжить работу с того места, где вы остановились.
Продолжение последнего диалога
claude –continue
claude -c
Это загрузит последний диалог со всей историей и контекстом. Полезно, когда вы закрыли терминал и хотите продолжить работу.
Возобновление конкретного диалога
claude –resume
Откроет список предыдущих диалогов с описаниями, из которого вы можете выбрать нужный.
Организация диалогов
Для организации работы рекомендуется:
– Один диалог – одна задача (фича, баг, рефакторинг)
– Используйте /clear перед началом совершенно новой задачи
– Используйте --continue для продолжения незавершённой работы
– Делайте /compact перед сохранением длинного диалога
3.12. Практическое упражнение: от нуля до деплоя
Закрепим полученные знания комплексным упражнением. Мы создадим, настроим и подготовим к деплою веб-приложение за один диалог.
Задание
Создайте приложение «Книжная полка» – каталог книг с возможностью добавления, редактирования, удаления, поиска и фильтрации по жанрам.
Рекомендуемая последовательность промптов
1. > Создай приложение "Книжная полка" на Express.js + SQLite + EJS.
Модель книги: название, автор, жанр, год, рейтинг, обложка (URL).
CRUD для книг, поиск, фильтрация по жанру.
Красивый, современный интерфейс.
2. > Запусти приложение и проверь, что всё работает.
3. > Добавь 10 тестовых книг из русской классики с реальными данными.
4. > Добейся, чтобы приложение красиво выглядело на мобильных устройствах.
Используй responsive дизайн.
5. > Добавь пагинацию: по 6 книг на страницу.
6. > Напиши тесты для API-эндпоинтов.
7. > Создай Dockerfile для деплоя.
8. > Напиши README.md с инструкциями по запуску и деплою.
После выполнения этого упражнения у вас будет полноценное приложение, готовое к развёртыванию, – и глубокое понимание рабочего процесса с Claude Code.
Итоги главы
В этой главе мы:
– Освоили запуск Claude Code и интерфейс командной строки
– Изучили режимы работы: интерактивный, однократный, продолжение и pipe
– Поняли анатомию диалога: от запроса через планирование и выполнение к итогам
– Разобрали базовые слэш-команды: /help, /clear, /compact, /status, /cost
– Научились управлять контекстным окном для оптимальной работы
– Создали первый проект – менеджер заметок
– Освоили работу с файлами: чтение, создание, редактирование, удаление

