Терминал Claude Code: 7 улучшений рабочего процесса для продвинутых пользователей
Настройте Claude Code в терминале с помощью разрешений, CLAUDE.md, режима планирования, /loop, хуков, /voice и трекинга затрат. Семь апгрейдов, которые быстро окупаются.
Базовый Claude Code уже полезен «из коробки». Устанавливаете, даёте подсказку — и он строит то, что вам нужно. У большинства именно такая настройка для «vibe-кодинга», и она работает.
Но Claude Code в настроенном под себя терминале — это уже другой инструмент. Пользователь заранее одобрил доверенные bash-команды, поэтому Claude почти никогда не просит разрешенияns. В корне проекта лежит CLAUDE.md, так что Claude с первой секунды знает ваши договорённости. И когда сессия начинает путаться, команда, к которой тянется рука, — вовсе не перезапуск.
Эта статья закрывает разрыв между двумя такими установками Claude Code — в семи шагах. Ни один из них не займет больше десяти минут, и каждый окупится в течение недели.
Если вы никогда не открывали Claude Code, лучше начать с нашего основного руководства по Claude Code. Ниже мы исходим из того, что вы уже умеете давать подсказки и подтверждать вызовы инструментов.
1. Перестаньте заново одобрять одни и те же команды
По умолчанию каждый новый вызов инструмента запрашивает у вас одобрение. Первый запуск pytest — терпимо. К третьему — уже раздражает. К десятому вы жмёте Enter, не читая подсказку. Худший из миров: вы приучили себя игнорировать проверку безопасности, и при этом всё ещё тратите на неё время.
Решение — файл .claude/settings.json в корне проекта с блоком permissions, который заранее одобряет шаблоны, которым вы доверяете, и блокирует те, которым — нет:
{"permissions":{"allow":["Bash(pytest *)","Bash(uv run *)","Bash(ruff check *)","Read(~/.zshrc)"],"deny":["Bash(curl *)","Read(./.env)","Read(./.env.*)","Read(./secrets/**)"]}}Работает на
Правила оцениваются в фиксированном порядке: сначала deny, затем ask, затем allow. Срабатывает первое совпадение, поэтому правило deny всегда перебивает идущее позже allow.
Освоение области действия и шаблонов с подстановками
Три вещи чаще всего сбивают с толку при первом написании таких правил.
Первая — это область действия (scope). Файл проекта .claude/settings.json переопределяет ваш глобальный ~/.claude/settings.json. Поэтому если вы глобально разрешили Bash(rm *), а в проекте это запрещено, победит проект. Это правильное поведение по умолчанию, но удивляет тех, кто ожидает, что глобальные allow «залипают».
Вторая — это подстановки для сетевых команд. Bash(curl http://github.com/ *) выглядит строго, но не ловит https://, опции перед URL, редиректы или раскрытие переменных шелла. Рекомендуемый в документации паттерн — полностью запрещать Bash(curl *). А затем использовать инструмент WebFetch с WebFetch(domain:github.com) для доменов, которые действительно хотите разрешить.
Третья — это пробелы. Bash(ls *) совпадает с ls -la, но не с lsof. Bash(ls*) совпадает с обоими. Пробел перед звёздочкой выполняет реальную работу — стоит осознанно выбирать, какой вариант вы написали.
Рядом с разрешениями есть несколько горячих клавиш из той же серии «перестаньте бороться с терминалом», их стоит выучить в первый день:
Shift+Tab переключает режимы разрешений (по умолчанию, авто-принятие, план)
Esc+Esc открывает окно отката (подробнее в пункте №3)
Ctrl+R ищет по истории ваших подсказок, как в bash и zsh
Ctrl+U удаляет от курсора до начала строки
Shift+Enter добавляет новую строку в поле подсказки
Большинство этих сочетаний работает в терминалах «из коробки». Если нет — выполните слэш-команду /terminal-setup один раз, чтобы всё установить.
2. Заставьте Claude Code помнить ваш проект
Каждая сессия начинается с чистого контекстного окна.
По умолчанию Claude не помнит, что вы используете uv вместо pip. Не помнит, что ваши тесты лежат в tests/, а не в test/. И соглашения по API, которые вы вчера расписывали десять ходов, тоже исчезли. Решение — файл CLAUDE.md в корне проекта. Запустите Claude Code из этой директории (или любой поддиректории), и файл загрузится в контекст автоматически до вашего первого запроса.
Самый быстрый старт — /init. Запустите её внутри проекта. Claude прочитает кодовую базу и напишет стартовый CLAUDE.md с командами сборки, инструкциями по тестам и выведенными им соглашениями. Потом вы его поправите, потому что /init даёт рабочую основу, а не окончательный файл.
Есть три источника контекста, которые Claude поднимает слоями один над другим:
Проектный CLAUDE.md в ./CLAUDE.md хранится в репозитории. Он одинаков для всех участников, поэтому сюда кладите факты, специфичные для проекта:
Менеджер пакетов и версия языка
Команда запуска тестов и расположение тестов
Структура директорий и любые неочевидные соглашения
Всё, что нужно новичку в первый день
Пользовательский CLAUDE.md в ~/.claude/CLAUDE.md следует за вами во всех проектах на машине. Здесь место личным предпочтениям: стиль кода, формат докстрингов, языки, к которым вы тянетесь первыми. Не кладите сюда факты проекта, иначе они «протекут» в каждый другой репозиторий.
Автопамять — третий слой, который Claude ведёт сам. Когда вы его правите в ходе сессии («у нас принят snake_case, а не camelCase»), он записывает правку в ~/.claude/projects/<project>/memory/MEMORY.md. Первые 200 строк или 25 КБ этого файла загружаются в начале каждого разговора в том же проекте. Посмотреть, что поднимается, можно через /memory, там же включается или выключается автопамять.
Правило по размеру: держите каждый CLAUDE.md короче 200 строк. Дальше файл заметно «ест» контекст на каждом ходу, и Claude хуже следует длинным файлам, чем коротким. Если ваш переваливает за лимит, разнесите его по .claude/rules/ с ограничением по путям. Подробно о том, что действительно должно быть в CLAUDE.md, см. моё руководство по написанию лучшего CLAUDE.md.
3. Перестаньте перезапускать сессии, когда всё идёт не так
Инстинкт, когда сессия «поплыла», — сделать /clear и начать заново. Чаще всего это неверно. Перезапуск выбрасывает пути к файлам, которые правил Claude, отслеживаемый упавший тест или оговорённые в начале ограничения. Новой сессии всё это придётся переучивать — вы платите за это токенами и временем.
Сначала научитесь распознавать симптом. У «гниения контекста» есть очевидные сигналы:
Claude заново спрашивает путь к файлу, который правил пять ходов назад
Повторяет предложение, которое вы уже отвергли
Теряет текущую ветку
Вы исправляете его на одной и той же мысли больше двух раз за сессию
Увидев это, у вас четыре варианта — и они не взаимозаменяемы:
Ситуация
Используйте
Почему
Полоска контекста заполняется, текущая задача ещё выполняется
/compact
Суммирует ранние ходы, сохраняет сессию и контекст задачи
Переходите к несвязанной задаче
/clear
Пустой контекст, чистая ветка. Прошлый разговор доступен в /resume
Claude повторяет ошибки, которые вы уже исправляли
/clear
Контекст деградировал. Чистая сессия с лучшей подсказкой лучше, чем «латать» плохую
Вы ушли не туда и хотите откатить
Esc+Esc → Восстановить код и разговор
Прыжок к контрольной точке подсказки и восстановление состояния файлов
Компактирование сессии
/compact не так плох, как о нём говорят некоторые пользователи.
Ваш проектный CLAUDE.md это переживает. После сжатия Claude перечитывает файл с диска и повторно его внедряет, так что ваши соглашения не теряются. Вы также можете дать инструкции по фокусу саммари, например /compact keep the auth refactor decisions, drop the failed test runs. Это разница между полезным и шаблонным резюме.
Использование опции «отмена» в Claude Code
Окно отката по Esc+Esc — функция, о которой многие не знают. Оно открывает список всех контрольных точек подсказок в сессии. После выбора одной из них предлагаются три опции: восстановить только разговор, только код или и то и другое.
«Restore code and conversation» — то, что нужно большинству. Полчаса неудачных ходов исчезают без обращения к git. Это самое близкое к «отмене» для всей сессии в Claude Code.
Перестав перезапускать, вы столкнётесь со следующей задачей — как находить сессии заново.
Именование и повторное открытие сессий
claude -n <name> (или --name) запускает именованную сессию, и имя отображается в /resume и заголовке терминала. Когда у вас в одном репозитории параллельно три дела (экспериментальная ветка, рефакторинг, отладка), имена помогают их различать. /rename меняет имя на лету, если фокус сессии сместился.
Лайфхак: используйте /color, чтобы ещё сильнее различать сессии, когда несколько запущены в одном окне терминала.
Повторное открытие сессии делается двумя флагами. claude --continue (или -c) загружает последний разговор в текущей директории. Используйте, когда вы только что тут работали и хотите продолжить.
claude --resume открывает интерактивный выбор, а claude --resume <name-or-id> прыгает прямо в конкретную сессию. Относитесь к сессиям как к веткам git: разным потокам работ — свои сессии.
4. Планируйте сложное, экономьте на простом
Главная статья затрат в настроенной среде — вовсе не редактор и не горячие клавиши. Это соответствие вычислительных ресурсов сложности текущей задачи. Для этого вместе работают три инструмента: режим планирования,/effort и /model.
Использование режима планирования Claude Code
Режим планирования заставляет Claude продумать подход, прежде чем трогать файлы. Он пишет план, вы его читаете, одобряете или правите — и только потом начинается исполнение.
Приём, который делает мои планы максимально надёжными, — простая подсказка, которую я часто использую:
Red-team this plan from multiple angles using as many Opus 4.7 agents as you need.Работает на
Это запускает несколько подагентов для проверки плана с разных сторон и предложений по исправлению. Хорошая практика, когда файл плана превышает 500 строк.
Цена в том, что планирование плюс red-teaming добавляют два хода до первых правок кода, так что для всего, что меньше значимой фичи или бага, это перебор.
Есть пять способов войти в режим планирования:
Метод
Где включать
Лучше всего, когда
Shift+Tab (дважды)
В середине сессии, в любой момент
Переключение с клавиатуры без ввода команды
/plan
Запрос в середине сессии
Задача ещё не определена — опишете её далее
/plan <description>
Запрос в середине сессии
Задача ясна — пропустите лишний шаг
--permission-mode plan
Флаг при запуске из CLI
Одна сессия, где режим плана нужен с самого начала
"defaultMode": "plan" в settings.json
Настройки проекта или пользователя
Все сессии в этом проекте по умолчанию в режиме планирования
Встроенная форма (/plan refactor the auth module to use JWT) — о ней чаще всего забывают. Она задаёт режим и формулирует задачу одним ударом клавиш вместо двух. Подробный разбор рабочего процесса «сначала обзор, потом исполнение» — в моём руководстве по режиму планирования Claude Code, шаг за шагом.
Выбор подходящего уровня усилий
Effort — следующая важная настройка. Она контролирует, сколько углублённого рассуждения Claude делает за ход. Более высокий уровень — более глубокое мышление, больше токенов и медленнее ответ.
/effort <level> и флаг --effort <level> в CLI принимают все пять значений. Low, medium, high и xhigh сохраняются между сессиями. Max действует только в текущей сессии, потому что снимает ограничение на траты токенов — его стоит выставлять осознанно каждый раз. Лучшее значение по умолчанию для повседневной работы — low или medium. Берегите high и xhigh для действительно сложных задач, а max — для моментов, когда «лучше сжечь токены, чем ошибиться».
Контраргумент: модель на low с отличным контекстом часто обгоняет ту же модель на max с плохим контекстом. Привести в порядок подсказку — обычно больший выигрыш, чем подкручивать effort.
Выбор подходящей модели
Выбор модели — там, где рождается реальная экономия. /model переключает в середине сессии, а сочетание Option+P (macOS) / Alt+P (Win/Linux) переключает модель, не очищая уже набранный текст. Важные алиасы:
sonnet — повседневная «рабочая лошадка»
opus — для самых сложных задач (алиас best тоже указывает на opus)
haiku — когда важна скорость
sonnet[1m] и opus[1m] — варианты с 1M-контекстом
opusplan — Opus в режиме плана и Sonnet в исполнении
default — снимает переопределение и возвращает рекомендованную модель
Если вы по умолчанию используете Opus для всего, переход на Sonnet для большей части дня — самое большое возможное сокращение расходов.
Opus — верный выбор, когда вы застряли на сложной проблеме и нужен самый умный помощник. Почти всё остальное тянет Sonnet. Разница в цене между ними достаточно велика, чтобы привычка «на всякий случай возьму Opus» оказалась самой дорогой в автономном режиме.
5. Автоматизируйте то, что делаете вручную
Когда источники трения устранены, следующий слой — это работа, которую вы всё ещё делаете руками.
Планировщик задач
Сделать проще, чем разбираться, как не делать. Две функции покрывают большую часть: /loop — для повторяющихся проверок, которые иначе пришлось бы «нянчить», и хуки — для гарантий, которых невозможно добиться одной инструкцией в CLAUDE.md.
/loop запускает повторное выполнение подсказки или слэш-команды по расписанию. Синтаксис бывает двух форм:
/loop 5m <prompt> выполняет подсказку каждые 5 минут
/loop <prompt> без интервала передаёт выбор частоты модели — она решает, когда запуститься снова
Единицы интервалов: s, m, h и d, минимум — одна минута. Нужен Claude Code v2.1.72 или новее.
Например, можно настроить наблюдатель тестов: /loop 2m run the test suite and report failures. Вместо того чтобы помнить о запуске тестов после каждой правки (и забывать половину раз), Claude поймает упавший тест на следующем 2-минутном тике.
Тот же паттерн подходит для опроса стейджинга (/loop 10m check if the staging deploy is green) или «хвоста» логов во время нестабильного инцидента (/loop 1m tail the last 50 lines of app.log and flag errors).
Циклы живут 7 дней.
На седьмой день задача отрабатывает в последний раз и удаляется. Они привязаны к сессии, поэтому --continue или --resume вернут их, если вы закроете и снова откроете сессию. Чтобы остановить цикл раньше — нажмите Esc. Если нужен график, переживающий закрытие сессий (ночные проверки, еженедельный дайджест), используйте Routines через /schedule.
Хуки
Хуки — вторая половина. Они запускают shell-команды в определённых точках рабочего процесса Claude и настраиваются в .claude/settings.json.
Причина выбрать хук вместо инструкции в CLAUDE.md — одна: CLAUDE.md носит рекомендательный характер, а хуки гарантированно выполняются. Классический случай — правило «всегда запускай линтер после правок», которое Claude пропускает через раз. Хук закрывает этот разрыв.
Шесть событий покрывают большинство случаев:
Событие
Срабатывает когда
Пример использования
SessionStart
Начинается сессия
Печать баннера с активной веткой git и последним коммитом
UserPromptSubmit
Вы отправляете подсказку, до того как её увидит Claude
Внедрить контекст проекта или блокировать подсказки с секретами
PreToolUse
Claude собирается вызвать инструмент
Блокировать запись в migrations/ или infra/
PostToolUse
Claude завершает вызов инструмента
Запускать линтер или форматтер после каждого Edit или Write
PreCompact
Контекст собираются сжать
Слить транскрипт в файл для дальнейшего разбора
Stop
Claude завершает ответ
Запускать тесты и добавлять результаты к сессии
Минимальный хук PostToolUse, который запускает линтер после каждого редактирования файла:
{"hooks":{"PostToolUse":[{"matcher":"Edit|Write","hooks":[{"type":"command","command":"/path/to/lint-check.sh"}]}]}}Работает на
Одна важная тонкость: только код выхода 2 действительно блокирует Claude. Выход 1 считается не блокирующей ошибкой, и Claude продолжает, хотя 1 — обычный код ошибки в Unix. Если хук должен жёстко применять правило, возвращайте 2.
Писать хуки вручную тоже не обязательно.
Попросите Claude: «напиши хук, который запускает ruff после каждого редактирования файла» — и он подготовит для вас JSON. /hooks перечисляет все активные конфигурации хуков, чтобы не пришлось grep-ать файлы настроек, когда что-то срабатывает неожиданно. Полный каталог событий и JSON-схемы для stdin/stdout см. моё руководство по хукам Claude Code.
6. Держите под контролем затраты
Циклы, длинные сессии и Opus «по умолчанию» жгут токены. Три команды делают траты достаточно заметными для управления, и нужная привычка — просто бросать взгляд, а не настраивать их бесконечно.
/usage показывает ваш тариф, итоги по сессии, помодельные разбивки по стоимости и прогресс-бары для 5-часового и недельного окон лимитов.
/context визуализирует текущее контекстное окно в виде цветной решётки с предупреждениями о заполнении и подсказками, какие инструменты или файлы «съедают» место. Используйте, когда сессия «тяжёлая» и вы выбираете между /compact и /clear.
/statusline настраивает постоянную строку внизу терминала. Там можно показать модель, процент заполнения контекста, окна лимитов и всё остальное, что читается из JSON сессии. Эта штука чаще всего меняет поведение: она держит важные для затрат числа в поле зрения, пока вы работаете.
Можно выполнить /statusline и простыми словами описать, что хотите видеть — Claude сгенерирует скрипт и обновит настройки. Другой вариант — написать shell-скрипт самостоятельно и указать на него в ~/.claude/settings.json:
{"statusLine":{"type":"command","command":"~/.claude/statusline.sh"}}Работает на
Для долгосрочного трекинга между сессиями npx ccusage — это инструмент сообщества, который агрегирует сгорание токенов во времени. Он сторонний, не от Anthropic, но закрывает разрыв между сессионным /usage и вашим месячным биллингом.
7. Ещё три полезные функции
Шесть апгрейдов выше — те, к которым я обращаюсь каждый день. А следующие три — реальные функции, которыми я пользуюсь реже, но о которых стоит знать, чтобы вытащить их в нужный день.
Говорите по нажатию с /voice
/voice включает диктовку по нажатию. Удерживаете Space, говорите, отпускаете — и распознанный текст попадает в поле подсказки. Нужна версия v2.1.69 или новее, поддерживается двадцать языков.
Голос часто выигрывает у набора, когда вы идёте и думаете вслух или формулируете намерение в начале задачи, когда формулировка ещё не устоялась. Для правок на уровне строк хуже: «замени строку 47 на…» проще набрать.
Забирайте облачные сессии с помощью /teleport
/teleport (алиас /tp) подтягивает облачную сессию в ваш локальный терминал. Допустим, вы начали долгую задачу в веб-приложении или на iOS, а теперь вернулись к ноутбуку. Запустите claude --teleport, чтобы открыть выборщик и перенести ту сессию в терминал с уже переключенной нужной веткой.
Нужно соблюсти несколько условий:
Чистое состояние git
Тот же репозиторий
Тот же аккаунт claude.ai, на котором шла облачная сессия
/btw — для короткого вопроса, который не хочется встраивать в основной поток.
Представьте, что Claude выполняет задачу. Уже запущена долгая правка или вызов инструмента, и внезапно вам нужно вспомнить регэксп для IP-адресов или какой флаг делает X.
Просто введите /btw <question>, и ответ появится во всплывающем оверлее. Идущая задача продолжит выполняться, ответ не попадёт в историю разговора, так что не нужно плодить новую сессию для единичного запроса и не будет «загрязнения» текущей.
Заключение
Самый быстрый способ откатиться по всем советам из этой статьи — попытаться внедрить всё за один день. Выберите два-три пункта, доведите их до автоматизма, и добавляйте остальные позже.
Три, с которых стоит начать — каждый для своей части дня, чтобы они не мешали друг другу:
Аккуратный проектный CLAUDE.md плюс два-три правила с подстановками в .claude/settings.json для bash-команд, которые вы заново одобряете в каждой сессии. Это утренняя привычка по настройке — вы ощутите её только когда прекратятся прерывания.
Выбор между /compact и /clear и окно отката по Esc+Esc. Это дневная привычка — триггером служит момент, когда Claude снова спрашивает путь к файлу, который «знал» час назад.
Один /loop для повторяющейся проверки, которая уже отъедает ваше время. Это фоновая привычка — запустили, и она окупается сама.
Если различия между Sonnet, Opus и Haiku всё ещё туманны, наш курс Introduction to Claude Models подробно объясняет, когда какая модель подходит. После этого вызовы /effort и /model даются гораздо легче.
Вопросы и ответы о терминале Claude Code
В чём разница между /compact и /clear в Claude Code?⌄
/compact суммирует ранние ходы и сохраняет контекст текущей задачи, поэтому используйте его, когда полоска контекста заполняется, но вы всё ещё над той же задачей. /clear очищает контекст для несвязанной задачи или когда Claude повторяет исправленные ошибки. В любом случае прошлый разговор доступен через /resume.
Как перестать получать запросы на разрешение от Claude Code каждый раз?⌄
Добавьте блок permissions в .claude/settings.json в корне проекта с шаблонами allow и deny. Например, разрешите Bash(pytest *) и Bash(uv run *) для доверенных команд и запретите Bash(curl *) и Read(./.env) для рискованных. Правила оцениваются в порядке «сначала deny», поэтому запрет всегда перебивает последующее разрешение.
Что делает окно отката по Esc+Esc в Claude Code?⌄
Нажмите Esc дважды, чтобы открыть список всех контрольных точек подсказок в текущей сессии. Выберите одну, затем решите, восстановить только разговор, только код или и то и другое. «Восстановить код и разговор» — самое близкое к отмене для всей сессии в Claude Code, и это работает без git.
Когда использовать Opus, Sonnet или Haiku в Claude Code?⌄
Sonnet — модель по умолчанию для большинства задач по разработке. Беритесь за Opus для самых сложных проблем, когда нужен максимально «умный» помощник. Haiku — верный выбор, когда важна скорость. Переключайтесь в середине сессии с помощью /model или сочетанием Option+P на macOS (Alt+P на Windows или Linux). Использовать Opus «на всякий случай» для всего — самая дорогая привычка.
Как работает команда /loop в Claude Code?⌄
/loop 5m <prompt> запускает подсказку или слэш-команду с фиксированным интервалом (единицы — s, m, h, d, минимум — одна минута). /loop <prompt> без интервала передаёт выбор частоты модели. Циклы живут 7 дней, срабатывают в последний раз на седьмой день и удаляются. Они привязаны к сессии, поэтому --continue или --resume вернут их. Нажмите Esc, чтобы остановить раньше. Требуется Claude Code v2.1.72 или новее.
Пишите код и создавайте программные приложения быстрее, чем когда-либо, с помощью новейших ИИ-инструментов для разработчиков, включая GitHub Copilot, Windsurf и Replit.
Базовый Claude Code уже полезен «из коробки». Устанавливаете, даёте подсказку — и он строит то, что вам нужно. У большинства именно такая настройка для «vibe-кодинга», и она работает.
Но Claude Code в настроенном под себя терминале — это уже другой инструмент. Пользователь заранее одобрил доверенные bash-команды, поэтому Claude почти никогда не просит разрешенияns. В корне проекта лежит CLAUDE.md, так что Claude с первой секунды знает ваши договорённости. И когда сессия начинает путаться, команда, к которой тянется рука, — вовсе не перезапуск.
Эта статья закрывает разрыв между двумя такими установками Claude Code — в семи шагах. Ни один из них не займет больше десяти минут, и каждый окупится в течение недели.
Если вы никогда не открывали Claude Code, лучше начать с нашего основного руководства по Claude Code. Ниже мы исходим из того, что вы уже умеете давать подсказки и подтверждать вызовы инструментов.
1. Перестаньте заново одобрять одни и те же команды
По умолчанию каждый новый вызов инструмента запрашивает у вас одобрение. Первый запуск
pytest— терпимо. К третьему — уже раздражает. К десятому вы жмётеEnter, не читая подсказку. Худший из миров: вы приучили себя игнорировать проверку безопасности, и при этом всё ещё тратите на неё время.Конечно, есть режим «опасно обходить разрешения» или «авторежим». Мы подробно разбирали их компромиссы в моём руководстве по Auto Mode и каналам в Claude Code.
Определяем разрешения в файле settings.json
Решение — файл
.claude/settings.jsonв корне проекта с блокомpermissions, который заранее одобряет шаблоны, которым вы доверяете, и блокирует те, которым — нет:Правила оцениваются в фиксированном порядке: сначала deny, затем ask, затем allow. Срабатывает первое совпадение, поэтому правило deny всегда перебивает идущее позже allow.
Освоение области действия и шаблонов с подстановками
Три вещи чаще всего сбивают с толку при первом написании таких правил.
Первая — это область действия (scope). Файл проекта
.claude/settings.jsonпереопределяет ваш глобальный~/.claude/settings.json. Поэтому если вы глобально разрешилиBash(rm *), а в проекте это запрещено, победит проект. Это правильное поведение по умолчанию, но удивляет тех, кто ожидает, что глобальные allow «залипают».Вторая — это подстановки для сетевых команд.
Bash(curl http://github.com/ *)выглядит строго, но не ловитhttps://, опции перед URL, редиректы или раскрытие переменных шелла. Рекомендуемый в документации паттерн — полностью запрещатьBash(curl *). А затем использовать инструмент WebFetch сWebFetch(domain:github.com)для доменов, которые действительно хотите разрешить.Третья — это пробелы.
Bash(ls *)совпадает сls -la, но не сlsof.Bash(ls*)совпадает с обоими. Пробел перед звёздочкой выполняет реальную работу — стоит осознанно выбирать, какой вариант вы написали.Рядом с разрешениями есть несколько горячих клавиш из той же серии «перестаньте бороться с терминалом», их стоит выучить в первый день:
Shift+Tab переключает режимы разрешений (по умолчанию, авто-принятие, план)
Esc+Esc открывает окно отката (подробнее в пункте №3)
Ctrl+R ищет по истории ваших подсказок, как в bash и zsh
Ctrl+U удаляет от курсора до начала строки
Shift+Enter добавляет новую строку в поле подсказки
Большинство этих сочетаний работает в терминалах «из коробки». Если нет — выполните слэш-команду
/terminal-setupодин раз, чтобы всё установить.2. Заставьте Claude Code помнить ваш проект
Каждая сессия начинается с чистого контекстного окна.
По умолчанию Claude не помнит, что вы используете
uvвместоpip. Не помнит, что ваши тесты лежат вtests/, а не вtest/. И соглашения по API, которые вы вчера расписывали десять ходов, тоже исчезли. Решение — файлCLAUDE.mdв корне проекта. Запустите Claude Code из этой директории (или любой поддиректории), и файл загрузится в контекст автоматически до вашего первого запроса.Самый быстрый старт —
/init. Запустите её внутри проекта. Claude прочитает кодовую базу и напишет стартовый CLAUDE.md с командами сборки, инструкциями по тестам и выведенными им соглашениями. Потом вы его поправите, потому что/initдаёт рабочую основу, а не окончательный файл.Есть три источника контекста, которые Claude поднимает слоями один над другим:
Проектный CLAUDE.md в
./CLAUDE.mdхранится в репозитории. Он одинаков для всех участников, поэтому сюда кладите факты, специфичные для проекта:Пользовательский CLAUDE.md в
~/.claude/CLAUDE.mdследует за вами во всех проектах на машине. Здесь место личным предпочтениям: стиль кода, формат докстрингов, языки, к которым вы тянетесь первыми. Не кладите сюда факты проекта, иначе они «протекут» в каждый другой репозиторий.Автопамять — третий слой, который Claude ведёт сам. Когда вы его правите в ходе сессии («у нас принят
snake_case, а неcamelCase»), он записывает правку в~/.claude/projects/<project>/memory/MEMORY.md. Первые 200 строк или 25 КБ этого файла загружаются в начале каждого разговора в том же проекте. Посмотреть, что поднимается, можно через/memory, там же включается или выключается автопамять.Правило по размеру: держите каждый CLAUDE.md короче 200 строк. Дальше файл заметно «ест» контекст на каждом ходу, и Claude хуже следует длинным файлам, чем коротким. Если ваш переваливает за лимит, разнесите его по
.claude/rules/с ограничением по путям. Подробно о том, что действительно должно быть в CLAUDE.md, см. моё руководство по написанию лучшего CLAUDE.md.3. Перестаньте перезапускать сессии, когда всё идёт не так
Инстинкт, когда сессия «поплыла», — сделать
/clearи начать заново. Чаще всего это неверно. Перезапуск выбрасывает пути к файлам, которые правил Claude, отслеживаемый упавший тест или оговорённые в начале ограничения. Новой сессии всё это придётся переучивать — вы платите за это токенами и временем.Сначала научитесь распознавать симптом. У «гниения контекста» есть очевидные сигналы:
Увидев это, у вас четыре варианта — и они не взаимозаменяемы:
Ситуация
Используйте
Почему
Полоска контекста заполняется, текущая задача ещё выполняется
/compactСуммирует ранние ходы, сохраняет сессию и контекст задачи
Переходите к несвязанной задаче
/clearПустой контекст, чистая ветка. Прошлый разговор доступен в
/resumeClaude повторяет ошибки, которые вы уже исправляли
/clearКонтекст деградировал. Чистая сессия с лучшей подсказкой лучше, чем «латать» плохую
Вы ушли не туда и хотите откатить
Esc+Esc → Восстановить код и разговор
Прыжок к контрольной точке подсказки и восстановление состояния файлов
Компактирование сессии
/compactне так плох, как о нём говорят некоторые пользователи.Ваш проектный CLAUDE.md это переживает. После сжатия Claude перечитывает файл с диска и повторно его внедряет, так что ваши соглашения не теряются. Вы также можете дать инструкции по фокусу саммари, например
/compact keep the auth refactor decisions, drop the failed test runs. Это разница между полезным и шаблонным резюме.Использование опции «отмена» в Claude Code
Окно отката по Esc+Esc — функция, о которой многие не знают. Оно открывает список всех контрольных точек подсказок в сессии. После выбора одной из них предлагаются три опции: восстановить только разговор, только код или и то и другое.
«Restore code and conversation» — то, что нужно большинству. Полчаса неудачных ходов исчезают без обращения к git. Это самое близкое к «отмене» для всей сессии в Claude Code.
Перестав перезапускать, вы столкнётесь со следующей задачей — как находить сессии заново.
Именование и повторное открытие сессий
claude -n <name>(или--name) запускает именованную сессию, и имя отображается в/resumeи заголовке терминала. Когда у вас в одном репозитории параллельно три дела (экспериментальная ветка, рефакторинг, отладка), имена помогают их различать./renameменяет имя на лету, если фокус сессии сместился.Лайфхак: используйте
/color, чтобы ещё сильнее различать сессии, когда несколько запущены в одном окне терминала.Повторное открытие сессии делается двумя флагами.
claude --continue(или-c) загружает последний разговор в текущей директории. Используйте, когда вы только что тут работали и хотите продолжить.claude --resumeоткрывает интерактивный выбор, аclaude --resume <name-or-id>прыгает прямо в конкретную сессию. Относитесь к сессиям как к веткам git: разным потокам работ — свои сессии.4. Планируйте сложное, экономьте на простом
Главная статья затрат в настроенной среде — вовсе не редактор и не горячие клавиши. Это соответствие вычислительных ресурсов сложности текущей задачи. Для этого вместе работают три инструмента: режим планирования,
/effortи/model.Использование режима планирования Claude Code
Режим планирования заставляет Claude продумать подход, прежде чем трогать файлы. Он пишет план, вы его читаете, одобряете или правите — и только потом начинается исполнение.
Приём, который делает мои планы максимально надёжными, — простая подсказка, которую я часто использую:
Это запускает несколько подагентов для проверки плана с разных сторон и предложений по исправлению. Хорошая практика, когда файл плана превышает 500 строк.
Цена в том, что планирование плюс red-teaming добавляют два хода до первых правок кода, так что для всего, что меньше значимой фичи или бага, это перебор.
Есть пять способов войти в режим планирования:
Метод
Где включать
Лучше всего, когда
Shift+Tab (дважды)
В середине сессии, в любой момент
Переключение с клавиатуры без ввода команды
/planЗапрос в середине сессии
Задача ещё не определена — опишете её далее
/plan <description>Запрос в середине сессии
Задача ясна — пропустите лишний шаг
--permission-mode planФлаг при запуске из CLI
Одна сессия, где режим плана нужен с самого начала
"defaultMode": "plan"вsettings.jsonНастройки проекта или пользователя
Все сессии в этом проекте по умолчанию в режиме планирования
Встроенная форма (
/plan refactor the auth module to use JWT) — о ней чаще всего забывают. Она задаёт режим и формулирует задачу одним ударом клавиш вместо двух. Подробный разбор рабочего процесса «сначала обзор, потом исполнение» — в моём руководстве по режиму планирования Claude Code, шаг за шагом.Выбор подходящего уровня усилий
Effort — следующая важная настройка. Она контролирует, сколько углублённого рассуждения Claude делает за ход. Более высокий уровень — более глубокое мышление, больше токенов и медленнее ответ.
/effort <level>и флаг--effort <level>в CLI принимают все пять значений. Low, medium, high иxhighсохраняются между сессиями. Max действует только в текущей сессии, потому что снимает ограничение на траты токенов — его стоит выставлять осознанно каждый раз. Лучшее значение по умолчанию для повседневной работы — low или medium. Берегитеhighиxhighдля действительно сложных задач, аmax— для моментов, когда «лучше сжечь токены, чем ошибиться».Контраргумент: модель на low с отличным контекстом часто обгоняет ту же модель на max с плохим контекстом. Привести в порядок подсказку — обычно больший выигрыш, чем подкручивать effort.
Выбор подходящей модели
Выбор модели — там, где рождается реальная экономия.
/modelпереключает в середине сессии, а сочетание Option+P (macOS) / Alt+P (Win/Linux) переключает модель, не очищая уже набранный текст. Важные алиасы:sonnet— повседневная «рабочая лошадка»opus— для самых сложных задач (алиасbestтоже указывает на opus)haiku— когда важна скоростьsonnet[1m]иopus[1m]— варианты с 1M-контекстомopusplan— Opus в режиме плана и Sonnet в исполненииdefault— снимает переопределение и возвращает рекомендованную модельЕсли вы по умолчанию используете Opus для всего, переход на Sonnet для большей части дня — самое большое возможное сокращение расходов.
Opus — верный выбор, когда вы застряли на сложной проблеме и нужен самый умный помощник. Почти всё остальное тянет Sonnet. Разница в цене между ними достаточно велика, чтобы привычка «на всякий случай возьму Opus» оказалась самой дорогой в автономном режиме.
5. Автоматизируйте то, что делаете вручную
Когда источники трения устранены, следующий слой — это работа, которую вы всё ещё делаете руками.
Планировщик задач
Сделать проще, чем разбираться, как не делать. Две функции покрывают большую часть:
/loop— для повторяющихся проверок, которые иначе пришлось бы «нянчить», и хуки — для гарантий, которых невозможно добиться одной инструкцией в CLAUDE.md./loopзапускает повторное выполнение подсказки или слэш-команды по расписанию. Синтаксис бывает двух форм:/loop 5m <prompt>выполняет подсказку каждые 5 минут/loop <prompt>без интервала передаёт выбор частоты модели — она решает, когда запуститься сноваЕдиницы интервалов:
s,m,hиd, минимум — одна минута. Нужен Claude Code v2.1.72 или новее.Например, можно настроить наблюдатель тестов:
/loop 2m run the test suite and report failures. Вместо того чтобы помнить о запуске тестов после каждой правки (и забывать половину раз), Claude поймает упавший тест на следующем 2-минутном тике.Тот же паттерн подходит для опроса стейджинга (
/loop 10m check if the staging deploy is green) или «хвоста» логов во время нестабильного инцидента (/loop 1m tail the last 50 lines of app.log and flag errors).Циклы живут 7 дней.
На седьмой день задача отрабатывает в последний раз и удаляется. Они привязаны к сессии, поэтому
--continueили--resumeвернут их, если вы закроете и снова откроете сессию. Чтобы остановить цикл раньше — нажмитеEsc. Если нужен график, переживающий закрытие сессий (ночные проверки, еженедельный дайджест), используйте Routines через/schedule.Хуки
Хуки — вторая половина. Они запускают shell-команды в определённых точках рабочего процесса Claude и настраиваются в
.claude/settings.json.Причина выбрать хук вместо инструкции в CLAUDE.md — одна: CLAUDE.md носит рекомендательный характер, а хуки гарантированно выполняются. Классический случай — правило «всегда запускай линтер после правок», которое Claude пропускает через раз. Хук закрывает этот разрыв.
Шесть событий покрывают большинство случаев:
Событие
Срабатывает когда
Пример использования
SessionStartНачинается сессия
Печать баннера с активной веткой git и последним коммитом
UserPromptSubmitВы отправляете подсказку, до того как её увидит Claude
Внедрить контекст проекта или блокировать подсказки с секретами
PreToolUseClaude собирается вызвать инструмент
Блокировать запись в
migrations/илиinfra/PostToolUseClaude завершает вызов инструмента
Запускать линтер или форматтер после каждого
EditилиWritePreCompactКонтекст собираются сжать
Слить транскрипт в файл для дальнейшего разбора
StopClaude завершает ответ
Запускать тесты и добавлять результаты к сессии
Минимальный хук
PostToolUse, который запускает линтер после каждого редактирования файла:Одна важная тонкость: только код выхода 2 действительно блокирует Claude. Выход 1 считается не блокирующей ошибкой, и Claude продолжает, хотя 1 — обычный код ошибки в Unix. Если хук должен жёстко применять правило, возвращайте 2.
Писать хуки вручную тоже не обязательно.
Попросите Claude: «напиши хук, который запускает ruff после каждого редактирования файла» — и он подготовит для вас JSON.
/hooksперечисляет все активные конфигурации хуков, чтобы не пришлось grep-ать файлы настроек, когда что-то срабатывает неожиданно. Полный каталог событий и JSON-схемы дляstdin/stdoutсм. моё руководство по хукам Claude Code.6. Держите под контролем затраты
Циклы, длинные сессии и Opus «по умолчанию» жгут токены. Три команды делают траты достаточно заметными для управления, и нужная привычка — просто бросать взгляд, а не настраивать их бесконечно.
/usageпоказывает ваш тариф, итоги по сессии, помодельные разбивки по стоимости и прогресс-бары для 5-часового и недельного окон лимитов./contextвизуализирует текущее контекстное окно в виде цветной решётки с предупреждениями о заполнении и подсказками, какие инструменты или файлы «съедают» место. Используйте, когда сессия «тяжёлая» и вы выбираете между/compactи/clear./statuslineнастраивает постоянную строку внизу терминала. Там можно показать модель, процент заполнения контекста, окна лимитов и всё остальное, что читается из JSON сессии. Эта штука чаще всего меняет поведение: она держит важные для затрат числа в поле зрения, пока вы работаете.Можно выполнить
/statuslineи простыми словами описать, что хотите видеть — Claude сгенерирует скрипт и обновит настройки. Другой вариант — написать shell-скрипт самостоятельно и указать на него в~/.claude/settings.json:Для долгосрочного трекинга между сессиями
npx ccusage— это инструмент сообщества, который агрегирует сгорание токенов во времени. Он сторонний, не от Anthropic, но закрывает разрыв между сессионным/usageи вашим месячным биллингом.7. Ещё три полезные функции
Шесть апгрейдов выше — те, к которым я обращаюсь каждый день. А следующие три — реальные функции, которыми я пользуюсь реже, но о которых стоит знать, чтобы вытащить их в нужный день.
Говорите по нажатию с /voice
/voiceвключает диктовку по нажатию. УдерживаетеSpace, говорите, отпускаете — и распознанный текст попадает в поле подсказки. Нужна версия v2.1.69 или новее, поддерживается двадцать языков.Голос часто выигрывает у набора, когда вы идёте и думаете вслух или формулируете намерение в начале задачи, когда формулировка ещё не устоялась. Для правок на уровне строк хуже: «замени строку 47 на…» проще набрать.
Забирайте облачные сессии с помощью /teleport
/teleport(алиас/tp) подтягивает облачную сессию в ваш локальный терминал. Допустим, вы начали долгую задачу в веб-приложении или на iOS, а теперь вернулись к ноутбуку. Запуститеclaude --teleport, чтобы открыть выборщик и перенести ту сессию в терминал с уже переключенной нужной веткой.Нужно соблюсти несколько условий:
Не путайте
--teleportс--resume. Второй лишь открывает локальные сессии из истории этой машины. Подробный разбор — в нашем руководстве по удалённому управлению Claude Code, там остальное.Задавайте побочные вопросы с /btw
/btw— для короткого вопроса, который не хочется встраивать в основной поток.Представьте, что Claude выполняет задачу. Уже запущена долгая правка или вызов инструмента, и внезапно вам нужно вспомнить регэксп для IP-адресов или какой флаг делает X.
Просто введите
/btw <question>, и ответ появится во всплывающем оверлее. Идущая задача продолжит выполняться, ответ не попадёт в историю разговора, так что не нужно плодить новую сессию для единичного запроса и не будет «загрязнения» текущей.Заключение
Самый быстрый способ откатиться по всем советам из этой статьи — попытаться внедрить всё за один день. Выберите два-три пункта, доведите их до автоматизма, и добавляйте остальные позже.
Три, с которых стоит начать — каждый для своей части дня, чтобы они не мешали друг другу:
Аккуратный проектный CLAUDE.md плюс два-три правила с подстановками в
.claude/settings.jsonдля bash-команд, которые вы заново одобряете в каждой сессии. Это утренняя привычка по настройке — вы ощутите её только когда прекратятся прерывания.Выбор между
/compactи/clearи окно отката по Esc+Esc. Это дневная привычка — триггером служит момент, когда Claude снова спрашивает путь к файлу, который «знал» час назад.Один
/loopдля повторяющейся проверки, которая уже отъедает ваше время. Это фоновая привычка — запустили, и она окупается сама.Если различия между Sonnet, Opus и Haiku всё ещё туманны, наш курс Introduction to Claude Models подробно объясняет, когда какая модель подходит. После этого вызовы
/effortи/modelдаются гораздо легче.