SpyBara
Go Premium

sessions.md 2026-10-06 23:59 UTC to 2026-10-07 20:01 UTC

This page contains 64 additions and 62 deletions.

2026
Thu 1 23:59 Fri 2 22:59 Sat 3 23:57 Sun 4 23:58 Tue 6 23:59 Wed 7 20:57

Управление сеансами

Назовите, возобновите, создавайте ветви и переключайтесь между диалогами Claude Code. Охватывает --continue, --resume, --from-pr, средство выбора /resume, именование сеансов, экспорт стенограмм и место хранения стенограмм.

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

Настольное приложение, Claude Code в веб-версии и расширение VS Code каждое ведёт собственную историю сеансов, а настольное приложение также может возобновить сеанс CLI. На этой странице рассматривается CLI.

Возобновление сессии

Сессии непрерывно сохраняются в локальные файлы транскриптов по мере работы, поэтому вы можете вернуться к одной из них после выхода или запуска /clear. Используйте эти точки входа:

Команда Что она делает
claude --continue Повторно открывает самый последний диалог в текущем каталоге
claude --resume Открывает средство выбора сессий
claude --resume <name> Возобновляет именованную сессию напрямую
claude --resume <transcript-path> Возобновляет диалог, сохранённый в файле транскрипта .jsonl по этому абсолютному пути
claude --from-pr <number> Открывает средство выбора сессий, отфильтрованное по сессиям, связанным с этим pull request
/resume Переключается на другой диалог из активной сессии

Claude Code исключает сессии, созданные с помощью claude -p или Agent SDK, из средства выбора сессий и из claude --continue. Вы всё равно можете возобновить такую сессию, передав её ID в claude --resume <session-id>. При использовании claude --continue Claude Code также пропускает сессии, первым промптом которых был /loop. Когда вы запускаете claude -p --continue, Claude Code учитывает сессии -p, SDK и /loop.

Вы можете запустить claude --resume <session-id> из любого каталога, поэтому можно возобновить сессию, которая началась в другом месте или была перемещена с помощью /cd. Claude Code ищет ID в следующем порядке:

  1. Каталог текущего проекта и его git worktrees
  2. Все остальные проекты на этой машине

Поиск по проектам находит ID только тогда, когда ровно один другой проект содержит транскрипт с сообщениями для него, поэтому вручную скопированный дубликат приводит к тому, что Claude Code сообщает об отсутствии сессии, а не возобновляет произвольную копию. Если ни одна сохранённая сессия не соответствует ID, Claude Code сообщает No conversation found with session ID: <session-id>.

До версии 2.1.223 поиск ограничивался каталогом текущего проекта и его git worktrees, поэтому возобновлять сессию приходилось из каталога, в котором она работала в последний раз.

claude --continue открывает фоновую сессию, которая завершилась, но не ту, которая всё ещё выполняется; для открытия завершённых фоновых сессий требуется Claude Code v2.1.257 или более поздней версии. Если ваш самый последний диалог — это тот, который вы переместили в фон, и он всё ещё там выполняется, Claude Code завершается с сообщением Your most recent conversation is running in the background и ID этой сессии. Подключитесь к сессии из claude agents или запустите claude --resume, чтобы выбрать другую.

Возобновление выполняющейся фоновой сессии

