対象:このマシンに Claude Code が残す履歴・痕跡・キャッシュ——過去の会話・入力・編集前スナップショット・スクラッチ・利用統計など,消えても次回以降の起動と身元・設定・導入済みプラグインに影響しないもの.
対象外(絶対に消さない):身元と設定——履歴ではなく,消せば再ログインや再導入・再設定を強いるもの.何がそれに当たるかは下の「維持の対象」が列挙する.
手順
- 列挙する:下の「削除の対象」を実際に走査し,各項目の実在・ファイル数・容量を数える——存在しない項目は黙って飛ばす.同時に「維持の対象」も実在を確かめ,触れないものとして脇に置く.
- 明示して承認を得る:何を・どれだけ消し,何を残すかを表で示してから問う——削除は取り消せない(手順3のバックアップは
~/.claude.jsonのみを守る).ユーザーが範囲を指定していればそれに従い,承認なしに手順4へ進まない. ~/.claude.jsonを退避する:このファイルは身元・設定と履歴が同居する唯一のファイルで,手順5で一部キーだけを削る——編集前の全文を%TEMP%\claude-cleanup-backup\(POSIX では$TMPDIR/claude-cleanup-backup)へ複製してから触る.他の削除対象はバックアップしない(履歴そのものを消すのが目的).- ファイル・ディレクトリを消す:「削除の対象」を下の「削除の正典」に従って消す——器の残し方も,生きているセッションの避け方もそこが定める.
~/.claude.jsonから履歴キーだけを削る:「削除の正典」の除去方式で,利用統計・キャッシュ系のキーだけを落とし,身元・設定キーは残す.- 裏取りして報告する:削除後に,下の「維持の対象」が無傷であることを実際に読んで確かめ,解放した容量と残したものを簡潔に伝える.
削除の対象
~/.claude/ 配下(~ は Windows では %USERPROFILE%):
projects/— 全会話のトランスクリプト(.jsonl・tool-results・subagents ログ).最大の痕跡.file-history/— 編集前ファイルのスナップショット(Undo 用).history.jsonl— 入力したプロンプトの履歴.shell-snapshots/— シェル環境のスナップショット.session-env/— セッション毎の環境ディレクトリ.backups/—~/.claude.jsonの自動バックアップ.cache/— changelog・issue 等のキャッシュ.telemetry/— 送信待ち/失敗したテレメトリイベント.sessions/・ide/— セッション状態と IDE ロック.ただし生きているものは残す(正典参照).
~/ 直下と一時領域:
~/.claude.json.tmp.*— 書き込み失敗の残骸.空のこともあるが,~/.claude.jsonの全内容をそのまま含むことがある(oauthAccountもprojects.*も)——本体からキーを削っても,これを残せば履歴は消えていない.- スクラッチ領域
%TEMP%\claude\(POSIX では$TMPDIR/claude) — レンダリング・ブラウザプロファイル等の作業ファイル.現在のセッションのディレクトリとbundled-skillsは残す(正典参照).
~/.claude.json 内のキー(利用統計・キャッシュ・参照履歴):tipsHistory・tipLifetimeShownCounts・skillUsage・pluginUsage・announcementImpressions・seenNotifications・promptQueueUseCount・numStartups・lastPlanModeUse・closedIssuesLastChecked・changelogLastFetched・cachedGrowthBookFeatures(+At)・cachedExperimentData・cachedExperimentFeatures・clientDataCacheSlots・各種 *Cache・passesEligibilityCache・groveConfigCache・feedbackSurveyState・githubRepoPaths.
維持の対象
~/.claude/.credentials.json— OAuth ログイン資格情報.これを消すと再ログインが要る.~/.claude/settings.json— モデル・テーマ・enabledPlugins・extraKnownMarketplaces等の設定.~/.claude/plugins/一式 — 導入済みプラグイン本体とinstalled_plugins.json.~/.claude.jsonの身元・設定キー —oauthAccount・userID・machineID・hasCompletedOnboarding・migrationVersion・autoUpdates,およびprojects.*(allowedTools=承認済みツール・hasTrustDialogAccepted=信頼ダイアログ・mcpServers).projects.*を消すと次回起動時に信頼確認とパーミッション確認が再発する——履歴ではなく設定として残す(ユーザーが「承認記録も消す」と明示したときだけ削る).- 各リポジトリ内の
.claude/— プロジェクト固有の資産(~/.claude/配下ではないので走査対象外だが,混同して消さない).
削除の正典
- 生きているものに触れない:
sessions/<pid>.json・ide/<pid>.lockの<pid>が現存プロセスなら残す(消すと動作中のセッションを壊す).死んだ PID のロック・セッションのみ消す.Windows はGet-Process -Id <pid>,POSIX はkill -0 <pid>で生死を判定する.スクラッチ…/claude/配下も同様に,現在のセッションのディレクトリは残す——本スキル自身の出力ファイルがそこにあり,消せばENOENTで自分の tool 結果が読めなくなり,実行そのものが壊れる. bundled-skillsは残す:スクラッチ配下だが起動時に展開される実行資産で,履歴ではない.- 除去方式で削る:ファイルも
~/.claude.jsonのキーも「削除リストに載るものだけを落とし,残り全部を保つ」——維持リストを列挙する方式は採らない.「削除の対象」に無いファイル・ディレクトリも,そこに挙げたキー名・接尾辞(*Cache)のどれにも当たらないキーも,既定で残る側に倒れる(迷ったら残す)——列挙に無い新種のキーを「履歴らしいから」で巻き込まない.~/.claude.jsonはキー順と値の型を壊さぬよう,逐次パーサで書き直す:nodeがあればJSON.parse→delete→JSON.stringify,無ければ .NET のSystem.Text.Json(JsonDocumentを列挙し,除去対象を飛ばしてUtf8JsonWriterへ書き戻す)を使う.テキスト置換や正規表現で消さない——構造を壊す. - ディレクトリは器を残す:削除対象のディレクトリは中身のみ消して空で残す(Claude Code が存在を前提に書き込む).
- プラットフォーム差:パスは Windows=
%USERPROFILE%・%TEMP%,POSIX=$HOME・$TMPDIR(既定/tmp).どちらでも~/.claude/の構造は同じ.
自己点検
- 身元の無事:削除後に
.credentials.json・settings.json・installed_plugins.jsonが無傷で,oauthAccount/userIDが~/.claude.jsonに残っているか実際に読んで確かめたか. - 承認の先行:列挙して見せ,承認を得てから消したか——黙って走らせていないか.
- 生存の尊重:現在のセッション・生きた PID・
bundled-skillsを巻き込んでいないか. - 除去方式:ファイルもキーも維持リストでなく削除リストで削り,列挙に無いものを残す側に倒したか.
- 走査で示す:「無い」の判断を,実在確認(ゼロ件)で裏取りしたか.
制約
本スキルが扱うのはこのマシンの痕跡だけ——claude.ai 側の会話履歴やクラウドの成果物は消せないし,消そうとしない.
失敗時
/heal:skill を呼ぶ.