Почему это важно именно вам
Есть задачи, которые занимают время. Обработать 200 документов — это не пять секунд. Проанализировать большой архив переписки — это минуты. И пока Claude работает, ваш терминал заблокирован: вы не можете ввести другую команду, начать другую задачу, сделать что-то параллельно.
--bg решает эту проблему. Задача запускается в фоне, управление терминалом возвращается немедленно, и вы продолжаете работать. Когда задача завершится — вы об этом узнаете.
Для директора это означает: запустить обработку отчётов, пока пишете письмо. Поставить анализ договоров на ночь. Запустить несколько задач параллельно и получить результаты всех к нужному времени.
Что это такое
Флаг --bg запускает задачу в фоновом режиме. Технически — создаёт отдельный процесс, который выполняется независимо от вашего терминала.
В сочетании с --name вы можете дать задаче понятное имя, по которому потом найдёте её статус и результат.
Аналогия: это как поставить задачу сотруднику и отпустить его работать. Вы не стоите рядом и не ждёте — вы занимаетесь другим. Когда сотрудник закончит — сообщит.
--bg vs системный фон (&)
В bash можно запустить любую команду в фоне через & в конце. --bg — это встроенный механизм Claude Code, который правильно управляет сессией, логирует результат и позволяет проверять статус через claude agents. Предпочитайте --bg для задач Claude.
Как работает на практике
Базовый запуск в фоне
claude --bg "обработай все файлы в папке отчёты и создай сводку"
Команда вернёт управление немедленно. В выводе будет идентификатор задачи:
backgrounded · 7c5dcf5d · сводка-июнь
claude agents список сессий
claude attach 7c5dcf5d открыть в этом терминале
claude logs 7c5dcf5d свежий вывод
claude stop 7c5dcf5d остановить
Именованная фоновая задача
claude --bg --name "сводка-июнь" "проанализируй все отчёты за июнь и создай сводный документ"
Теперь задачу можно найти по имени.
Проверка статуса
claude agents
Выводит все сессии, включая фоновые — с их статусом (running, completed, failed).
Получение результата
Когда задача завершится:
claude --resume session_abc123 -p "покажи результат"
Или, если использовали --output-format json при запуске, результат уже в файле.
Практический паттерн: запустил и забыл
claude --bg --name "договоры-анализ" \
--permission-mode acceptEdits \
-p "найди все .txt файлы в папке договоры, проверь каждый на наличие штрафных санкций и создай реестр договоров_риски.txt"
Запустили, переключились на другую задачу. Через несколько минут:
cat договоры_риски.txt
Результат готов.
Несколько параллельных задач
# Задача 1
claude --bg --name "анализ-партнёр-А" \
-p "проанализируй переписку с партнёром А и выдели ключевые договорённости" \
< переписка_А.txt
# Задача 2
claude --bg --name "анализ-партнёр-Б" \
-p "проанализируй переписку с партнёром Б и выдели ключевые договорённости" \
< переписка_Б.txt
# Задача 3
claude --bg --name "сводка-недели" \
-p "создай сводку недели на основе этих отчётов" \
< отчёты_неделя.txt
echo "Три задачи запущены. Проверить через 5 минут: claude agents"
Все три работают параллельно. Стоимость рассчитывается по каждой задаче отдельно.
Когда фон выгоднее последовательной обработки
Если у вас три независимые задачи по 2 минуты каждая — последовательно это 6 минут. В фоне — 2 минуты (все три работают параллельно). Для большого объёма файлов это принципиальная разница.
Запись результата в файл сразу
Чтобы не забывать проверять сессию — перенаправляйте вывод:
claude --bg \
--permission-mode acceptEdits \
-p "создай файл результат.txt с анализом этих данных" \
< данные.txt
Результат будет в результат.txt — проверяйте когда удобно. Важная оговорка: если рабочая папка под git, фоновая сессия перед правками переезжает в свою копию под .claude/worktrees/, и файл окажется там. Чтобы фоновые задачи писали прямо в рабочую копию, поставьте в настройках проекта {"worktree": {"bgIsolation": "none"}}.
Уведомление о завершении
Если хотите получить уведомление в терминале когда задача завершится:
claude --bg "долгая задача" < данные.txt && echo "Задача завершена!" | osascript -e 'display notification "Claude завершил задачу" with title "Claude Code"'
На macOS osascript покажет системное уведомление. На Linux можно использовать notify-send.
Частые ошибки
Ошибка 1. Запускать bg без --permission-mode
Запрос разрешения от фоновой задачи всплывёт в вашей основной сессии. Но если терминала рядом нет (запуск по расписанию), отвечать некому — для таких сценариев задавайте режим заранее: --permission-mode dontAsk с заранее разрешённым списком инструментов или acceptEdits. Для фоновых задач используйте --permission-mode acceptEdits или bypassPermissions.
# НЕПРАВИЛЬНО — зависнет
claude --bg "измени все файлы в папке"
# ПРАВИЛЬНО
claude --bg --permission-mode acceptEdits "измени все файлы в папке"
Ошибка 2. Не сохранять идентификатор задачи
Запустили, забыли скопировать session ID, а потом не можете найти результат. Всегда либо сохраняйте ID, либо используйте --name, либо задавайте запись в конкретный файл.
Ошибка 3. Слишком много параллельных задач
API имеет лимиты на количество параллельных запросов. Если запустить 50 задач одновременно — часть получит ошибку throttling. Для больших объёмов лучше разбить на батчи по 5–10 задач.
Ошибка 4. Забыть про стоимость
Параллельные задачи = параллельные расходы. Десять задач по $0.01 = $0.10 одновременно. Это нормально, но нужно понимать, что фоновый запуск не делает токены бесплатными.
Когда нужно / когда нет
--bg нужен, если:
- Задача займёт больше минуты
- Нужно обработать большой объём данных
- Хотите запустить несколько независимых задач параллельно
- Запускаете задачу «на вечер» и хотите уйти заниматься другим
--bg не нужен, если:
- Задача быстрая (несколько секунд)
- Нужен интерактивный диалог с уточнениями
- Следующая задача зависит от результата этой (нужно дождаться)
- Задача разовая и несложная
Связь с другими уроками
- День 8 — режимы разрешений:
--bgпочти всегда требуетacceptEditsилиbypassPermissions - День 39 — автоматизация через cron: фоновые задачи + расписание = полная автономия
- День 10 — итоговый скрипт: используем
--bgдля параллельной обработки в финальном примере
Задание на сегодня
Запустите фоновую задачу и проверьте её статус:
# Запустить в фоне
claude --bg --name "тест-фон" \
--permission-mode acceptEdits \
-p "создай файл фоновый_тест.txt с текстом: задача выполнена в фоне, время завершения — [текущее время]"
# Сразу выполнить что-то другое
echo "Я продолжаю работать пока Claude работает в фоне"
# Проверить статус
claude agents
Критерий выполнено: получили идентификатор фоновой задачи, выполнили другую команду, увидели задачу в списке сессий.
Резюме
--bgзапускает задачу в фоне и немедленно возвращает управление--name имядаёт задаче понятное имя для поискаclaude agentsпоказывает экран со всеми фоновыми сессиями и их статусами (claude logs <id>— свежий вывод,claude attach <id>— подключиться,claude stop <id>— остановить)- Фоновым задачам режим задают заранее:
--permission-mode dontAskсо списком разрешённого илиacceptEdits;bypassPermissionsв фоне не стартует, пока вы не приняли его диалог в интерактивной сессии - Параллельные задачи работают быстрее последовательных, но стоят столько же суммарно
- Для больших объёмов — разбивайте на батчи по 5–10 задач