Когда диалог, который вы возобновляете с помощью claude --resume или /resume, принадлежит фоновой сессии, которая всё ещё выполняется, Claude Code открывает саму выполняющуюся сессию. Если в командной строке указан --bg, возобновление вместо этого становится фоновой отправкой. До версии 2.1.285 Claude Code отказывал и предлагал открыть сессию с помощью claude attach <id> или сначала остановить её с помощью claude stop <id>.

  • Из вашей оболочки: claude --resume <session> запускает claude attach для этой сессии в том же терминале вместо самостоятельной загрузки транскрипта. Промпт, который вы передаёте в командной строке, как в claude --resume <session> "check the tests too", сначала отправляется в сессию как её следующий ход, и Claude Code выводит Sent your prompt to the background session (<id>); opening it… перед подключением. claude -p --resume <session> "prompt", введённый в терминале, делает то же самое, поэтому -p не делает этот запуск неинтерактивным.

    Claude Code не открывает сессию, если командная строка содержит что-либо из следующего:

    • Ввод или вывод через конвейер или перенаправление
    • Флаги, которые настраивают сессию, такие как --permission-mode, --model или --settings
    • Флаги, которые читают вывод, такие как --output-format json или --json-schema
    • Флаги, которые ограничивают или перематывают запуск, такие как --max-turns или --max-budget-usd

    В любом из этих случаев, или когда представление агентов отключено, Claude Code ничего не отправляет и завершается со статусом 1, выводя сообщение о том, что сессия выполняется в фоне, вместе с командой claude attach <id>, которая её открывает, или предлагая найти её в claude agents, если не удаётся определить ID. Добавьте --fork-session, чтобы вместо этого возобновить копию диалога. Чтобы продолжить сам диалог в собственной сессии с применением ваших флагов, запустите claude stop <id>, а затем повторите команду.

    Промпт, начинающийся с / или !, не отправляется, как и любой промпт, пока сессия ожидает вашего ответа на вопрос. В обоих случаях Claude Code не открывает сессию, а сообщение содержит Your prompt was not sent to it с указанием причины.

  • Изнутри сессии: /resume перемещает ваш текущий диалог в фон и подключает этот терминал к выполняющейся сессии, выводя Opening "<title>", running in the background (<id>). Нажмите ← в пустом промпте, чтобы вернуться к представлению агентов, где также отображается покинутый вами диалог. Когда текущий диалог нельзя переместить в фон, например потому что вы уже подключены к фоновой сессии или сохранение сессий отключено, /resume выводит команду claude attach, которую нужно запустить вместо этого.

Что восстанавливает возобновлённая сессия

Когда Claude Code загружает диалог из его транскрипта, возобновлённая сессия восстанавливает диалог вместе с сохранённым в нём состоянием:

  • История диалога: полная история, включая вызовы инструментов и их результаты. Инструмент, который всё ещё выполнялся, когда предыдущий процесс завершился, например при сбое, не завершается и не запускается снова при возобновлении. Claude видит вызов, помеченный как прерванный до записи его результата, и получает указание проверить, сработал ли он, прежде чем запускать его снова, если только не установлена переменная CLAUDE_CODE_RESUME_INTERRUPTED_TURN. До версии 2.1.281 Claude Code либо удалял прерванный вызов из диалога, либо показывал его Claude как вызов, который вы прервали.
  • Модель: сессия продолжается на модели, которую она использовала, за исключением случаев, описанных в разделе Выбор модели.
  • Агент: сессия, запущенная с помощью --agent или настройки agent, продолжается как этот агент, сохраняя его ограничения инструментов и модель. Передайте --agent при возобновлении, чтобы выбрать другого агента; о системном промпте в обоих случаях см. Флаги системного промпта в возобновлённых диалогах. Claude Code ищет агента в двух местах: в исходном каталоге сессии, при условии что вы доверяете этому рабочему пространству, а затем в каталоге, из которого вы возобновляете сессию, поэтому агент уровня проекта загружается и при возобновлении из другого каталога. Если Claude Code не находит агента ни в одном из этих мест, сессия возобновляется с инструментами по умолчанию и показывает предупреждение с именем агента.
  • Режим разрешений: если вы возобновляете сессию из терминала с помощью claude --continue, claude --resume <session-id> или claude --resume <name>, когда имя соответствует одной сессии, без -p, Claude Code восстанавливает режим разрешений, в котором находилась сессия, за исключением случаев, описанных в разделе режим разрешений при возобновлении, который также охватывает средство выбора сессий, /resume и возобновление с помощью claude -p. Передайте --permission-mode или --dangerously-skip-permissions, чтобы переопределить восстановленный режим.
  • Активная цель: цель, которая всё ещё была активна при завершении сессии, переносится; её счётчик ходов, таймер и базовый уровень расхода токенов сбрасываются.
  • Запланированные задачи: задачи, срок которых не истёк, восстанавливаются. Фоновые задачи Bash и задачи мониторинга не восстанавливаются.
  • Фоновая работа: фоновый субагент, фоновая команда Bash или workflow, завершившиеся вместе с предыдущим процессом, отображаются в возобновлённом транскрипте как примечание о том, что они не завершились. Claude Code не начинает ход по этим примечаниям; Claude читает их вместе с вашим следующим промптом.

