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

Claude Code CLI: команды и флаги на каждый день

Терминальный агент в каталоге проекта: подкоманды запуска, слэш-команды, разрешения, память проекта и headless-режим для скриптов — без лишней теории.

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

Claude Code CLI запускается в каталоге проекта и работает с кодом там, где код лежит: читает файлы, правит их, запускает команды, разбирает вывод и правит дальше. Это снимает копипасту между редактором и браузерным чатом — не нужно вручную собирать контекст из десятка файлов, вставлять его в окно и переносить ответ обратно руками. Не нужно и объяснять устройство репозитория при каждом запросе: поиск по дереву агент делает сам, а постоянные правила проекта лежат в CLAUDE.md рядом с кодом и подхватываются при старте. Остаётся то, ради чего терминал и открывают: прогнать тесты, разобрать упавшую сборку, повторить миграцию по образцу соседней, привести файл к стилю, принятому в репозитории.

Как устроено

Одна сессия — один процесс в конкретном каталоге. Каталог запуска задаёт рабочую область: файлы за её пределами не читаются и не правятся, пока их не добавили явно — флагом --add-dir при старте или командой /add-dir внутри сессии.

Контекст. Прочитанные файлы, вывод команд и переписка лежат в одном окне контекста. Оно конечное. Когда место заканчивается, старая часть истории сворачивается в сжатый пересказ, и детали из неё теряются — агент начинает «забывать» договорённости десятиминутной давности. Отсюда два ежедневных инструмента: /clear перед новой задачей и /compact с явным указанием, что сохранить, если задача длинная и бросать её рано. Сколько места занято и чем — показывает /context.

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

Разрешения. Правила «спросить / разрешить / запретить» описываются по инструменту и по шаблону команды. Живут в трёх местах: .claude/settings.json в репозитории (общее для команды, коммитится), .claude/settings.local.json (личное, в .gitignore), файл настроек в домашнем каталоге (глобальное). Режим текущей сессии переключается на лету — Shift+Tab по кругу: обычный режим с вопросами, автоприём правок, режим планирования, в котором агент читает и предлагает план, но ничего не меняет.

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

История. Сессии сохраняются на диск, поэтому вчерашняя работа поднимается целиком, вместе с прочитанными файлами и принятыми решениями. Откат состояния файлов к точке до неудачной серии правок — /rewind или двойной Esc.

Расширения. Своя слэш-команда — это markdown-файл в .claude/commands/: положили smoke.md с текстом инструкции, получили /smoke в этом проекте. Внешние источники (трекер, база, репозиторий) подключаются как MCP-серверы: список и состояние — /mcp, добавление из оболочки — claude mcp add.

Подкоманды, которые нужны каждый день:

ЗапускЧто делает
claudeинтерактивная сессия в текущем каталоге
claude "задача"то же, но сразу с первым сообщением
claude -p "задача"одноразовый прогон: ответ в stdout, процесс завершается
claude -cпродолжить последнюю сессию этого каталога
claude -rвыбрать сессию из списка сохранённых
claude mcpподключение и просмотр MCP-серверов
claude updateобновить установленную сборку
claude doctorдиагностика установки и окружения

Слэш-команды, которые набираются чаще прочих:

КомандаЗачем
/clearсбросить контекст перед новой задачей
/compactсвернуть историю, сохранив указанное
/contextпосмотреть, чем занято окно
/modelсменить модель под задачу
/permissionsпосмотреть и поправить правила доступа
/initсгенерировать стартовый CLAUDE.md по репозиторию
/memoryоткрыть файлы памяти на редактирование
/mcpсостояние подключённых серверов
/statusверсия, модель, аккаунт, рабочий каталог
/exportвыгрузить переписку сессии в файл

Ввод в строке: @путь/к/файлу подставляет конкретный файл вместо поиска, !команда выполняет команду оболочки и кладёт её вывод в контекст, # пишет строку в память, Esc прерывает текущее действие, не убивая сессию.

Правило одной строкой: новая задача — новая сессия; /clear дешевле, чем разбирать ответ, отравленный чужим контекстом.

Как подключить

Шаг 1. Поставить пакет. Нужен установленный Node.js актуальной LTS-версии (требуемый минимум указан на странице установки и в package.json пакета). Дальше:

npm install -g @anthropic-ai/claude-code
claude --version

Альтернатива npm — нативная сборка, которая ставится установочным скриптом с сайта Anthropic и обновляется командой claude update. Проверить, какой вариант стоит и всё ли с ним в порядке, можно через claude doctor.

Шаг 2. Первый запуск в проекте.

