# Как сохранить историю Claude Code: срок хранения сессий и архив

> Разбираем, где Claude Code хранит сессии и как работает cleanupPeriodDays. Настройте срок хранения и создайте внешний автоматический архив истории.

Source: https://ailoot.ai/blog/ru/claude-code-history-30-days/
Canonical: https://ailoot.ai/blog/ru/claude-code-history-30-days/
Language: ru
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-056
Revision: sha256-663e9e0bf9d66c15d4917cc76c76ac311263714d50d540e997076b5cc610e445


Документация Ailoot доступна на [сайте](https://ailoot.ai/docs/).

## Действительно ли Claude Code удаляет историю сессий?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Да. При запуске Claude Code удаляет файлы сессий, которые старше 30 дней. За срок хранения отвечает параметр `cleanupPeriodDays` в `~/.claude/settings.json`; если его не задавать, применяется значение `30`. Удаление происходит без предупреждения и запроса подтверждения, а встроенного восстановления нет. Anthropic указывает в документации, что этот параметр задаёт срок хранения транскриптов.

</div>

Вы запускаете Claude Code, чтобы продолжить работу над сессией двухмесячной давности, но файла уже нет. Такое поведение предусмотрено механизмом очистки и само по себе не означает сбой.

Срок хранения задаёт параметр `cleanupPeriodDays`. Значение по умолчанию — `30`; при запуске Claude Code проверяет файлы истории и удаляет те, что старше установленного срока. Если настройка не указана в `~/.claude/settings.json`, действует значение по умолчанию.

## Где Claude Code сохраняет сессии?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Файлы сессий обычно находятся в `~/.claude/projects/<путь-проекта>/<id-сессии>.jsonl`. Каталог проекта отражает путь к рабочей папке, в которой запускался Claude Code: разделители пути заменяются дефисами. В файлах `.jsonl` хранится диалог в формате JSON Lines. Именно эти файлы затрагивает очистка.

</div>

Проверить, какие проектные каталоги есть в истории, можно в терминале:

```bash
ls ~/.claude/projects/
```

Каждая подпапка соответствует проектному пути. Например, путь `/Users/you/dev/shop` кодируется как `-Users-you-dev-shop`. Посмотреть файлы сессий можно так:

```bash
ls -lt ~/.claude/projects/-Users-you-dev-shop/
# 3f8a1c2e-....jsonl   ← одна сессия хранится в отдельном файле
# a91b7d40-....jsonl
```

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

## Почему Anthropic ограничивает срок хранения транскриптов?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Документация Anthropic описывает настройку срока хранения транскриптов через `cleanupPeriodDays`. Файлы на компьютере могут содержать исходный код и другие чувствительные данные, поэтому длительное хранение требует учитывать риски доступа к устройству и диску. Значение по умолчанию составляет 30 дней.

</div>

Перед тем как увеличивать срок или отключать очистку, учтите, какие сведения могут попасть в транскрипт. Если в ходе сессии обсуждались секреты или конфиденциальный код, они могут сохраниться в локальной истории. Чем дольше такие файлы остаются на устройстве, тем дольше они требуют защиты.

Anthropic предоставляет настройку срока хранения истории в документации Claude Code. Выбирая более длительный срок, учитывайте необходимость защищать сохранённые файлы и ограничивать доступ к ним.

## Может ли резервное копирование повлиять на очистку?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

При настройке резервного копирования не изменяйте содержимое исходных файлов истории без необходимости. Копируйте их в отдельное место, чтобы архив хранился независимо от каталога `~/.claude/projects/` и автоматической очистки Claude Code.

</div>

Для резервной копии используйте отдельное расположение. Сервисы синхронизации, `rsync`, редакторы и другие программы могут менять метаданные файлов при копировании или восстановлении. Не полагайтесь на дату изменения как на точное отражение того, когда вы в последний раз работали с сессией.

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

**Резервная копия должна находиться вне `~/.claude/projects/`.** Тогда встроенная очистка Claude Code не удалит архив вместе с исходными файлами. Далее настроим копирование именно в отдельный каталог.

## Как приостановить автоматическое удаление истории?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

В `~/.claude/settings.json` можно задать большой срок хранения с помощью `cleanupPeriodDays`, например `3650` дней. Это сохранит сессии в пределах установленного срока. Настройка влияет только на ещё существующие файлы и не возвращает уже удалённые записи.

</div>

Чтобы изменить срок хранения:

1. Откройте `~/.claude/settings.json`. Если файла ещё нет, создайте его.
2. Добавьте параметр `cleanupPeriodDays` с выбранным сроком:

```json
{
  "cleanupPeriodDays": 3650
}
```

3. Сохраните изменения. Настройка вступит в действие при следующем запуске Claude Code.

`3650` дней — примерно десять лет. Если достаточно хранить историю в течение года, укажите `365`. Проверить значение в файле можно командой:

```bash
grep cleanupPeriodDays ~/.claude/settings.json
```

Увеличение срока хранения не восстанавливает то, что уже удалено. Настройте параметр до очередной очистки, если хотите сохранить имеющиеся сессии. Другие рекомендации по защите проекта при работе с Claude Code собраны в [руководстве по безопасной настройке](https://ailoot.ai/blog/ru/claude-code-safe-overnight-setup/).

## Как автоматически сохранять историю в отдельный архив?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Копируйте файлы сессий в каталог за пределами `~/.claude/projects/`. Команда `rsync -a` позволяет переносить новые файлы, сохраняя структуру каталогов и метки времени. Запланируйте её ежедневный запуск через launchd в macOS или cron в Linux, чтобы архив регулярно обновлялся.

</div>

Отдельный архив позволит сохранить копии независимо от очистки в Claude Code. Настройте его так:

1. Создайте каталог вне управляемой папки:

```bash
mkdir -p ~/claude-history-archive
```

2. Скопируйте туда текущие файлы сессий. Ключ `-a` сохраняет структуру каталогов и метки времени:

```bash
rsync -a ~/.claude/projects/ ~/claude-history-archive/
```

3. Настройте ежедневный запуск. В macOS для этого можно использовать launchd. Создайте файл `~/Library/LaunchAgents/com.example.claudearchive.plist`:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.example.claudearchive</string>
  <key>ProgramArguments</key>
  <array>
    <string>/usr/bin/rsync</string>
    <string>-a</string>
    <string>/Users/ТВОЁ_ИМЯ/.claude/projects/</string>
    <string>/Users/ТВОЁ_ИМЯ/claude-history-archive/</string>
  </array>
  <key>StartInterval</key>
  <integer>86400</integer>
</dict>
</plist>
```

4. Загрузите задание, чтобы оно выполнялось в фоне:

```bash
launchctl load ~/Library/LaunchAgents/com.example.claudearchive.plist
```

В Linux добавьте задание в crontab с помощью `crontab -e`:

```bash
0 3 * * * rsync -a ~/.claude/projects/ ~/claude-history-archive/
```

Архив вне `~/.claude/projects/` защищён от этого механизма очистки только для успешно скопированных файлов. Он всё ещё уязвим к отказу диска, случайному удалению и ошибке копирования. Исходники остаются на месте; копию проверяйте отдельно.

## Как сделать архив сессий доступным для поиска?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Репозиторий Git в каталоге архива позволит отслеживать изменения и искать по сохранённым файлам. Для истории версий выполните `git init`, а при обновлении архива добавляйте изменившиеся файлы и создавайте коммиты. Поиск по тексту можно делать через `grep`, а извлекать данные из `.jsonl` — через `jq`.

</div>

Само по себе накопление файлов не всегда удобно. Добавьте версионирование и поиск.

Сначала создайте Git-репозиторий в каталоге архива:

```bash
cd ~/claude-history-archive
git init
git add -A && git commit -m "Первый снимок истории Claude Code"
```

Включите `git add -A && git commit` в ежедневное задание вместе с `rsync`. Так можно отслеживать изменения архива и при необходимости возвращаться к прежним версиям файлов.

Формат `.jsonl` состоит из JSON-объектов, записанных построчно. Например, найти файлы с упоминанием темы можно командой:

```bash
grep -rl "миграция базы" ~/claude-history-archive/
```

Чтобы извлечь содержимое сообщений пользователя из файла сессии, используйте `jq`:

```bash
jq -r 'select(.type=="user") | .message.content' session.jsonl
```

Так архив становится доступной для поиска коллекцией истории сессий. О работе с контекстом и расходом токенов в Claude Code читайте в [отдельном руководстве](https://ailoot.ai/blog/ru/where-claude-code-tokens-go/).

## Можно ли вернуть удалённые сессии?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Встроенной функции восстановления удалённых сессий нет. Вернуть файл можно только из внешней копии, созданной до удаления: например, из Time Machine, истории версий OneDrive или Dropbox либо из ручного резервного копирования. Если копий не сохранилось, восстановить сессию штатными средствами Claude Code нельзя.

</div>

У Claude Code нет отдельной корзины или функции отката для удалённых транскриптов. Если файл удалён, проверьте, были ли заранее настроены резервные копии:

1. **Time Machine в macOS** — если снимок включает `~/.claude/projects/`, откройте версию за дату до удаления.
2. **История версий OneDrive или Dropbox** — если каталог синхронизировался с включённым журналом версий, проверьте сохранённые копии. Имейте в виду, что синхронизация может менять метаданные файлов.
3. **Ручные копии** — проверьте каталоги, куда вы ранее копировали данные с помощью `rsync` или `cp`.

Если резервных копий нет, средствами Claude Code вернуть сессию не получится. Поэтому настройте срок хранения и внешний архив заранее, пока нужные файлы доступны.

## Какое значение задать для cleanupPeriodDays?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Выберите срок с учётом того, как долго вам нужна история и какие данные в ней могут храниться. `30` дней — значение по умолчанию, `365` — примерно год, `3650` — примерно десять лет. Для полного отказа от сохранения истории можно использовать `CLAUDE_CODE_SKIP_PROMPT_HISTORY` или параметр `--no-session-persistence`, если это соответствует вашему сценарию.

</div>

Параметр задаёт период хранения. Сопоставьте варианты со своими требованиями:

| Значение | Результат | Подходящий сценарий |
|----|----|----|
| `30` (по умолчанию) | Удаление сессий, срок которых превышает 30 дней | История не нужна; важно ограничить срок хранения чувствительных данных |
| `365` | Хранение в течение года | Нужна история недавней работы без длительного архива |
| `3650` | Хранение примерно десять лет | Требуется длительный срок; дополнительно настройте внешний архив |
| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Отключает запись истории промптов на диск | Историю не нужно сохранять, приоритет — минимизация локальных данных |

Длительное хранение означает, что транскрипты с потенциально конфиденциальными данными остаются на устройстве. Защитите диск шифрованием, например FileVault в macOS, ограничьте доступ к архиву и не размещайте его в общедоступном облаке или открытом Git-репозитории. Дополнительные рекомендации по защите данных приведены в [руководстве по безопасности Claude Code](https://ailoot.ai/blog/ru/claude-code-data-access-safety/).

## Что сделать сегодня: список действий

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Ключевой вывод раздела">

**Главное**

Увеличьте хранение через `cleanupPeriodDays: 3650`, копируйте сессии вне `~/.claude/projects/` и сохраняйте версии. От очистки защищены только успешно скопированные файлы. При успешном ежедневном расписании до суток последних изменений остаются без архива; пропуски и ошибки увеличивают разрыв. Копия на том же диске не защищает от его отказа.

</div>

Настройте сохранение по пунктам:

1. Укажите `cleanupPeriodDays: 3650` в `~/.claude/settings.json`, если вам нужен длительный срок хранения.
2. Создайте `~/claude-history-archive` за пределами управляемого каталога и выполните начальное копирование командой `rsync -a`.
3. Запланируйте ежедневный запуск через launchd в macOS или cron в Linux.
4. Инициализируйте Git в каталоге архива и включите `git add -A && git commit` в то же задание.
5. Убедитесь, что архив хранится на зашифрованном диске и не доступен публично через облако.
6. Проверяйте успех каждого запуска копирования, просматривайте свежую сессию и периодически восстанавливайте пример в отдельную временную папку, проверяя читаемость.
7. Для защиты от потери устройства или диска храните независимую резервную копию с подходящим доступом и испытывайте её восстановление. Git на том же диске не является независимой копией.

История сессий — один из способов сохранять контекст работы с Claude Code. Другие материалы Ailoot доступны на [сайте](https://ailoot.ai/).

<div class="section" role="doc-bibliography" aria-label="Официальные источники">

### Официальные источники

- [Anthropic — настройки Claude Code, включая `cleanupPeriodDays`](https://code.claude.com/docs/en/settings)
- [Anthropic — что нового в Claude Code](https://code.claude.com/docs/en/whats-new)

</div>



Познакомиться с [Ailoot](https://ailoot.ai/).

## Вопросы и ответы

### Гарантирует ли ежедневный архив сохранность любой сессии?

Нет. От очистки управляемой папки защищены только успешно скопированные файлы. При ежедневном успехе могут отсутствовать последние сутки изменений; ошибки увеличивают разрыв. Копия на том же диске может погибнуть вместе с оригиналом.

### Как проверить пригодность архива?

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


## Ailoot · Компания и портфель её проектов

Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