Не каждый флаг конфигурации из исходного запуска восстанавливается. Если сессия зависела от --mcp-config, --settings, --plugin-dir, --fallback-model или каталогов, добавленных с помощью --add-dir, передайте их снова при возобновлении; каталоги, добавленные во время сессии с помощью /add-dir, также не восстанавливаются, хотя средство выбора сессий всё ещё использует их для поиска сессии. Стандартные файлы настроек, такие как settings.json и settings.local.json, перечитываются при запуске, поэтому конфигурацию, которая находится в них, не нужно передавать снова. О --system-prompt и --append-system-prompt см. Флаги системного промпта в возобновлённых диалогах.

Режим разрешений при возобновлении

Режим разрешений, в котором Claude Code запускает возобновлённую сессию, зависит от способа возобновления. Описанные ниже случаи применяются, когда Claude Code загружает диалог из его транскрипта; когда вы вместо этого открываете фоновую сессию, которая всё ещё выполняется, эта сессия сохраняет свой текущий режим разрешений.

  • Терминал: claude --continue, claude --resume <session-id> или claude --resume <name>, когда имя соответствует одной сессии, без -p. Claude Code восстанавливает режим разрешений, в котором находилась сессия, за исключением случаев, указанных в таблице. Передайте --permission-mode или --dangerously-skip-permissions, чтобы переопределить восстановленный режим.
  • Неинтерактивный: claude -p --resume или claude -p --continue. Claude Code запускает выполнение в том режиме разрешений, в котором запустился бы новый запуск claude -p, за исключением того, что сессия, завершившаяся в режиме планирования, возобновляется в режиме планирования при условиях ниже.
  • VS Code: панель диалога расширения. Таблица охватывает только диалог, завершившийся в режиме планирования; об остальных случаях см. возобновление прошлых диалогов.
  • Средство выбора сессий при запуске: сессия, которую вы выбираете в средстве выбора сессий, независимо от того, открыли ли вы его с помощью одного claude --resume, claude --from-pr или имени, соответствующего нескольким сессиям. Claude Code запускает сессию в том режиме разрешений, в котором запустил бы новую сессию из той же командной строки, за исключением того, что сессия, завершившаяся в режиме планирования, возобновляется в режиме планирования, если вы не передали --permission-mode, --dangerously-skip-permissions или --fork-session. Никакой другой сохранённый режим разрешений не восстанавливается.
  • /resume внутри сессии, с аргументом или без: диалог, на который вы переключаетесь, продолжается в режиме разрешений вашей текущей сессии, за исключением того, что диалог, завершившийся в режиме планирования, возобновляется в режиме планирования, даже если вы запустили Claude Code с --permission-mode или --dangerously-skip-permissions. Если этот диалог уже открывался ранее в текущем запуске Claude Code, например диалог, с которого вы начали, или диалог, который вы покинули с помощью /clear или /resume, он вместо этого продолжается в вашем текущем режиме разрешений.

Для восстановления режима планирования в неинтерактивном пути и в VS Code требуется Claude Code v2.1.246 или более поздней версии. В каждой строке указаны режим разрешений, в котором завершилась сессия, путь возобновления (терминал, неинтерактивный или VS Code) и режим разрешений, в котором Claude Code запускает возобновлённую сессию.

Сессия завершилась в Как вы возобновляете Режим разрешений после возобновления
bypassPermissions Терминал Режим разрешений, в котором запустилась бы новая сессия. Чтобы снова обходить разрешения, включите этот режим при запуске с помощью одного из его флагов запуска или permissions.defaultMode: "bypassPermissions" в пользовательских настройках, --settings или управляемых настройках
plan Терминал Режим планирования. С --fork-session — режим разрешений, в котором запустилась бы новая сессия
auto Терминал auto, только если ваша учётная запись всё ещё соответствует требованиям авторежима
Manual Терминал Manual, если новая сессия запустилась бы в авторежиме согласно встроенному значению по умолчанию. Когда вступает в силу defaultMode из файла настроек, Claude Code вместо этого запускает возобновлённую сессию в этом режиме
plan Неинтерактивный, при условиях ниже Режим планирования
Любой режим Неинтерактивный, в любом другом случае Режим разрешений, в котором запустился бы новый запуск claude -p
plan VS Code Режим планирования, с исключениями, описанными на странице VS Code
Возобновление в режиме планирования с `-p`

Запуск claude -p --resume или claude -p --continue возобновляется в режиме планирования, только если выполняются все следующие условия:

Возобновление из сводки

