Где Claude Code хранит свой scratchpad и почему он исчезает

Каждая сессия Claude Code объявляет папку scratchpad и больше никогда о ней не вспоминает. Вот точный путь на macOS, Linux и Windows, что лежит рядом, почему перезагрузка или очистка временных файлов её стирает, что можно и что нельзя настроить, и единственное правило, которое мы дали семи агентам, пишущим туда каждую ночь.

Каждая сессия Claude Code начинается со строки, которую вы наверняка пробегаете глазами. Наша сегодня вечером выглядит так:

Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad

Потом CLI о ней больше не упоминает. Ни одна команда её не выводит, ни одна панель её не открывает, и в тот день, когда вы пойдёте искать CSV, который агент, по его словам, туда записал, папки может уже не быть.

Мы запускаем семь агентов по расписанию на Mac mini каждую ночь, и каждый из них пишет в эту папку. Поэтому мы пошли и посмотрели, что это такое, где она живёт на каждой системе, что её удаляет и что мы говорим агентам с этим делать. Всё, что ниже, проверено на Claude Code 2.1.278 19 сентября 2026 года и на issues в GitHub, которые открыли люди, потерявшие в ней работу. То, что можно настроить, с тех пор изменилось, поэтому эта часть была перепроверена на Claude Code 2.1.314 3 ноября 2026 года.

Что Claude Code говорит агенту

Строка является частью системного промпта. Инструкция, которая идёт за ней в текущей версии, говорит, что агент должен всегда использовать эту папку для временных файлов, то есть для промежуточных результатов, скриптов и выводов, которым не место в проекте, вместо /tmp или любой другой временной папки системы; что она привязана к сессии и изолирована от проекта; что её обычно можно использовать без запросов разрешения; и что /tmp следует использовать, только если вы явно об этом попросите.

Последняя часть как раз полезна для вас. Файлы, записанные внутри scratchpad, не вызывают диалог разрешения на запись, и именно поэтому агент кладёт туда свои вспомогательные скрипты и экспорты, а не спрашивает вас каждый раз. По той же причине вас никогда не спрашивают и никогда не говорят, куда они ушли.

Если вам нужен путь в запущенной сессии, спросите агента. На «Выведи свою папку scratchpad» он отвечает из системного промпта, ничего не запуская.

Путь, система за системой

Папка лежит во временной папке операционной системы, а её имя кодирует, кто вы, в каком проекте вы были и какая это была сессия.

На macOS и Linux:

/tmp/claude-<uid>/<путь проекта, слэши заменены на дефисы>/<id сессии>/scratchpad

На Mac /tmp является ссылкой на /private/tmp, поэтому та же папка показывается как /private/tmp/claude-501/…. Число, это ваш идентификатор пользователя, то, что выводит id -u: 501 для первой учётной записи на Mac, 1000 в большинстве дистрибутивов Linux, 0 для root. Отчёт с Linux, который мы цитируем ниже, показывает /tmp/claude-0/, потому что пайплайн работал от root в контейнере. Issues, открытые ранее в 2026 году, показывают /tmp/claude/<slug проекта>/… вообще без uid, так что суффикс добавили по ходу дела. Если у вас старая сборка, уберите его.

На Windows, как сообщалось на Windows 11 в июле 2026 года:

%TEMP%\claude\<slug проекта>\<id сессии>\scratchpad

что обычно разворачивается в C:\Users\<вы>\AppData\Local\Temp\claude\…. Путь выводится из переменной TEMP, поэтому если вы направите TEMP в другое место, scratchpad последует за ней, если только не задана CLAUDE_CODE_TMPDIR: она имеет приоритет.

Slug проекта, это ваш рабочий каталог, в котором каждый слэш заменён на дефис. Наш репозиторий живёт в /Users/jbchauvin/Projets/AgentsRoom, поэтому slug равен -Users-jbchauvin-Projets-AgentsRoom. Одна папка на проект, затем одна папка на сессию внутри неё.

Чтобы вывести все папки сессий, которые у вас ещё остались для текущего пользователя на Mac или машине с Linux:

ls /tmp/claude-$(id -u)/

Что лежит рядом

Папка сессии, это не только scratchpad. На машине, которая запускает наших ночных агентов, семь из девяти папок сессий за день содержат две записи: scratchpad и tasks. В папку tasks попадает вывод фоновых задач, команд, которые агент запускает отдельно и читает позже.

Есть и третье место, о котором стоит знать, и оно вообще не во временной папке: ~/.claude/projects/<slug проекта>/<id сессии>/tool-results/. Когда инструмент возвращает больше, чем может вместить контекст, Claude Code сохраняет полный вывод туда и отдаёт агенту путь. Сегодня вечером экспорт Search Console на 68 КБ ушёл туда, а не в scratchpad. Это расположение постоянное, рядом с транскриптом сессии. Так что разделение такое: транскрипты и слишком большие выводы инструментов под ~/.claude, который остаётся; скрипты, промежуточные файлы и вывод фоновых задач во временной папке, которая не остаётся.

Почему он исчезает

