Справочник10 сентября 2026 г.·обновлено 10 сентября 2026 г.

Claude Code: терминальный агент для работы с кодом

Агент живёт в терминале рядом с рабочей копией: сам ищет файлы по содержимому, правит их, запускает тесты и показывает diff. Разбор механики, разрешений, контекста и того, где инструмент опасен.

Что это решает

Работа с моделью в браузере упирается в перенос. Модель не видит репозиторий: человек копирует фрагменты файлов в окно чата, получает ответ, вставляет обратно, вручную сводит импорты и отступы. Каждая итерация стоит несколько минут возни, а на проекте из сотен файлов такой цикл проигрывает обычной правке руками.

Claude Code убирает перенос. Агент запускается в терминале из корня рабочей копии, ищет файлы по содержимому, читает их, вносит правку, запускает тесты и линтер, показывает diff. Человек занят решениями: что делать, что принять, что выпускать.

Отдельно закрывается класс задач «пройтись по всему проекту»: переименовать поле в сорока местах, вычистить неиспользуемые импорты, дописать тесты к модулю, размотать стек-трейс от строки лога до причины. Работа объёмная и скучная, ошибка в ней стоит дёшево, проверяется за минуту прогоном тестов — подходящая нагрузка для агента.

Третье — вход в незнакомый код. Вопрос «где формируется этот ответ API» отрабатывается поиском по репозиторию за десяток секунд вместо получаса чтения.

Как устроено

Цикл

Внутри крутится один цикл: модель получает задачу и текущий контекст, выбирает инструмент, инструмент выполняется, результат возвращается в контекст, модель выбирает следующий шаг. Цикл идёт, пока задача не закрыта или пока человек не остановил. Всё остальное — обвязка вокруг этого цикла.

Инструменты

Базовый набор: чтение файла, запись файла, точечная правка по совпадению строки, поиск по содержимому (grep), поиск по маске имён (glob), запуск команд оболочки, выборка веб-страниц. Отдельного инструмента для git нет — git идёт через оболочку обычными командами, поэтому агент умеет ровно то же, что умеет пользователь в этом терминале.

Точечная правка работает по принципу «найти уникальный фрагмент и заменить». Отсюда типичная ошибка новичка: просьба «перепиши файл целиком» вместо адресной правки — так теряются куски кода, которые в контекст не попали.

Поиск вместо индекса

Заранее построенного векторного индекса репозитория здесь нет. Файлы ищутся на лету: grep по подстроке, glob по путям, чтение нужных кусков. Плюсы — индекс не протухает, приватный код не уезжает в чужое хранилище эмбеддингов, работает сразу после git clone, ветку переключили — ничего перестраивать не надо. Минусы — каждый поиск тратит токены и время, а на очень большой монорепе поиск идёт дольше, чем по готовому индексу.

Разрешения

Чтение файлов агент делает молча. Запись, правка и любая команда оболочки проходят через подтверждение. Правила складываются в .claude/settings.json (проектный, коммитится в репозиторий) и в пользовательский конфиг: список разрешённых шаблонов команд, список запрещённых. Разумный старт — разрешить git status, git diff, прогон тестов и линтера; запретить всё, что пишет в сеть, в прод и в базу.

Есть режим планирования: агент исследует код и выдаёт план, но ничего не меняет, пока план не принят. На незнакомом проекте это дешевле, чем откатывать правки.

Память проекта

Файл CLAUDE.md в корне читается в начале сессии. Туда кладут то, что агент не выведет сам: как запускается тестовый прогон, какой менеджер пакетов, куда писать нельзя, какие ветки защищены, по какому шаблону называть ветки, где лежит схема базы. Команда /init собирает первую версию по репозиторию, дальше файл ведут руками. Такой же файл в подпапке действует на свою часть дерева.

Правило для этого файла — писать запреты и точные команды, а не пожелания. «Тесты: make test» работает, «пиши качественный код» не работает.

Контекст

Окно контекста конечно, и длинная сессия его забивает: прочитанные файлы, выводы команд, стек-трейсы. По мере заполнения качество падает — агент начинает забывать ранние договорённости и противоречить сам себе. Инструменты управления: /clear — начать с нуля, /compact — сжать историю в конспект и продолжить. Практика простая: одна задача — одна сессия. --continue возвращает последнюю сессию, --resume даёт выбрать из списка.