На плане Pro или Max, когда вы возобновляете сессию, которая была неактивна примерно более часа и превышает 100 000 токенов, Claude Code восстанавливает диалог и затем открывает диалоговое окно до отправки вашего первого сообщения. К этому моменту кэш промптов сессии уже истёк, поэтому следующий запрос один раз обрабатывает полную историю независимо от того, какой вариант в диалоговом окне вы выберете.

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

  • Resume from summary: немедленно запускает /compact. Claude Code отправляет один запрос на суммирование по полной истории, затем заменяет историю сводкой, вашими самыми последними обменами сообщениями и не более чем пятью недавно прочитанными файлами. Последующие запросы содержат сводку вместо полной истории.
  • Resume full session as-is: загружает диалог без изменений. После отправки первого сообщения Claude Code повторно обрабатывает и повторно кэширует полную историю, а затем при последующих запросах считывает её из кэша, пока кэш остаётся активным.
  • Don't ask me again: возобновляет полную сессию и больше не показывает это диалоговое окно при будущих возобновлениях.

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

Где средство выбора сессий ищет сессии

Claude Code хранит сессии для каждого каталога проекта. По умолчанию средство выбора сессий показывает:

  • Сессии из текущего worktree, включая фоновые сессии, которые отмечены в списке как bg
  • Сессии, запущенные в других местах, которые добавили текущий каталог с помощью /add-dir

Используйте Ctrl+W, чтобы расширить список на все worktrees репозитория, или Ctrl+A, чтобы расширить его на все проекты на этой машине.

Сессии, первым промптом которых была команда /loop, не отображаются в средстве выбора, и claude --continue также их пропускает. Запуск /loop позже в диалоге не скрывает сессию. До версии 2.1.211 запуск /loop в начале диалога навсегда скрывал сессию из средства выбора.

Перемещение сессии с помощью /cd переносит её в хранилище проекта нового каталога, поэтому впоследствии она появляется в средстве выбора этого каталога. Начиная с версии 2.1.196, перемещённая сессия не отображается в средстве выбора старого каталога даже после сбоя или принудительного выхода. В более ранних версиях она также могла снова появиться в списке старого каталога после некорректного выхода, если старый путь содержал специальные символы, например подчёркивания.

Когда вы выбираете сессию из другого worktree того же репозитория, Claude Code возобновляет её на месте; если собственный worktree сессии больше не существует, Claude Code возобновляет её в вашем текущем каталоге. Когда вы выбираете сессию из несвязанного проекта, Claude Code вместо этого копирует в буфер обмена команду cd и команду возобновления. Если каталог этого проекта больше не существует, Claude Code возобновляет сессию в вашем текущем каталоге, а не копирует команду cd, которая завершилась бы ошибкой.

Возобновление по имени выполняет поиск в текущем репозитории и его worktrees. Обе формы ищут точное совпадение и возобновляют сессию напрямую, даже если она находится в другом worktree:

Команда Точное совпадение Неоднозначное имя
claude --resume <name> Возобновляет напрямую Открывает средство выбора сессий с именем, предварительно заполненным в качестве поискового запроса
/resume <name> Возобновляет напрямую Сообщает об ошибке; запустите /resume без аргумента, чтобы открыть средство выбора сессий

Назовите ваши сессии

Дайте сессиям описательные имена, чтобы их было легко найти в средстве выбора сессий и возобновить по имени. Это особенно важно, когда вы работаете над несколькими задачами параллельно.

Когда Как установить имя
При запуске claude -n auth-refactor
Во время сессии /rename auth-refactor. Имя также отображается на панели подсказок
Из средства выбора сессий Выделите сессию и нажмите Ctrl+R
При принятии плана Принятие плана в режиме плана дает сессии сгенерированное название на основе плана, если вы еще не назвали её
Из claude.ai или приложения Claude Переименуйте сессию удаленного управления; Claude Code применяет то же имя в CLI. Требуется Claude Code v2.1.221 или позже
Из приложения для рабочего стола Переименуйте сессию в приложении для рабочего стола

После того как вы назовете сессию через маршрут CLI или из claude.ai, вернитесь к ней с помощью claude --resume <name> или /resume <name>; сессия приложения для рабочего стола возобновляется в приложении для рабочего стола. Смотрите Возобновить сессию, чтобы узнать, как разрешение имен работает в worktrees.

