Дайджесты новостей
Рабочее место инженера с терминальным интерфейсом Claude Code на экране ноутбука и процедурной моделью наушников в Blender.

Claude Code в терминале: почему пора переходить с веб-интерфейса на CLI-агента

Признайся честно: сколько раз за последний месяц ты ловил себя на роли живого буфера обмена? Схема ведь до боли знакомая. Запускаешь сборку проекта, ловишь длинную портянку с ошибкой в консоли, аккуратно выделяешь стек-трейс мышкой, переключаешься во вкладку браузера, вставляешь в диалог с Claude. Ждешь несколько секунд, копируешь обратно исправленный кусок кода, вставляешь в редактор... и обнаруживаешь, что модель забыла закрыть скобку или импортировать утилиту, которую сама же и придумала.

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

Когда Anthropic выпустила терминального агента Claude Code, многие восприняли его как очередной автокомплит для гиков. Но это совсем другая парадигма. Это не подсказчик в строке ввода, а полноценный инженер, которого ты пустил за свой рабочий стол.

От диалога к действию: как устроен CLI-агент

Главное отличие Claude Code от браузерного окна — прямой доступ к системным инструментам. Агент работает прямо в директории твоего проекта. Когда ты формулируешь задачу («добавь валидацию входящих запросов в модуль оплаты и проверь тесты»), под капотом разворачивается целый исполнительный цикл:

  1. Исследование репозитория: агент сканирует структуру папок, находит нужные классы с помощью нативного поиска и читает только необходимые файлы, не забивая контекст лишним мусором.
  2. Точечное внесение правок: вместо генерации гигантских простыней кода агент формирует компактные diff-патчи и сам применяет их к файлам на диске.
  3. Запуск и проверка: модель самостоятельно вызывает линтер, компилятор или тестовый раннер в командной оболочке, считывает результат и при возникновении сбоя исправляет собственную ошибку еще до того, как ты успеешь на нее взглянуть.

В прошлых разборах мы уже касались локального исполнения и MCP, но в повседневной практике возможности CLI-агента выходят далеко за рамки классического веб-бэкенда.

Запуск без компромиссов: правильная установка и права

Если ты пробовал ставить Claude Code несколько месяцев назад через пакетный менеджер npm, забудь об этом как о страшном сне. Anthropic официально перевела утилиту на нативные бинарные установщики. Это избавило систему от бесконечных проблем с правами доступа к глобальным каталогам node_modules и обеспечило тихое фоновое обновление.

# Официальный нативный установщик для macOS и Linux
curl -fsSL https://claude.ai/install.sh | bash

# Проверка установленной версии
claude --version

# Переход в директорию проекта и старт сессии
cd /path/to/my-project
claude

Когда ты запускаешь агента в боевом проекте, встает вопрос доверия. По умолчанию Claude Code на каждое потенциально опасное действие — создание файла или запуск команды в shell — вежливо просит нажать клавишу подтверждения. Если проект изолирован в отдельной ветке, постоянные клики начинают раздражать. Здесь выручает гибкая настройка режимов разрешений:

# Режим с автоматическим подтверждением правок в файлах (рекомендуется для повседневной работы)
claude --permission-mode acceptEdits

# Запуск с полным обходом подтверждений (только в изолированных средах!)
claude --dangerously-skip-permissions
Границы безопасной автономии

Флаг --dangerously-skip-permissions отключает все запросы на подтверждение действий. Никогда не используй его на основной рабочей машине вне изолированного Docker-контейнера или тестовой виртуальной машины: случайная опечатка модели в системном пути способна безвозвратно затереть важные данные на диске.

Автоматизация внешнего софта: магия headless-скриптов

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

Блогер и исследователь Райли Браун (Riley Brown) наглядно показал это на примере 3D-редактора Blender. Казалось бы, где текстовый терминал, а где тяжелый графический 3D-пакет? Оказывается, Blender умеет работать в фоновом безголовом режиме (headless), исполняя переданный Python-скрипт через встроенный модуль bpy.

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

import bpy
import math

# Сброс базовой сцены
bpy.ops.wm.read_factory_settings(use_empty=True)

# Процедурная генерация амбушюра наушников
bpy.ops.mesh.primitive_torus_add(
    align='WORLD',
    location=(0, 0, 0),
    major_radius=1.2,
    minor_radius=0.4,
    rotation=(math.radians(90), 0, 0)
)
left_pad = bpy.context.active_object
left_pad.name = "Earpad_Left"

# Настройка матового материала
mat = bpy.data.materials.new(name="Mat_DarkMatte")
mat.use_nodes = True
bsdf = mat.node_tree.nodes.get("Principled BSDF")
bsdf.inputs["Base Color"].default_value = (0.05, 0.05, 0.07, 1.0)
bsdf.inputs["Roughness"].default_value = 0.35
left_pad.data.materials.append(mat)

# Рендер превью для валидации агентом
bpy.context.scene.render.image_settings.file_format = 'PNG'
bpy.context.scene.render.filepath = "./render_preview.png"
bpy.ops.render.render(write_still=True)
print("Модель создана, кадр сохранен в render_preview.png")

Запуск скрипта выполняется стандартной командой, которую агент исполняет в один шаг:

blender --background --python make_model.py

После выполнения агент открывает получившийся скриншот render_preview.png, оценивает пропорции модели своими мультимодальными глазами и при необходимости вносит коррективы в геометрию. Точно так же настраивается нарезка чернового видеомонтажа: скрипт парсит текстовый транскрипт из Descript, вырезает паузы и собирает готовый XML-таймлайн для импорта в DaVinci Resolve или Adobe Premiere Pro.

Подводные камни и цифровая гигиена

При всей мощи у терминального агента есть два узких места, о которых нужно помнить с первого дня:

  • Раздувание контекстного окна: Каждый выполненный шаг, вывод тестов и листинги файлов оседают в текущей сессии. Если сессия длится несколько часов, объем пересылаемых токенов взлетает в разы, замедляя ответы. Регулярно используй встроенную команду /compact, чтобы сжать историю до ключевых выводов, или начинай новые подзадачи с чистого листа.
  • Дисциплина в файле CLAUDE.md: Чтобы агент не изобретал велосипед, создай в корне проекта конфигурационный файл CLAUDE.md. Зафиксируй в нем ключевые команды сборки, принятые соглашения по стилю и список запрещенных к изменению файлов. Это сэкономит десятки минут на объяснении очевидных правил.

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