Глава 1 была про ментальную модель. Эта глава — про руки. Цель одна: довести до конца первое указание на вашем собственном репозитории.

Команд наберётся несколько строк. Остальное время уходит на то, чтобы понять, что именно вы согласовываете. Пропустите это — и придётся возвращаться сюда позже.

Входов пять: с какого начать

Claude Code обычно представляют как «инструмент для терминала», но входов пять. Внутри одно и то же, различается только обёртка.

Терминал

Сам инструмент. Набираете claude — и всё. Этот курс исходит из него.

Расширение для VS Code

Живёт внутри редактора. Дифы вы читаете в привычном виде.

Расширение для JetBrains

Ставится в семейство IntelliJ. Если вы разрабатываете там, никуда переходить не нужно.

Настольное приложение

Работает без открытого терминала. Режим выбирается селектором рядом с полем ввода.

Браузер (claude.ai)

Доступен, даже если под рукой нет среды разработки. Режимы переключаются тем же селектором.

В первый час берите терминал. Не потому, что там удобнее, а потому, что там больше информации. Когда что-то заклинивает, вы видите сообщение как есть, да и решения люди описывают исходя из терминала. О том, как Claude Code соотносится со встроенными в редактор инструментами вроде Cursor или GitHub Copilot, — глава 1 курса по ИИ-программированию.

Устанавливаем

Стандартный путь — npm. Если Node.js уже стоит, хватит одной строки (если node -v печатает версию, всё готово). -g означает «поставить так, чтобы вызывалось из любой папки».

Терминал — установка и запуск
npm install -g @anthropic-ai/claude-code claude

Там, где npm блокируется прокси или региональными ограничениями, можно поставить через пакетный менеджер.

Терминал — когда npm не проходит
brew install --cask claude-code # macOS / Homebrew winget install Anthropic.ClaudeCode # Windows / WinGet

Выберите один способ установки. Если после npm поставить ещё и через Homebrew, появится Multiple claude installations found. Состояние, в котором непонятно, какая копия запускается, делает трудной всю дальнейшую диагностику. Требования зависят от окружения, так что при сомнениях — в официальную документацию.

Вход: аккаунт или API-ключ

При первом запуске вы выбираете способ входа. Если войти аккаунтом Claude, откроется браузер, и после входа и подтверждения доступ будет выдан. Тратится квота тарифа, а расход проявляется как лимит и время его сброса. API-ключ работает не от квоты, а от баланса, и, когда тот кончается, всё останавливается. Для личной работы — первое, для CI и автоматизации — второе.

Что именно вам доступно, зависит от договора, поэтому утверждать не берёмся. Запомнить нужно ровно одно.

API-ключ из переменной окружения имеет приоритет над входом по подписке. Если вы когда-то экспериментировали и оставили ANTHROPIC_API_KEY в настройках оболочки, то даже правильный вход будет проигнорирован. Большинство случаев «у меня оплачено, а мне пишут про нехватку средств» — именно об этом.

На вопрос, под какими учётными данными вы работаете сейчас, отвечает /status. Сначала посмотреть, потом подозревать.

Порядок проверки аутентификации
/status # под какими учётными данными идёт работа env | grep ANTHROPIC # не остался ли ключ в переменных окружения unset ANTHROPIC_API_KEY # если остался, снять. и убрать из файла настроек /login # войти заново и перепроверить через /status

Что происходит при первом запуске

После входа запускайте инструмент, перейдя в нужную папку. Claude Code считает рабочей «ту папку, где вы сейчас», так что при ошибке он начнёт читать что-то постороннее.

Терминал — запуск в проекте
cd my-project claude

Экран с ожиданием ввода — вход в диалог. Здесь советуем не просить сразу что-то переписать. Первый ход — задача, которая заканчивается на чтении: «прочитай README и основные каталоги и объясни, что делает этот проект».

Причин три. Чтение и по умолчанию идёт без подтверждений, так что проходит и без знания обрядов согласования. Проект знаете вы, поэтому можете сверить ответ. И наконец, так вы разом проверяете соединение, аутентификацию и рабочую папку, ничего не ломая. Если поведение окажется странным, разберётесь до того, как дело дойдёт до записи.