Когда вы запускаете или возобновляете интерактивную сессию с именем, которое уже использует другая активная сессия на этой машине, или переименовываете сессию в такое имя, Claude Code оставляет имя с сессией, которая его уже имеет, переименовывает вашу в вариант с двусловным суффиксом, например auth-refactor-graceful-unicorn, и сообщает вам об этом. Запустите /rename с новым именем, если вы предпочитаете выбрать его сами. До версии v2.1.232 обе сессии сохраняли имя.

В трех случаях Claude Code не переименовывает дубликат, поэтому вы все еще можете видеть две сессии с одинаковым именем в списках:

  • Он не проверяет сгенерированные AI названия или имена отображения по умолчанию.
  • Он не проверяет --name фоновой или -p сессии при запуске.
  • Он не может переименовать сессию в более ранней версии Claude Code.

Сессии, которые вы не назвали, все еще получают два ярлыка, которые назначает Claude Code. Только сгенерированное название работает как дескриптор возобновления:

  • Имя отображения по умолчанию: интерактивные сессии, которые вы никогда не назвали, все еще получают имя отображения по умолчанию при запуске. Требуется Claude Code v2.1.196 или позже. Значение по умолчанию объединяет имя рабочего каталога с двухсимвольным суффиксом, например my-app-3f, и идентифицирует сессию в списках запущенных сессий, таких как представление агента и вывод claude agents --json. Значение по умолчанию не является дескриптором возобновления. Если вы передадите его в claude --resume или /resume, Claude Code не найдет сессию. Именование сессии заменяет значение по умолчанию в этих списках, как и принятие плана.

  • Сгенерированное название: если вы не назовете сессию, Claude Code генерирует для неё название сессии. Название — это краткое резюме вашей первой подсказки, написанное фоновым запросом к небольшой/быстрой модели, обычно модели класса Haiku. Запуск claude -p, который вы запускаете непосредственно из оболочки или скрипта, не получает его.

    Принятие плана заменяет название первой подсказки на название на основе плана. Именование сессии также его заменяет.

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

    Вы можете передать любое название в claude --resume или /resume, и Claude Code разрешит его так же, как имя, которое вы установили.

Использование средства выбора сеансов

Запустите /resume внутри сеанса или claude --resume без аргументов, чтобы открыть интерактивное средство выбора сеансов. Используйте эти сочетания клавиш для навигации, поиска и расширения списка:

Сочетание клавиш Действие
↑ / ↓ или k / j Навигация между сессиями
→ / ← Развёртывание или свёртывание сгруппированных сеансов
Enter Возобновление выделенного сеанса
1–9 Возобновление сессии на соответствующей позиции в списке
Space Предпросмотр содержимого сеанса. Ctrl+V также работает на терминалах, которые не захватывают его как вставку
Ctrl+R Переименование выделенного сеанса
/ или любой печатный символ, кроме Space, j, k или цифры Вход в режим поиска и фильтрация сессий. Вставьте URL pull или merge request GitHub, GitHub Enterprise, GitLab или Bitbucket, чтобы найти сессию, которая его создала
Ctrl+A Показать сеансы из всех проектов на этой машине. Нажмите снова, чтобы вернуться к текущему репозиторию
Ctrl+W Показать сеансы из всех worktrees текущего репозитория. Нажмите снова, чтобы вернуться к текущему worktree. Отображается только в репозиториях с несколькими worktrees
Ctrl+B Фильтр к сеансам из текущей ветви git. Нажмите снова, чтобы показать все ветви
Esc Выход из средства выбора сеансов или режима поиска

Каждая строка показывает имя сеанса, если оно установлено, в противном случае автоматически сгенерированное название сеанса, сводку диалога или первую подсказку, а также время с момента последней активности, ветвь git и размер файла. Расширьте на все проекты с помощью Ctrl+A, чтобы также увидеть путь проекта каждого сеанса.

Сеансы, созданные с помощью /branch или --fork-session, получают свои собственные идентификаторы сеансов и отображаются как отдельные строки. Когда средство выбора находит более одной записи для одного и того же сеанса, оно группирует их под одной строкой. Нажмите → для развёртывания группы.

Если Claude Code не может загрузить выбранный вами сеанс из средства выбора claude --resume, он выводит Failed to resume the conversation с командой для повтора, а затем завершает работу с кодом 1. Из средства выбора /resume внутри сеанса Claude Code сообщает об ошибке, и ваш текущий диалог продолжает работать.

Создание ветви сеанса

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

Из активного сеанса запустите /branch с необязательным именем:

/branch try-streaming-approach

