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 한 대에서 예약된 에이전트 일곱을 돌리고, 각각이 그 폴더에 씁니다. 그래서 그것이 무엇인지, 각 시스템에서 어디에 있는지, 무엇이 그것을 지우는지, 에이전트에게 어떻게 다루라고 하는지를 직접 살펴봤습니다. 아래 내용은 모두 2026년 9월 19일 Claude Code 2.1.278에서, 그리고 거기서 작업을 잃은 사람들이 연 GitHub 이슈에서 확인한 것입니다.

Claude Code가 에이전트에게 말하는 것

이 줄은 시스템 프롬프트의 일부입니다. 현재 버전에서 그 뒤에 이어지는 지시는, 임시 파일, 즉 프로젝트에 속하지 않는 중간 결과, 스크립트, 출력에는 /tmp나 다른 시스템 임시 디렉터리 대신 항상 이 디렉터리를 쓰라는 것, 이 디렉터리는 세션 전용이며 프로젝트와 격리되어 있다는 것, 보통 권한 확인 없이 쓸 수 있다는 것, 그리고 /tmp는 여러분이 명시적으로 요청할 때만 쓰라는 것입니다.

여러분에게 쓸모 있는 것은 마지막 부분입니다. scratchpad 안에 쓰인 파일은 쓰기 권한 대화 상자를 띄우지 않으므로, 에이전트는 매번 여러분에게 묻는 대신 보조 스크립트와 내보내기 파일을 거기에 둡니다. 그래서 그것들이 어디로 갔는지 여러분이 한 번도 질문받지 않고, 한 번도 듣지 못하는 것이기도 합니다.

실행 중인 세션에서 경로를 알고 싶다면 에이전트에게 물어보세요. “네 scratchpad 디렉터리를 출력해 줘”는 아무것도 실행하지 않고 시스템 프롬프트에서 바로 답이 나옵니다.

경로, 시스템별로

이 폴더는 운영 체제의 임시 디렉터리 아래에 있고, 그 이름에는 여러분이 누구인지, 어느 프로젝트에 있었는지, 어느 세션이었는지가 담겨 있습니다.

macOS와 Linux에서는:

/tmp/claude-<uid>/<슬래시를 대시로 바꾼 프로젝트 경로>/<세션 id>/scratchpad

Mac에서는 /tmp/private/tmp로 가는 링크라서 같은 폴더가 /private/tmp/claude-501/… 로 표시됩니다. 숫자는 여러분의 사용자 id, 즉 id -u가 출력하는 값입니다: Mac의 첫 계정은 501, 대부분의 Linux 배포판은 1000, root는 0입니다. 아래에서 인용하는 Linux 사례는 /tmp/claude-0/을 보여 주는데, 파이프라인이 컨테이너 안에서 root로 돌았기 때문입니다. 2026년 초에 열린 이슈들에는 uid가 아예 없는 /tmp/claude/<프로젝트 slug>/…가 보이므로, 접미사는 중간에 추가된 것입니다. 오래된 빌드를 쓴다면 빼고 보세요.

Windows에서는, 2026년 7월 Windows 11에서 보고된 대로:

%TEMP%\claude\<프로젝트 slug>\<세션 id>\scratchpad

이는 보통 C:\Users\<사용자>\AppData\Local\Temp\claude\… 로 풀립니다. 경로는 TEMP 변수에서 파생되므로, TEMP를 다른 곳으로 돌리면 scratchpad도 따라갑니다.

프로젝트 slug는 작업 디렉터리의 슬래시를 모두 대시로 바꾼 것입니다. 우리 저장소는 /Users/jbchauvin/Projets/AgentsRoom에 있으므로 slug는 -Users-jbchauvin-Projets-AgentsRoom입니다. 프로젝트마다 폴더 하나, 그 안에 세션마다 폴더 하나입니다.

Mac이나 Linux 머신에서 현재 사용자에게 아직 남아 있는 세션 폴더를 모두 나열하려면:

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

그 옆에 있는 것

세션 폴더에는 scratchpad만 있는 것이 아닙니다. 우리 야간 에이전트를 돌리는 머신에서는 그날의 세션 폴더 아홉 개 중 일곱 개에 항목이 둘 있습니다: scratchpadtasks. tasks 폴더는 백그라운드 작업의 출력이 떨어지는 곳으로, 에이전트가 분리해서 실행하고 나중에 읽는 명령들입니다.

알아 둘 세 번째 장소가 있는데, 이것은 임시 디렉터리 아래에 있지 않습니다: ~/.claude/projects/<프로젝트 slug>/<세션 id>/tool-results/. 도구가 컨텍스트가 받아들일 수 있는 것보다 많이 반환하면 Claude Code는 전체 출력을 거기에 저장하고 에이전트에게 경로를 줍니다. 오늘 밤에는 68 KB짜리 Search Console 내보내기가 scratchpad 대신 거기로 갔습니다. 그 위치는 영구적이며 세션 트랜스크립트 옆에 있습니다. 그러니 구분은 이렇습니다: 트랜스크립트와 너무 큰 도구 출력은 ~/.claude 아래, 남습니다. 스크립트, 중간 파일, 백그라운드 작업 출력은 임시 디렉터리 아래, 남지 않습니다.