Цикл «указание → диф → согласие»

Когда чтение прошло, попросите небольшую правку. Дальше идёт один и тот же такт из четырёх шагов.

1. Попросить

Сказать обычными словами по-русски. Если знаете, где править, скажите и это.

2. Собрать и подумать

Найти и прочитать файлы, которые могут быть связаны. Это STEP 1 из главы 1.

3. Появляется диф

«Вот здесь меняю вот так» выводится построчно, и на этом всё останавливается.

4. Согласиться или отказать

Пропустили — правка применилась. Не то — откажите и словами добавьте, что именно не так.

Вы: «Добавь в README раздел про Windows» ↓ [ПОИСК] найти README ← чтение. не останавливается ↓ [ЧТЕНИЕ] прочитать README.md ← чтение. не останавливается ↓ [ПРАВКА] добавить 3 строки ← появляется диф, и всё встаёт ↓ Вы: согласиться / отказать и сказать, что поправить

Отказ — не провал. Увидев диф, вы можете говорить конкретно, а значит, стремиться к идеальному первому указанию незачем. Именно этим такая схема и хороша.

Держите каждую просьбу в размере «дифа, который дочитаешь до конца». Чем крупнее просьба, тем длиннее диф, а длинные дифы согласовывают не читая. Согласие, которое вы нажали не глядя, — не согласие, а автосогласие. Как дробить работу, разбираем в главе 3.

С какого режима начинать

Место остановки задаёт режим разрешений. В терминале он переключается по Shift+Tab, в VS Code, настольном приложении и браузере — селектором рядом с полем ввода.

DEFAULT
Спрашивать разрешение

Чтение автоматическое. Правки и команды подтверждаются каждый раз. В первый день — этот.

ACCEPTEDITS
Принимать правки

Правки внутри рабочей папки проходят автоматически. Для тех, кто читает дифы потом и разом.

PLAN
Режим планирования

Изучает, но исходники не правит. Согласуете план — переходит к делу.

AUTO
Автоматический режим

Отдельная оценивающая модель останавливает только опасные операции, остальное идёт без подтверждений. Есть условия.

BYPASS
Обход разрешений

Отключены и подтверждения, и проверки безопасности. Только изолированное окружение. В первый день это не трогают.

По Shift+Tab перебираются первые три. Автоматический режим встраивается в перебор, когда выполнены условия, и в первый раз показывает подтверждение согласия. Обход разрешений действует, только если запустить с отдельным флагом. Чтобы закрепить режим с самого запуска, пишут claude --permission-mode plan. Кроме этого есть dontAsk, которого в селекторе не бывает: он выполняет только разрешённое и существует лишь в настройках и CLI.

Ответ на первый день — «оставить по умолчанию». Каждое подтверждение — это тренировка отличать чтение от записи и от выполнения. Ослаблять стоит после того, как научились различать; в обратном порядке вы ослабляете нечто, о чём сами не знаете. Второй режим, к которому имеет смысл потянуться, — режим планирования.

Есть места, которые защищены в любом режиме. Запись в чувствительные пути вроде .git, .claude и файлов настроек оболочки никогда не согласуется автоматически ни в одном режиме, кроме обхода разрешений. Ослабив одно, вы не ослабляете всё.

Подробно режимы разобраны в статье о режимах разрешений, а как писать правила разрешения и запрета по каждому инструменту — в статье о правилах разрешений и настройках. И учтите: обход — не ответ на «подтверждения надоели». Он не защищает ни от вашей же оплошности, ни от указания, подложенного в то, что было прочитано. Чтобы запросов стало меньше, начните с правил, разрешающих только те операции, которым вы доверяете. Проектирование — в главе 5.

CLAUDE.md: перестать повторяться

На второй день замечаешь, что раз за разом даёшь одни и те же предупреждения. «Эту папку не трогать». «Перед коммитом прогнать lint». Набирать это каждый раз — трата и вашего времени, и контекста. Поэтому положите в корень проекта файл CLAUDE.md. Claude Code читает его автоматически при запуске и работает исходя из написанного там.