Если вы опустите имя, Claude Code назовёт новую ветвь в соответствии с первым запросом в диалоге. Начиная с версии v2.1.198 это также применяется после compaction; более ранние версии вместо этого использовали буквальное имя Branched conversation вместо того, чтобы смотреть дальше сводки compaction на исходный первый запрос.

Из командной строки объедините --continue или --resume с --fork-session:

claude --continue --fork-session

Подтверждение /branch выводит два ID сеанса: новую ветвь, в которой вы находитесь, и оригинал. Оригинал остаётся неизменным на диске и остаётся в средстве выбора сеансов; вернитесь к нему с помощью /resume <original-name> или передав его ID в /resume.

/branch копирует стенограмму и переключает запущенный процесс Claude Code на запись в неё. Это различие определяет, что наследует ветвь:

Состояние После /branch
История диалога Скопирована в ветвь до момента, когда вы запустили /branch
Разрешения "Allow for this session" Перенесены; ветвь работает в том же процессе, поэтому ваши существующие разрешения по-прежнему применяются. Если вы разветвляетесь в отдельный процесс с помощью --fork-session, новый процесс запускается без них, и вы повторно одобряете их там
Выполняющиеся фоновые подагенты и фоновые команды Bash Продолжают работать. Их вывод появляется в новой ветви, в которую вы переключились, а не в исходном сеансе
Соединение Remote Control Остаётся подключённым. Телефон или браузер, подключённый к сеансу, следует за вами в ветвь и продолжает получать там новые сообщения

Если вы возобновите один и тот же сеанс в двух терминалах без разветвления, сообщения из обоих будут чередоваться в одной стенограмме. Для перемотки на основе контрольных точек в одном сеансе см. Checkpointing.

Управление контекстом в сеансе

Эти команды управляют тем, что находится в окне контекста, не покидая сеанс:

  • /clear: начать заново с пустым контекстом. Claude Code сохраняет предыдущий диалог; возобновите его с помощью /resume, или, в том же процессе Claude Code, из записи предыдущего сеанса меню перемотки. Без аргументов новый диалог сохраняет имя, которое вы установили с помощью --name или /rename, но не автоматически сгенерированное название сеанса. Чтобы назвать диалог, который вы оставляете, передайте имя, как в /clear release-prep; новый диалог затем начинается без имени
  • /compact [instructions]: заменить историю сводкой, опционально сосредоточенной на том, что вы указали
  • /context: показать, что в настоящее время потребляет контекст

О том, как уплотнение взаимодействует с CLAUDE.md, skills и правилами, см. руководство по окну контекста. Для стратегий о том, когда очищать или уплотнять, см. Best practices.

Экспорт и поиск данных сеанса

Запустите /export, чтобы открыть меню, которое позволяет скопировать текущий диалог в буфер обмена или сохранить его как простой текстовый файл с сообщениями и выводом инструментов, отображаемыми как читаемый текст. Передайте имя файла для прямой записи в этот файл.

Доступ к диалогам из скриптов

/export создает отформатированную стенограмму для чтения человеком. Интерфейсы ниже создают структурированные данные для анализа скриптом: результат JSON из запуска, путь к файлу стенограммы сеанса или живой поток событий. Выбирайте в зависимости от того, что запускает скрипт:

  • Запустить Claude один раз и захватить результат: вызовите claude -p с --output-format json или stream-json, чтобы захватить результат, ID сеанса, использование и стоимость неинтерактивного запуска как структурированный JSON.
  • Задать вопрос существующему сеансу: передайте ID сеанса в claude -p --resume, чтобы отправить дополнительный запрос, например запрос на резюме, и захватить структурированный ответ.
  • Реагировать на события сеанса: прочитайте поле transcript_path, которое получают hooks и команды строки состояния в качестве входных данных. Hook SessionEnd может архивировать стенограмму при завершении сеанса.
  • Встроить Claude в приложение TypeScript или Python: используйте Agent SDK для получения каждого сообщения программным способом.

Пример ниже использует второй интерфейс. Он отправляет дополнительный запрос существующему сеансу и читает ответ с помощью jq:

claude -p --resume <session-id> --output-format json "summarize what we changed" | jq -r '.result'

Где хранятся стенограммы