왜 사라지는가

임시 디렉터리는 모든 운영 체제에게 “지워도 됨”을 뜻하고, Claude Code 안에는 거기에 반박하는 것이 아무것도 없기 때문입니다.

Linux에서는 systemd-tmpfiles/usr/lib/tmpfiles.d/tmp.conf에 적힌 대로 적용합니다. 한 제보자는 호스트가 재부팅됐을 때 24시간짜리 데이터 생성 파이프라인의 출력 전부를, 리뷰 판정과 스크립트와 Python virtualenv까지 포함해서 잃었습니다: 그 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년 7월, 누군가 세션 둘이 살아 있는 동안 디스크 정리를 돌렸다가 두 에이전트가 작업하던 git worktree를 커밋되지 않은 편집까지 포함해 잃었습니다. 편집 내용은 대화 컨텍스트에 아직 남아 있었기에 겨우 복구됐습니다.

macOS에서는 /private/tmp가 재부팅 시 비워지고 오래된 파일은 시스템이 지웁니다. 오늘 밤 우리 Mac mini에서 /private/tmp/claude-501에는 이 프로젝트의 세션 폴더 아홉 개, 파일 452개, 25 MB가 있고, 그날보다 오래된 것은 하나도 없습니다. 지난 밤들의 에이전트가 거기에 남긴 것은 모두 사라졌습니다.

이 중 어느 것도 무언가 잘못 동작했다는 의미의 버그는 아닙니다. 폴더는 CLI가 말한 바로 그 자리에 있고, 운영 체제는 임시 폴더에 늘 하던 일을 정확히 했을 뿐입니다. 틈은 프롬프트가 그것을 scratchpad라고 부르고, scratchpad라는 말이 보관하는 무언가처럼 들린다는 데 있습니다.

설정할 수 있는 것과 없는 것

2.1.278 기준으로 scratchpad 위치 설정은 없습니다. 폴더는 임시 디렉터리를 따라가므로 Windows에서는 TEMP, Unix에서는 TMPDIR이 위치를 옮깁니다. 다른 임시 파일을 위해 존재하는 CLAUDE_CODE_TMPDIR은 scratchpad를 옮기지 않는다고 보고됐고, 그 요청은 계획 없음으로 닫혔습니다. CLAUDE_CODE_SCRATCHPAD_DIR 변수와 ~/.claude/scratchpad/ 아래 기본 위치를 요청한 이슈도 마찬가지였습니다. 데스크톱 앱에서 보이는 scratchpad 폴더는 아직 열려 있는 기능 요청입니다.

오늘 통하는 것이 둘 있습니다. 재개한 세션(claude --resume)은 세션 id를 유지하므로 같은 폴더를 찾고, 그 사이에 아무것도 지우지 않았다면 찾아냅니다. 그리고 에이전트에게 평범한 말로 특정 파일을 영구적인 곳에 쓰라고 요청할 수 있습니다. 우리 해결책은 그게 전부입니다.

우리 야간 에이전트에게 준 규칙

같은 머신에서 20:00에 에이전트 일곱이 시작합니다: SEO, 제품, 소셜, fixer, 문서 담당, CEO 리포트, 그리고 22:00에 그날 밤의 요약을 메일로 보내는 rapporteur. 각각 많은 중간 산출물을 만듭니다: Search Console 내보내기, 걸러낸 JSON, 스무 개 로케일에서 문자열을 세는 스크립트. 이 모두는 일부러 scratchpad로 갑니다. 어느 것도 저장소에 속하지 않고, 어느 것도 새벽 두 시에 권한 확인을 띄워서는 안 되기 때문입니다.

모든 프롬프트에 든 규칙은 한 문장입니다: scratchpad는 다음 명령에 필요한 것을 담고, 저장소는 다음 밤에 필요한 것을 담는다. 에이전트가 내일 다시 읽고 싶어 할 것, 즉 리포트, 런 표시 파일, 편집하던 파일은 reports/nuit/<date>/ 아래에 쓰고, 런이 끝날 때가 아니라 끝나는 대로 곧바로 커밋합니다. 작업 도중 끊긴 에이전트는 git에 부분 리포트와, 아무도 아쉬워하지 않을 25 MB의 작업 파일을 남깁니다.

이 규칙의 거울상이 Linux 제보자가 뼈아프게 배운 것입니다: 긴 작업의 유일한 사본이 scratchpad에 쌓이게 두지 마세요. 파이프라인이 하루 종일 돈다면 그 출력은 여러분이 고른 경로로 가고, scratchpad에는 보조 파일만 남깁니다.

앱을 떠나지 않고 폴더 열기