cd ~/projects/my-app
claude

Внутри — /login для входа (подписка или ключ API), затем /status, чтобы увидеть аккаунт, модель и рабочий каталог. Запуск из домашнего каталога или из корня диска — типичная ошибка: агент получает рабочую область размером с весь компьютер.

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

Шаг 4. Настроить разрешения. Минимальный .claude/settings.json, который убирает половину вопросов и при этом закрывает секреты:

{
  "permissions": {
    "allow": [
      "Bash(npm run test:*)",
      "Bash(npm run lint)",
      "Bash(git status)",
      "Bash(git diff:*)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./secrets/**)"
    ]
  }
}

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

ФлагКогда пригодится
--modelзафиксировать модель для конкретного прогона
--add-dirподключить соседний репозиторий или каталог с логами
--permission-mode planстартовать в режиме планирования, без правок
--allowed-tools / --disallowed-toolsсузить набор инструментов для автоматического прогона
--output-format jsonмашиночитаемый ответ вместо текста
--max-turnsограничить число шагов в неинтерактивном режиме
--append-system-promptдобавить постоянную инструкцию поверх системной
--settings / --mcp-configподсунуть отдельный профиль настроек или набор MCP
--verboseвидеть полные вызовы инструментов при разборе полётов
--dangerously-skip-permissionsснять вопросы целиком; уместно только в одноразовом контейнере

Шаг 6. Проверить неинтерактивный режим. Он же headless: вход через пайп, выход в stdout.

git diff --staged | claude -p "Проверь диф на утечку секретов и обратную несовместимость. Ответь списком находок или словом OK." --output-format json

Шаг 7. Сделать первую свою команду. Файл .claude/commands/smoke.md с текстом «Подними приложение, дёрни health-эндпоинт, покажи первые ошибки из лога» превращается в /smoke для всех, кто клонировал репозиторий.

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

  • Упавший тест: !npm test кладёт вывод в контекст, дальше просьба локализовать причину и починить только её.
  • Незнакомый репозиторий: /init, затем вопрос про точку входа и путь запроса от роутера до базы.
  • Дежурная проверка изменений: claude -p с дифом на входе в хуке pre-push или в CI-джобе.
  • Однотипная правка в десятках файлов: образец «как надо» одним файлом, остальное — по шаблону, результат смотрится в git diff.
  • Разбор инцидента: логи через пайп, вопрос о совпадении по времени с последним деплоем.
  • Черновик миграции или конфига по образцу соседнего модуля, с явным запретом трогать прод-настройки.
  • Повторяющийся ритуал команды (релизные заметки, чек-лист перед мержем) — оформить в .claude/commands/.

Ограничения

  • Окно контекста конечно. На большом монорепозитории агент читает много лишнего, история сворачивается быстрее, качество падает — помогает работа из подкаталога и точечные ссылки @файл.
  • Расход считается по токенам всей сессии, а не по числу сообщений: длинные файлы в контексте дороже десятка коротких вопросов. Текущее потребление смотрится в /context и /usage.
  • Результат недетерминирован. Два прогона одной задачи дают разные диффы; сравнивать надо не тексты ответов, а прошедшие тесты.
  • Разрешения на оболочку — главная зона риска. Широкое allow на Bash отдаёт агенту всё, что умеет пользователь: удаление веток, публикацию, отправку писем.
  • Секреты в контексте остаются в контексте. .env и приватные ключи закрываются правилом deny до первой сессии, а не после.
  • Офлайна нет: без сети CLI не работает, локальную модель под собой не запускает.
  • Ревью не отменяется. Агент уверенно пишет правдоподобный код с неверными предположениями о данных; диф читает человек.

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

  1. claude doctor — установка, версия, права на каталоги, доступность оболочки.
  2. /status внутри сессии — тот ли аккаунт, та ли модель, тот ли рабочий каталог.
  3. /context — окно не забито мусором, служебная часть не съела всё место.
  4. git status и git diff после каждой серии правок — трогались ли только те файлы, о которых шла речь; лишние изменения переводов строк и форматирования видны сразу.
  5. Тесты и линтер своими руками, не со слов агента: npm test, npm run lint.
  6. /permissions — в списке разрешённого нет ничего, что не хочется отдавать без вопроса.
  7. Для скриптового режима — claude -p ... --output-format json и разбор ответа через jq: если поле с результатом пустое или ответ не парсится, пайплайн настроен неверно.
  8. При странном поведении — перезапуск с --verbose: видно, какие инструменты вызывались и с какими аргументами.
  • claude code
  • cli
  • терминал
  • разработка