Claude Codeはscratchpadをどこに置き、なぜ消えるのか
Claude Codeのセッションは毎回scratchpadディレクトリを告げ、その後は二度と触れません。macOS、Linux、Windowsそれぞれの正確なパス、その隣にあるもの、再起動や一時ファイルの掃除でなぜ消えるのか、設定できることとできないこと、そして毎晩そこに書き込む7体のエージェントに与えた唯一のルールをまとめます。
Claude Codeのセッションは毎回、たぶん読み飛ばしている1行から始まります。今夜のわたしたちのものは、こう書かれています:
Scratchpad directory: /private/tmp/claude-501/-Users-jbchauvin-Projets-AgentsRoom/5a506305-…/scratchpad
その後、CLIは二度とそれに触れません。一覧表示するコマンドもなければ、開くパネルもなく、エージェントがそこに書いたと言っていたCSVを探しに行く日には、フォルダはもう消えているかもしれません。
わたしたちは毎晩、Mac mini上で7体のスケジュール済みエージェントを動かしていて、それぞれがそのフォルダに書き込みます。そこで、それが何なのか、各システムのどこにあるのか、何がそれを消すのか、エージェントにそれをどう扱うよう伝えているのかを調べに行きました。以下はすべて、2026年9月19日にClaude Code 2.1.278で確認し、そこで作業を失った人たちが開いたGitHubのissueで裏付けたものです。
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年の早い時期に開かれたissueには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 です。プロジェクトごとに1フォルダ、その中にセッションごとに1フォルダです。
MacまたはLinuxマシンで、現在のユーザーにまだ残っているセッションフォルダをすべて一覧表示するには:
ls /tmp/claude-$(id -u)/
その隣にあるもの
セッションフォルダにあるのはscratchpadだけではありません。夜間エージェントを動かしているマシンでは、その日の9つのセッションフォルダのうち7つに、scratchpad と tasks の2つのエントリがあります。tasks フォルダは、バックグラウンドタスクの出力が置かれる場所です。エージェントが切り離して実行し、後で読み返すコマンドのことです。
知っておくべき3つ目の場所があり、それは一時ディレクトリの下ではまったくありません:~/.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月、2つのセッションが動いている最中にディスク クリーンアップを実行した人が、両方のエージェントが作業していたgit worktreeを、コミットされていない編集ごと失いました。編集が復元できたのは、会話のコンテキストにまだ残っていたからにすぎません。
macOSでは、/private/tmp は再起動時に空にされ、古いファイルはシステムによって削除されます。今夜のわたしたちのMac miniでは、/private/tmp/claude-501 にこのプロジェクトのセッションフォルダが9つ、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フォルダは、まだ開いている機能要望です。
今日でも効くことが2つあります。再開したセッション(claude --resume)はセッションidを保つので同じフォルダを探しに行き、その間に何も消していなければ見つけます。そして、特定のファイルを永続的な場所に書くよう、エージェントに普通の言葉で頼めます。わたしたちの解決策はそれだけです。
夜間エージェントに与えたルール
同じマシンで20:00に7体のエージェントが起動します:SEO、プロダクト、ソーシャル、fixer、ドキュメンタリスト、CEOレポート、そして22:00にその夜の要約をメールで送るrapporteurです。それぞれが大量の中間素材を生み出します:Search Consoleのエクスポート、絞り込んだJSON、20のロケールで文字列を数えるスクリプト。そのすべてが意図的にscratchpadへ行きます。どれもリポジトリに属さず、どれも午前2時に許可の確認を出すべきではないからです。
どのプロンプトにも入っているルールは一文です: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エージェントを、すべてのプロジェクトで、ひとつのウィンドウから実行。
コンパニオンアプリ:外出先でもエージェントを確認
Claude、Codex、Antigravity CLI、またはその他の AI プロバイダーを使用します。
バグや要望を公開バックログに直接送信できます。
続きを読む
Claude Code の Remote Control はトークンを余計に消費する? Codex にもある?
Anthropic が Remote Control を出して以来、人々が Google に打ち込むようになった 2 つの質問。スマホから Claude Code のセッションを操作するとトークンが余計にかかるのか、そして Codex に同等のものはあるのか。短い答えは、いいえ、ターンはどこで打ってもターンです。そして、はい、ただし半分しか存在しません。Remote Control が実際には何なのか、トークンの問題を 4 つのコマンドで自分で測る方法、codex remote-control が今日できること、そしてプロバイダーとは決して話さないモバイルのリモコンが計算をどう変えるかを解説します。
記事を読むレビューエージェントに書き込みをさせてはいけない。CLIごとにどう強制しているか。
17ノードのランで、リリースエージェントは赤いテストスイートを緑にするためにテストを書き換え、その後2つのレビューエージェントが同じ修正を書いて衝突した。プロンプトには「レビューのみ」と書いてあった。それは守られなかった。インシデントの経緯、書かれた指示がこのルールを担えない理由、そしてClaude Code、Codex、Grok、Antigravity、OpenCodeに書き込みを拒否させる正確なフラグ。
記事を読む10のエージェントが同時に同じ型チェックを実行した。解決策はディレクトリだった。
同じチェックアウトに17のコーディングエージェント、同時に走る10のtsc、load average 37、空きRAMは87 MB。90秒の型チェックが7分36かかりました。計測した内容、マシンが計算していなかった理由、そして問題を解決した小さな共有ロックを紹介します。どんなリポジトリにもコピーできます。
記事を読む