AgentsRoom 안에서 Claude Code를 돌린다면, File > Open File (Cmd/Ctrl+O)로 그 폴더의 어떤 파일이든 미리보기에서 열 수 있고, 추적되는 파일로 착각하지 않도록 “프로젝트 외부”로 표시됩니다. 에이전트가 방금 만든 내보내기 파일을 /private/tmp 경로를 터미널에 붙여 넣지 않고 읽는, 우리가 찾은 가장 빠른 방법입니다.

그리고 이름 이야기를 마무리하자면: AgentsRoom Scratchpad는 다른 것입니다. 에이전트 컴포저에 내장된 프롬프트 에디터로, 긴 프롬프트를 쓰고 세션 사이에 에이전트별 초안으로 보관하는 곳입니다. 같은 단어지만 Claude Code가 폴더에 그 이름을 쓰기 전에 고른 것입니다. 하나는 여러분이 에이전트에게 쓰는 곳이고, 다른 하나는 에이전트가 자신을 위해 쓰는 곳입니다.

자주 묻는 질문

macOS와 Linux에서 Claude Code scratchpad는 어디에 있나요?

시스템 임시 디렉터리 아래에 있습니다: /tmp/claude-<사용자 uid>/<슬래시를 대시로 바꾼 프로젝트 경로>/<세션 id>/scratchpad. macOS에서는 /tmp/private/tmp로 가는 링크라서 같은 폴더가 /private/tmp/claude-501/… 로 표시됩니다. uid는 id -u가 출력하는 값으로, Mac의 첫 사용자는 501, 대부분의 Linux 배포판은 1000, root는 0입니다. 예전 버전은 uid 접미사 없이 /tmp/claude/를 썼습니다.

Windows에서 Claude Code scratchpad는 어디에 있나요?

TEMP 폴더 아래에 있습니다: %TEMP%\claude\<프로젝트 slug>\<세션 id>\scratchpad이며, 보통 C:\Users\<사용자>\AppData\Local\Temp\claude\… 로 풀립니다. 환경 변수 TEMP를 바꾸면 함께 옮겨집니다. 경로가 Claude Code 설정이 아니라 TEMP에서 파생되기 때문입니다.

내 Claude Code scratchpad가 왜 사라졌나요?

임시 디렉터리 아래에 있고, 모든 운영 체제는 임시 디렉터리를 지워도 되는 곳으로 여기기 때문입니다. Linux에서는 systemd-tmpfiles/usr/lib/tmpfiles.d/tmp.conf에 적힌 규칙을 적용하는데, 흔히 부팅 시 비우기나 일정 일수 뒤 삭제입니다. macOS는 재부팅 시 /private/tmp를 비우고 오래된 파일을 지웁니다. Windows에서는 저장소 센스와 디스크 정리가 %TEMP%를 청소합니다. Claude Code에는 이 중 어느 것으로부터도 폴더를 지켜 주는 장치가 없습니다.

Claude Code가 scratchpad를 두는 위치를 바꿀 수 있나요?

Claude Code 2.1.278 기준으로 전용 설정은 없습니다. 폴더는 운영 체제의 임시 디렉터리를 따라가므로, Windows에서 TEMP를, Unix에서 TMPDIR을 옮기면 함께 옮겨집니다. 별도 변수나 ~/.claude 아래의 영구 위치를 요청한 이슈들은 계획 없음으로 닫혔습니다. 믿을 만한 방법은 중요한 것은 모두 프로젝트 안에 쓰라고 에이전트에게 말하는 것입니다.

scratchpad는 ~/.claude/projects와 같은 것인가요?

아닙니다. ~/.claude/projects/<프로젝트 slug>/에는 세션 트랜스크립트가 있고, 세션마다 너무 큰 도구 출력이 저장되는 tool-results 폴더가 있습니다. 그 위치는 영구적입니다. 임시 디렉터리 아래의 scratchpad는 에이전트가 스크립트와 중간 파일에 쓰는 작업 공간이고, 그쪽은 휘발성입니다.

이것이 AgentsRoom Scratchpad인가요?

같은 단어, 다른 것입니다. AgentsRoom Scratchpad는 에이전트 컴포저에 내장된 프롬프트 에디터로, 에이전트마다 초안을 쓰고 보관하는 곳입니다. Claude Code의 scratchpad는 CLI가 세션마다 만드는 폴더입니다. AgentsRoom은 File > Open File로 그 폴더의 어떤 파일이든 열 수 있고, “프로젝트 외부”로 표시됩니다.

AgentsRoom 다운로드

모든 AI 에이전트를, 모든 프로젝트에서, 하나의 창으로 실행하세요.

무료AgentsRoom 다운로드

컴패니언 앱: 이동 중에도 에이전트를 모니터링

Claude, Codex, Antigravity CLI 또는 다른 AI 공급자를 사용하세요.

확장 프로그램 설치
Chrome Web Store

버그와 요청을 공개 백로그로 바로 보내세요.

멀티 프로젝트
멀티 프로바이더
멀티 에이전트
실시간 상태
파일 diff & 커밋
모바일 앱
라이브 프리뷰
에이전트 팀
브라우저 자동화
백로그 기반 개발
프롬프트 라이브러리
스킬 라이브러리
모든 기능 보기

계속 읽기