Потому что временная папка означает «можно удалять» для любой операционной системы, и ничто в Claude Code с этим не спорит.

На Linux systemd-tmpfiles применяет то, что написано в /usr/lib/tmpfiles.d/tmp.conf. Один пользователь потерял весь вывод 24-часового пайплайна генерации данных, включая вердикты ревью, скрипты и виртуальное окружение Python, когда хост перезагрузился: правило в том контейнере Debian было D /tmp 1777 root root 30d, которое пересоздаёт /tmp пустым при каждой загрузке. Это был Claude Code 2.1.260, и системный промпт ничего не говорил о недолговечности. Проверьте своё правило с помощью cat /usr/lib/tmpfiles.d/tmp.conf: строка D очищает при загрузке, возраст вроде 10d удаляет старые файлы по таймеру.

На Windows папка лежит под %TEMP%, который подметают «Контроль памяти» и «Очистка диска». В июле 2026 года кто-то запустил очистку диска, пока шли две сессии, и потерял git worktrees, в которых работали оба агента, включая незакоммиченные правки. Правки удалось восстановить только потому, что они ещё существовали в контексте разговора.

На macOS /private/tmp очищается при перезагрузке, а старые файлы система удаляет. На нашем Mac mini сегодня вечером /private/tmp/claude-501 содержит девять папок сессий для этого проекта, 452 файла и 25 МБ, и ничего старше сегодняшнего дня. Всё, что оставили там агенты предыдущих ночей, исчезло.

Ничто из этого не баг в том смысле, что что-то сработало неправильно. Папка находится ровно там, где говорит CLI, а операционная система сделала ровно то, что она делает с временными папками. Разрыв в том, что промпт называет её scratchpad, а scratchpad звучит как нечто, что хранят.

Что можно настроить, а что нельзя

Начиная с Claude Code 2.1.314, что проверено 3 ноября 2026 года, scratchpad перемещает одна переменная: CLAUDE_CODE_TMPDIR. Claude Code строит папку как <CLAUDE_CODE_TMPDIR>/claude-<uid>/<slug проекта>/<id сессии>/scratchpad, с claude вместо claude-<uid> на Windows. Без переменной корнем служит /tmp на macOS, что бы ни было в TMPDIR, и временная папка системы на Linux и Windows, поэтому TMPDIR на Linux и TEMP на Windows по-прежнему её перемещают. Задайте её в своём shell или в блоке env файла ~/.claude/settings.json: в настройках проекта и в локальных настройках Claude Code её игнорирует. Направьте её на свою папку вне временной папки, и scratchpad переживёт перезагрузки и очистки.

Когда мы впервые писали эту статью, на 2.1.278, всё было иначе: переменная существовала для других временных файлов, и про неё сообщали, что scratchpad она не перемещает, а запросы на переменную CLAUDE_CODE_SCRATCHPAD_DIR и на расположение по умолчанию под ~/.claude/scratchpad/ были закрыты как не запланированные.

Claude Code также проверяет, кому принадлежит эта папка. Если /tmp/claude-<uid> создала другая учётная запись, он отказывается её использовать и выводит Temp directory /tmp/claude-1000 is owned by uid 0, expected 1000, а затем Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it. Удалите папку от имени её владельца, когда ни одна сессия её больше не использует, или задайте переменную.

Ещё две вещи работают без всякой настройки. Возобновлённая сессия (claude --resume) сохраняет свой id сессии, поэтому ищет ту же папку и находит её, если ничто не удалило её за это время. И вы можете попросить агента, простыми словами, записать нужный файл в постоянное место. В этом и состоит всё наше решение.

Правило, которое мы дали нашим ночным агентам

Семь агентов стартуют в 20:00 на одной машине: SEO, продукт, соцсети, fixer, документалист, отчёт CEO и rapporteur, который в 22:00 отправляет по почте сводку за ночь. Каждый производит много промежуточного материала: экспорты Search Console, отфильтрованный JSON, скрипты, которые считают строки в двадцати локалях. Всё это идёт в scratchpad, намеренно, потому что ничему из этого не место в репозитории и ничто из этого не должно вызывать запрос разрешения в два часа ночи.

Правило в каждом промпте, это одно предложение: scratchpad хранит то, что нужно следующей команде, репозиторий хранит то, что нужно следующей ночи. Всё, что агент захочет прочитать завтра, его отчёт, его маркер запуска, файл, который он редактировал, записывается под reports/nuit/<дата>/ и коммитится сразу, как только готово, а не в конце запуска. Агент, которого прервали посреди задачи, оставляет частичный отчёт в git и 25 МБ рабочих файлов, по которым никто не будет скучать.

Зеркальное отражение этого правила, то, чему пользователь Linux научился на горьком опыте: никогда не позволяйте длинной задаче накапливать свою единственную копию в scratchpad. Если пайплайн работает целый день, его выводы идут по пути, который выбрали вы, а scratchpad хранит вспомогательные файлы.

Открыть папку, не выходя из приложения

