← Claude Code: Agentic Development in the Terminal
01 / 08 · 40 min

The Agentic CLI Mental Model

How a terminal agent differs from IDE autocomplete: the action loop, tools, the context window, and the Claude Code permission model.

Lesson content is currently available in Russian.

What you will learn

  • →Объяснять замкнутый цикл агента: чтение, план, правка, проверка по выводу команд.
  • →Ставить задачи через цель и критерий проверки, а не через диктовку строк.
  • →Управлять контекстным окном и разрешениями сессии осознанно.

Агент против автокомплита

Автокомплит в IDE предсказывает следующие строки по открытому файлу: вы печатаете — он дописывает. Агентный CLI устроен принципиально иначе. Claude Code получает задачу целиком и сам проходит замкнутый цикл: прочитать код, построить план, внести изменение, запустить проверку, посмотреть на результат и скорректировать курс. Для этого у него есть инструменты: Read читает файлы, Grep и Glob ищут по репозиторию, Edit вносит точечные правки, Bash запускает тесты, линтеры и любые команды проекта.

Ключевое отличие — обратная связь. Автокомплит не знает, скомпилировался ли его код. Агент видит вывод команды: упавший тест для него не финал, а следующий вход в цикл. Именно поэтому постановка задачи меняется: вместо «допиши эту функцию» вы формулируете цель и критерий проверки — «почини обработку пустого списка в OrderService, tests/orders.spec.ts должен пройти». Агент сам найдёт файл, поймёт контекст и докажет результат зелёным прогоном.

Отсюда два правила. Паттерн: всегда давайте агенту команду верификации (npm test, npm run lint) — так он закрывает цикл без вас. Антипаттерн: микроменеджмент на уровне строк кода. Если вы диктуете каждую правку, вы используете дорогой агентный цикл как медленный автокомплит и теряете главное преимущество — способность агента самостоятельно довести изменение до проверенного состояния.

Установка и первая сессия

Установка — одна команда, дальше агент запускается из корня проекта: текущий каталог определяет, что он видит и какой CLAUDE.md подхватит.

npm install -g @anthropic-ai/claude-code
cd ~/projects/my-app
claude

Команда claude открывает интерактивную сессию: вы ставите задачи на естественном языке, агент отвечает действиями и текстом. Кроме интерактива есть разовый режим: claude -p "вопрос" печатает ответ и завершает процесс — удобно для быстрых справок и скриптов. Флаг -c продолжает последнюю сессию, -r открывает выбор из прошлых. Внутри сессии работают slash-команды: /help показывает справку, /model переключает модель, клавиша Esc прерывает агента на полпути, если он пошёл не туда.

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

Контекст — ваша рабочая память

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

Управляйте памятью явно. Команда /context показывает, чем занято окно: сколько съели системный промпт, память проекта, история диалога. /clear полностью очищает историю — правильный ход между независимыми задачами. /compact сжимает диалог в резюме, освобождая место, но сохраняя суть; ему можно передать указание, что именно сохранить: «/compact сохрани решения по схеме БД».

Рабочее правило: одна задача — одна сессия. Закончили фикс — /clear — следующая задача стартует с чистым окном и полным вниманием модели. Антипаттерн — один бесконечный чат на всю неделю: к третьему дню агент тратит половину окна на нерелевантную историю, отвечает медленнее и хуже. Если задача длинная и многодневная, фиксируйте промежуточные решения в файлах — план в PLAN.md, заметки в docs/. Файл переживёт и /clear, и обрыв сессии, а контекст — нет. Это фундаментальный принцип курса, он ещё не раз вернётся.

Модель разрешений

По умолчанию Claude Code спрашивает подтверждение на каждое действие с побочными эффектами: правку файла, команду в терминале, сетевой запрос. Чтение файлов разрешено без вопросов. Это защита от главного риска агентов — уверенного выполнения неверного действия.

Постоянные правила задаются в .claude/settings.json (проектные, коммитятся в репозиторий) или ~/.claude/settings.json (личные):

{
  "permissions": {
    "allow": ["Bash(npm run test:*)", "Bash(npm run lint)"],
    "deny": ["Read(.env*)", "Bash(rm -rf *)"]
  }
}

Правило allow снимает подтверждение с безопасных повторяющихся команд — тестов, линтера, сборки. Правило deny жёстче: оно блокирует действие, даже если агент попытается его выполнить. Классика — запретить чтение .env, чтобы секреты не попали в контекст. Команда /permissions показывает и редактирует действующие правила прямо из сессии.

Флаг --dangerously-skip-permissions отключает все подтверждения разом. Единственный легитимный сценарий — изолированный контейнер без доступа к секретам и продакшену, где худший исход ограничен самим контейнером. На рабочей машине это антипаттерн: один неверный rm или git push --force — и вы вспомните, зачем существуют подтверждения. Правильная стратегия — постепенно расширять allow-список под свой рабочий ритм, оставляя опасные операции под ручным контролем.

Practice

Первая агентная сессия

Возьмите свой рабочий репозиторий. Попросите Claude Code объяснить архитектуру, затем дайте маленькую реальную задачу (мелкий баг или рефакторинг) с явным критерием проверки и добейтесь зелёного прогона тестов, не диктуя правки построчно.

Deliverable

Diff изменения, вывод зелёного прогона тестов и 5–7 предложений: где агент ошибся и как вы скорректировали постановку задачи.

Checkpoint

Опишите цикл агента на вашей задаче: какие инструменты он вызвал, как проверил результат и что бы вы изменили в постановке?

  • ✓ Назван замкнутый цикл: чтение → план → правка → проверка по выводу команд.
  • ✓ Задача сформулирована через цель и критерий проверки, а не через диктовку строк.
  • ✓ Объяснено, какие разрешения выданы агенту и почему это безопасно.

Check yourself

Чем агентный CLI принципиально отличается от автокомплита в IDE?

01Чем агентный CLI принципиально отличается от автокомплита в IDE?

Что делает команда claude -p "вопрос"?

02Что делает команда claude -p "вопрос"?

Зачем нужна команда /compact?

03Зачем нужна команда /compact?

Когда допустим флаг --dangerously-skip-permissions?

04Когда допустим флаг --dangerously-skip-permissions?

Как снять подтверждение с запуска тестов, не отключая защиту целиком?

05Как снять подтверждение с запуска тестов, не отключая защиту целиком?

Sources

The Agentic CLI Mental Model · Claude Code: Agentic Development in the Terminal · VORCL