По умолчанию Claude Code хранит стенограммы как JSONL в ~/.claude/projects/<project>/<session-id>.jsonl, где <project> — это путь вашего рабочего каталога с заменой не буквенно-цифровых символов на -. Для рабочего каталога, преобразованное имя которого превышает 200 символов, Claude Code усекает имя до 200 символов и добавляет хеш полного пути, чтобы имя каталога оставалось в пределах ограничений файловой системы.

Каждая строка — это объект JSON для сообщения, использования инструмента или записи метаданных. Формат записи является внутренним для Claude Code и изменяется между версиями, поэтому скрипты, которые анализируют эти файлы напрямую, могут сломаться при любом выпуске. Чтобы работать с данными сеанса, используйте /export или интерфейсы скриптов вместо этого.

Местоположение, сохранение и поведение записи настраиваются:

Для Установить Где
Переместить хранилище с ~/.claude CLAUDE_CONFIG_DIR Переменная окружения
Назвать каталог <project> самостоятельно CLAUDE_CODE_PROJECT_DIR_NAME Переменная окружения
Изменить сохранение на 30 дней cleanupPeriodDays settings.json
Установить ограничение по возрасту для стенограмм Claude Desktop и Cowork desktopSessionCleanupPeriodDays Пользовательские параметры, управляемые параметры или --settings
Ограничить рост размера файла транскрипта сессии -p или Agent SDK CLAUDE_CODE_TRANSCRIPT_LOCAL_GC Переменная окружения
Подавить запись стенограмм во всех режимах CLAUDE_CODE_SKIP_PROMPT_HISTORY Переменная окружения
Подавить запись для одного неинтерактивного запуска --no-session-persistence Флаг CLI с claude -p

Удалить данные сеанса

Транскрипты удаляются в соответствии с правилами очистки сохранения. Чтобы удалить транскрипты проекта и связанное состояние раньше, запустите claude purge. Если вы удалите фоновую сессию с помощью claude rm <id>, ее транскрипт остается на диске и остается доступным через claude --resume.

Назвать каталог проекта самостоятельно

По умолчанию Claude Code получает имя <project> из полного пути рабочего каталога. Чтобы выбрать имя самостоятельно, установите CLAUDE_CODE_PROJECT_DIR_NAME вместе с CLAUDE_CONFIG_DIR. Claude Code затем хранит стенограммы этого сеанса и автоматическую память под вашим именем. Это подходит для хоста, который встраивает Claude Code и дает каждому сеансу свой собственный каталог конфигурации. Требуется Claude Code v2.1.234 или позже.

Например, этот запуск хранит данные арендатора A в /srv/tenant-a и называет его каталог проекта work:

CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude

Claude Code записывает стенограммы сеанса в /srv/tenant-a/projects/work/ и его автоматическую память в /srv/tenant-a/projects/work/memory/, независимо от того, какой рабочий каталог используется.

При установке применяются три правила:

  • Установите CLAUDE_CONFIG_DIR также: имя не зависит от рабочего каталога, поэтому при использовании по умолчанию ~/.claude оно объединит стенограммы и автоматическую память каждого проекта в один каталог. Claude Code игнорирует CLAUDE_CODE_PROJECT_DIR_NAME, когда CLAUDE_CONFIG_DIR не установлен.
  • Используйте 1-64 буквы, цифры, дефисы или подчеркивания: не используйте имя устройства Windows, такое как con. Claude Code игнорирует любое другое значение и использует полученное имя.
  • Установите его в окружении оболочки, которая запускает claude: Claude Code читает его один раз при запуске из этого окружения, поэтому блок env в файле параметров не может его установить.

После того как вы назвали каталог проекта каталога конфигурации, продолжайте запускать с этим именем. Если вы запустите Claude Code с тем же CLAUDE_CONFIG_DIR, но без CLAUDE_CODE_PROJECT_DIR_NAME, он снова прочитает и запишет полученный каталог. Сеансы, хранящиеся под вашим именем, остаются на диске: нажмите Ctrl+A в средстве выбора сеанса, чтобы перечислить сеансы из каждого каталога проекта под этим каталогом конфигурации, включая закрепленный, и в любом случае claude --resume <session-id> находит сеанс, хранящийся под любым именем.

См. также

На этих страницах рассматриваются связанные механики сеансов и параллелизма:

  • Worktrees: запуск изолированных параллельных сеансов на отдельных ветвях
  • Checkpointing: перемотка кода и диалога к более ранней точке
  • Context window: что заполняет контекст и что выживает при уплотнении
  • Non-interactive mode: поведение сеанса в claude -p