Если вы запускаете Claude Code внутри AgentsRoom, File > Open File (Cmd/Ctrl+O) открывает любой файл этой папки в предпросмотре, помеченный как находящийся вне проекта, чтобы вы не приняли его за отслеживаемый. Это самый быстрый способ, который мы нашли, чтобы прочитать экспорт, только что созданный агентом, не вставляя путь /private/tmp в терминал.

И чтобы замкнуть круг с названием: Scratchpad в AgentsRoom, это другое. Это редактор промптов, встроенный в композер агента, где длинный промпт пишется и хранится как черновик для каждого агента между сессиями. То же слово, выбранное до того, как Claude Code использовал его для папки. Одно, это место, где вы пишете агенту; другое, это место, где агент пишет для себя.

Часто задаваемые вопросы

Где находится scratchpad Claude Code на macOS и Linux?

Во временной папке системы: /tmp/claude-<ваш uid>/<путь проекта, слэши заменены на дефисы>/<id сессии>/scratchpad. На macOS та же папка показывается как /private/tmp/claude-501/…, потому что /tmp является ссылкой на /private/tmp. Ваш uid выводит id -u: 501 для первого пользователя на Mac, 1000 в большинстве дистрибутивов Linux, 0 для root. Старые версии использовали /tmp/claude/ без суффикса uid.

Где находится scratchpad Claude Code на Windows?

В папке TEMP: %TEMP%\claude\<slug проекта>\<id сессии>\scratchpad, что обычно разворачивается в C:\Users\<вы>\AppData\Local\Temp\claude\…. Изменение переменной окружения TEMP перемещает его, как и CLAUDE_CODE_TMPDIR, которая имеет приоритет над TEMP.

Почему мой scratchpad Claude Code исчез?

Потому что он живёт во временной папке, а любая операционная система считает временную папку безопасной для удаления. На Linux systemd-tmpfiles применяет правило из /usr/lib/tmpfiles.d/tmp.conf, часто это очистка при загрузке или через некоторое число дней. macOS очищает /private/tmp при перезагрузке и удаляет старые файлы. На Windows «Контроль памяти» и «Очистка диска» подметают %TEMP%. Ничто в Claude Code не защищает папку от всего этого.

Можно ли изменить, куда Claude Code кладёт свой scratchpad?

Да, с помощью переменной окружения CLAUDE_CODE_TMPDIR. Claude Code добавляет к ней claude-<ваш uid> (claude на Windows), и scratchpad следует за ней: проверено в Claude Code 2.1.314 3 ноября 2026 года, тогда как в 2.1.278 переменная его не перемещала. Задайте её в своём shell или в блоке env файла ~/.claude/settings.json, потому что в настройках проекта и в локальных настройках Claude Code её игнорирует. Без неё корнем служит /tmp на macOS, что бы ни было в TMPDIR, и временная папка системы на Linux (TMPDIR) и Windows (TEMP). Направьте её на свою папку вне временной папки, и scratchpad переживёт перезагрузки и очистки.

Почему Claude Code пишет, что его временная папка принадлежит другому uid?

Claude Code отказывается использовать временную папку, которая принадлежит другой учётной записи. Сообщение гласит: Temp directory /tmp/claude-1000 is owned by uid 0, expected 1000, затем Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it. Папка /tmp/claude-<ваш uid> существует, но её раньше вас создал процесс, запущенный от имени другого пользователя, здесь root, у которого uid 0. Два решения: когда ни одна сессия Claude Code её больше не использует, удалите эту папку от имени её владельца (sudo rm -rf /tmp/claude-1000) или укажите в CLAUDE_CODE_TMPDIR свою папку. Проверено в Claude Code 2.1.314.

Scratchpad, это то же самое, что ~/.claude/projects?

Нет. В ~/.claude/projects/<slug проекта>/ лежат транскрипты сессий и, для каждой сессии, папка tool-results, куда сохраняются слишком большие выводы инструментов. Это расположение постоянное. Scratchpad во временной папке, это рабочее пространство, которое агент использует для скриптов и промежуточных файлов, и оно недолговечное.

Это Scratchpad из AgentsRoom?

То же слово, другая вещь. Scratchpad в AgentsRoom, это редактор промптов, встроенный в композер агента, где вы пишете и храните черновик для каждого агента. Scratchpad в Claude Code, это папка, которую CLI создаёт для каждой сессии. AgentsRoom может открыть любой файл этой папки через File > Open File, и он помечен как находящийся вне проекта.

Скачать AgentsRoom

Запускай всех своих ИИ-агентов во всех проектах из одного окна.

БесплатноСкачать AgentsRoom

Приложение-компаньон: следите за агентами на ходу

Используйте Claude, Codex, Antigravity CLI или другого поставщика AI.

Установить расширение
Chrome Web Store

Отправляйте баги и запросы прямо в ваш публичный бэклог.

Мульти-проекты
Мульти-провайдер
Мульти-агенты
Статус онлайн
Diff и коммиты
Мобильное приложение
Live-превью
Команды агентов
Тесты в браузере
Разработка от backlog
Библиотека промптов
Библиотека навыков
Все функции

Читать далее