Расширения

  • Слэш-команды: файлы в .claude/commands/ — заготовленный промпт с параметрами, вызывается как /имя. Годится для повторяющихся рутин: разбор упавшего пайплайна, подготовка описания merge request.
  • Субагенты: описания в .claude/agents/. Отдельный прогон со своим контекстом и своим набором инструментов, возвращает в основную сессию только сводку. Тяжёлое исследование не забивает основной контекст.
  • Хуки: команда, привязанная к событию — перед вызовом инструмента, после правки файла, в конце ответа. Через хук вешают форматтер после каждой записи или блокировку опасных команд. Хук выполняет оболочка, а не модель, поэтому его нельзя обойти уговорами в промпте.
  • MCP-серверы: подключение внешних систем — трекер, база, CI, почта.

Неинтерактивный режим

claude -p "текст задачи" выполняет задачу и печатает результат в stdout, без диалога. Отсюда растут скрипты и шаги CI: разбор логов ночного прогона, черновик описания релиза, проверка внутренних правил на изменённых файлах.

Полезные сценарии

  • Локализация бага по стек-трейсу: агент читает лог, находит файл и строку, поднимает цепочку вызовов вверх, предлагает правку и тест на воспроизведение.
  • Массовая смена сигнатуры или переименование поля: правка по всем местам вызова с прогоном тестов после каждого шага.
  • Разбор незнакомого модуля: «покажи по порядку вызова, как здесь считается скидка, и назови файлы».
  • Дописывание тестов к непокрытому участку с прогоном на месте и починкой того, что упало.
  • Рутина вокруг git: ветка от нужной базы, коммиты осмысленными кусками, черновик описания merge request по diff.
  • Шаг в CI через -p: конспект упавшего пайплайна в чат команды или проверка соблюдения внутренних соглашений на изменённых файлах.

Ограничения

Правдоподобный неверный код. Агент уверенно пишет то, чего нет: несуществующий метод библиотеки, поле, которого нет в схеме, флаг, которого нет у утилиты. Тон ответа никак не связан с корректностью, чтение diff обязательно.

Реальная система под руками. Инструмент выполняет команды в настоящей оболочке с правами пользователя. Забытый разрешающий шаблон уровня psql * или docker * однажды прилетит в живую базу. Разрешения настраивают до первой длинной сессии, а не после разбора последствий.

Секреты. Файл .env для агента — обычный текстовый файл: он его прочитает и может процитировать в ответе. Запрет на чтение прописывают в запрещающий список явно.

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

Длинные сессии. После нескольких десятков шагов агент начинает противоречить собственным ранним решениям. Лечится сбросом контекста и переносом договорённостей в CLAUDE.md.

Визуальные задачи. Терминал не показывает страницу. Вёрстку и анимацию агент правит вслепую, пока ему не дадут скриншот или инструмент управления браузером.

Внутренние библиотеки. Приватный фреймворк компании модели неизвестен. Без примеров и описания в CLAUDE.md она пишет по мотивам популярных публичных аналогов — синтаксически чисто и функционально мимо.

Как проверить результат

Смотреть git diff после каждой задачи, а не после пяти. Diff на сорок файлов не читает никто, и именно там проезжает лишняя правка.

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

Ставить контрольный тест до правки. Перед починкой бага — тест, который падает. После — тот же тест зелёный. Без этого «починил» неотличимо от «переписал так, что ошибка перестала показываться».

Проверять разрешения командой /permissions и глазами по .claude/settings.json. В проектном конфиге не должно быть широких звёздочек на командах, которые пишут в систему.

Проверять актуальность CLAUDE.md. Устаревшая команда запуска тестов заставляет агента изобретать свои и ломать окружение. Быстрая проверка — попросить пересказать правила проекта своими словами и сверить с файлом.

Следить за длиной сессии. Как только агент переспрашивает уже решённое или возвращает откаченный вариант — /clear и заново с коротким описанием состояния.

Правило: агенту отдают выполнение, себе оставляют diff и прогон тестов.

  • claude-code
  • терминал
  • агенты
  • разработка