CLAUDE.md — для начала хватит и этого
# Этот проект - TypeScript / Next.js. Пакетный менеджер npm - Ответы и комментарии в коде на русском ## Не трогать - всё, что под src/legacy/ (владеет другая команда) - .env и производные от него ## Проверка - после изменений прогнать npm run lint и npm test - не говорить «готово», пока остаются ошибки типов

Что писать, решает вопрос «чего ИИ никак не может знать».

Писать: порядок проверки

Какой командой убеждаться в результате. Это делает возможным STEP 3 из главы 1, поэтому отдача здесь максимальная.

Писать: запретные места и здешние порядки

Сгенерированное, территория других команд, файлы с секретами. И договорённости, которых по коду не видно, вроде «новые страницы кладём сюда».

Не писать: общие слова и простыни текста

Всё в духе «пиши читаемый код». Проверить исполнение нельзя, а строки, которые действительно надо соблюдать, размываются.

Способ выращивать файл тоже понятен. Начните с нескольких строк. Дали одно и то же указание дважды — добавьте строку. Попытка описать всё исчерпывающе даёт длинный и расплывчатый файл, который перестают соблюдать. Причина «не соблюдается» почти всегда одна из трёх: слишком много, слишком абстрактно, противоречиво.

Правила разрешений и выбор модели можно держать раздельно в .claude/settings.json (проект) и ~/.claude/settings.json (личные), но в первый день достаточно нескольких строк в CLAUDE.md. Разграничение — в главе 6.

Три вещи, которые чаще всего ломаются в первый день

Способы застрять распределены неравномерно: в первый день это почти всегда одно из трёх.

command not found: claude

Установлено, но лежит не там, откуда вызывается. Добавьте ~/.local/bin (в Windows — %USERPROFILE%\.local\bin) в PATH. Иногда виновата и двойная установка.

Вошли, но всё равно не пускает

Классика: старый ANTHROPIC_API_KEY перекрывает подписку. Проверьте через /status и войдите заново, сняв переменную окружения.

Лимит наступает быстрее, чем ждали

Claude Code расходует в 10-100 раз больше токенов, чем чат. Накапливаются круги диалога и чтение файлов.

С третьим связано недопонимание. Сообщение в духе «сервер временно ограничивает запросы» относится не к квоте тарифа, а к временному ограничению на стороне сервера, и через некоторое время всё проходит. Упёрлись вы в квоту или нет, покажет /usage.

Когда причина непонятна, идите в этом порядке
claude doctor # общая диагностика установки, настроек, MCP и контекста /status # под какой аутентификацией идёт работа /context # из чего складывается расход контекста claude update # если непонятно, обновиться (это чинит многое)

Последняя строка, claude update, помогает неожиданно часто. Немало сбоев исчезают от одного лишь повышения версии, так что, выполнив её до начала разбирательств, вы не станете гоняться за несуществующей проблемой. Разбор по симптомам — в статье о частых ошибках и способах их устранения. Порядок локализации причины разбираем в главе 4.

Итоги

  • Входов пять. Внутри одно и то же, но в первый час выигрывает терминал, потому что он говорит больше
  • Стандарт — npm install -g @anthropic-ai/claude-code. Не проходит — Homebrew или WinGet. Способ установки должен быть один
  • Вход — либо аккаунт (квота), либо API-ключ (баланс). Ключ из переменной окружения перекрывает подписку: при сомнениях — /status
  • Первый ход — задача только на чтение. Разом проверяются соединение, аутентификация и рабочая папка, и ничего не ломается
  • Крутится цикл указание → диф → согласие. Просьбы дробите до размера дифа, который дочитаете. Согласие без чтения равно автосогласию
  • Режим первого дня — по умолчанию (спрашивать разрешение), второй — режим планирования. Защищённые пути вроде .git закрыты всегда, кроме обхода
  • CLAUDE.md кладут в корень и начинают с нескольких строк. Пишите порядок проверки, запретные места и здешние порядки, а общие слова не пишите
  • Затыки первого дня — PATH, ключ в переменной окружения, расход. Первый ход — claude doctor, /status, /context

Первое указание прошло — значит, пора ставить работу на ежедневные рельсы. Переходите к главе 3 «Ежедневный рабочий поток».