Wipecraft の仕組み
日々の使用
作業中のものはそのまま残ります
作業中のものを含む行はロックされます。表示はされますが、選択はできません。
- Claude Code または Codex の実行中:開いているセッション、過去 24 時間以内に変更したもの、作業中の worktree。
- Cursor が開いている間の Cursor のキャッシュ。
- 未コミットの変更がある worktree、過去 7 日以内に変更された worktree、コミットがメインブランチにもリモートにもない worktree。
- 起動中のシミュレータ。
- Claude Desktop の使用中のサンドボックスイメージ。
最初は何も選択されていません。「推奨項目を選択」は「削除しても問題なし」と「また増える」にある項目だけを選び、「あなたが判断」にある項目は選びません。
スキャンは読み取りのみです。テストでは、テスト用ホームフォルダ内のすべてのファイルをフルスキャンの前後で比較し、コマンドラインの scan と status の後にも比較しています。
考え直すための 7 日間
どのアプリも作り直さないファイルは、削除すると同じディスク上の隔離に移動されます。各行には残り日数と「復元」ボタンが表示されます。7 日が過ぎると、次に Wipecraft を開いたとき、または毎日の確認が実行されたときに、隔離は自動で空になります。今日すぐに容量が必要な場合は、「今すぐ空にする」で 2 回目の確認の後に解放できます。
隔離を経由しない操作が 3 種類あります。
- 対応するアプリが自分で作り直すキャッシュ、ログ、一時ファイルは、直接削除されます。復元はできず、確認する前に、行またはカードでそのことが示されます。Wipecraft がこれを行うのは、アプリが作り直すと分かっているフォルダとファイルだけです。作り直す仕組みが分かっていないものは、すべて隔離に移動されます。
- worktree は Git で削除され、そのブランチはリポジトリに残ります。
- 一部のツールのコマンドは「取り消し不可」と表示され、Wipecraft はそのコマンドを示したうえで、もう一度確認します。
一部のキャッシュは、ツール自身が元に戻せないため、隔離に残ります。JetBrains と Android Studio のキャッシュ(IDE のローカル履歴も含まれます)、Maven と Go のモジュール、そして Library/Caches 内のツールのデータ(Poetry の環境、Playwright と Cypress のブラウザ、llama.cpp のモデルなど)です。
セッション履歴は削除されません。圧縮されたアーカイブに移動され、復元できます。
何かが増えたら知らせます
モニタリングは、オンにするまでオフのままです。オンのときはメニューバーのアイコンで分かり、Wipecraft は 1 日 1 回、指定した時刻に確認します。次の場合に通知します:
- 1 つの項目が 7 日間で 2 GB 以上増えたとき
- ディスクの空き容量が 10% 未満になったとき
- 1 GB 以上の worktree またはシミュレータが 7 日間使われていないとき
- 最後の Time Machine バックアップから 7 日を超えたとき
アプリを終了すると、すべて止まります。
自分で決めるルールとフィルタ
クリーンアップのルールは任意です。「設定」>「自動クリーンアップ」で追加するまで、ルールは 1 つもありません。
- ルールでは、対象のソース、項目が使われていない日数(7~365)、最小サイズを指定します。
- 毎日の確認の後、ルールに一致する項目は隔離またはアーカイブに移動され、その件数が通知されます。
- ルールはロック中の行を対象にしません。コマンドを実行することも、worktree を削除することも、取り消せない操作を行うこともありません。直接削除されるキャッシュは予定されたクリーンアップの対象外で、ルールが扱うのは隔離またはアーカイブに移動される項目だけです。
- ルールはモニタリングがオンのときだけ実行されます。
- ライセンスがない場合、ルールは何も移動しません。ルールで移動されるはずの項目があった場合、Wipecraft はクリーンアップが実行されなかったことを 1 日 1 回お知らせします。
検出結果のリストはすべて、使われていない期間、ソース、安全性のレベルで絞り込めます。フィルタで非表示になった行は選択からも外れます。
プッシュしていない作業には手を触れません
Git リポジトリが残っている worktree は、そのコミットが別の場所にも存在する場合にだけ削除の対象として表示されます。唯一の例外はリポジトリがなくなった worktree です。最後の項目を参照してください。
- コミットがメインブランチまたはリモートブランチにある必要があります。ない場合、その行はロックされ、「コミットはまだメインブランチにもリモートにもありません。」という理由が表示されます。
- 最後のプッシュの後に作成したコミットがあると、ロックされたままです。
- スカッシュマージではメインブランチに新しいコミットが作られるため、ブランチ自体のコミットはそこに現れません。GitHub でそのブランチのプルリクエストがマージ済みになっている場合、Wipecraft はそのロックだけを解除します。問い合わせはお使いの
ghのログインを通じて、ghがインストールされサインイン済みの場合にだけ行われます。「設定」>「プライバシー」でオフにできます。未コミットの変更がある worktree は引き続きロックされます。 - Wipecraft は worktree を削除する直前にもう一度確認します。コミットがメインブランチにもリモートにもなくなっていた場合や、プルリクエストがマージ済みと表示されなくなっていた場合は、何も削除しません。
- メインリポジトリが移動または削除された worktree は、Git で確認できません。Wipecraft はこうした worktree を、変更のない状態が 30 日(デフォルト)続いた後にだけ削除対象として提示し、フォルダ全体を隔離に移動します。「復元」で元に戻せます。
worktree を削除するときも .env は残します
git worktree remove はフォルダを削除し、Git が無視するファイル(.env、ローカルデータベース、エディタの設定)も一緒に消えます。Wipecraft はそれらのファイルを先に移動します。
- worktree を削除する前に、Wipecraft はビルド出力ではない無視対象のファイルを隔離に移動し、7 日間保管します。
node_modulesやtargetなどのビルド出力は worktree と一緒に削除されます。 - 確定する前に、隔離に移動するファイルの数が行に表示されます。
- Git が worktree の削除を拒否した場合、Wipecraft はファイルを元の場所に戻します。
- 「復元」は、それらのファイルがあったフォルダも作り直します。
- これらのファイルが単独で削除対象として表示されることはありません。ビルド出力は別の行として表示され、worktree がロック中でも表示されます。
ターミナルからも Claude Code の中からも使えます
コマンドライン。 Wipecraft のアプリには wipecraft コマンドが含まれています。「設定」>「一般」> 「コマンドラインツール」に、これを PATH にリンクするための 1 行が表示されます。
wipecraft scanとwipecraft statusは解放できるものを一覧表示し、--jsonを付けるとバージョン付きの JSON を出力します。どちらも何も変更しません。wipecraft cleanは何を行うかを表示します。--applyを付けるまで何も変わりません。--applyを付けると、wipecraft cleanは指定した各項目に対してアプリと同じ処理を行います。対応するアプリが作り直すキャッシュ、ログ、一時ファイルは直接削除され、復元はできません(計画には「Would remove directly」と表示されます)。それ以外のファイルは隔離に移動し、セッション履歴はアーカイブに移動し、使い終わった worktree は、ビルド出力ではない無視対象のファイルを隔離に移した後、git worktree removeで削除されます。各操作は削除ログに記録されます。--all-safeは隔離に移動する項目だけを選びます。アプリと同じライセンスが必要です。- ロック中の行と、スキャン後に変更された行は拒否します。「取り消し不可」と表示される操作は実行せず、アプリを開くよう案内します。
wipecraft quarantine listは隔離中のものを表示し、wipecraft quarantine restore <id>はエントリを 1 つ元に戻します。どちらもライセンスは不要です。- アプリや別のターミナルがファイルを移動している間は、Wipecraft が処理中であることを伝えるメッセージを出して停止し、何も移動しません。
- zsh、bash、fish 用の補完スクリプトを出力します。
Claude Code プラグイン。 このプラグインは 2 つのコマンドと 2 つのセッションフックを追加します。
/wipecraft:statusはwipecraft scan --jsonの結果を要約します。/wipecraft:tidyはまずドライランを表示し、チャットで「はい」と答えた後にだけ--applyを実行します。- セッションの開始時に 1 GB を超える容量を解放できる場合、セッションに 1 行を追加します。この行は前回の更新時に保存したサマリーから表示されるため、セッションがスキャンを待つことはありません。過去 24 時間以内のサマリーがない場合は何も表示せず、バックグラウンドでサマリーを更新します。
- リンクされた worktree の中でセッションが終了すると、その worktree の状態を 1 行で表示します。
- 使い終わった worktree の整理はデフォルトでオフです。「設定」>「エージェント」のスイッチで切り替えます。
- スイッチがオンの場合、セッションの終了後、少し時間をおいてから、そのセッションの worktree だけを対象に
wipecraft cleanがバックグラウンドで実行されます。コマンドと同じ確認を通り、まだロック中の worktree は残ります。
その他のエージェント(MCP)。 wipecraft mcp は、Claude Code、Codex、Cursor などのエージェントがお使いの Mac 上で起動できるサーバです。通信は標準入出力だけで行い、ソースコードにはネットワーク接続がなく、どのポートでも待ち受けません。
- エージェントは、合計の確認、項目の一覧表示と説明、隔離中のものの確認ができます。これらのリクエストは何も変更しません。
- エージェントによるクリーンアップは、「設定」>「エージェント」で「エージェントに MCP 経由のクリーンアップを許可」をオンにするまでオフです。
- オンの場合、エージェントが適用を求めない限り、リクエストには計画を表示します。適用にはライセンスが必要で、ロック中の行は除外されます。エージェントが指定した各 ID に対して
wipecraft clean --applyと同じ処理を行います:対応するアプリが作り直すキャッシュ、ログ、一時ファイルは直接削除され、復元はできません。それ以外のファイルは隔離に移動し、セッション履歴はアーカイブに移動し、使い終わった worktree は Git で削除されます。ツールの説明には復元できない項目が示されるため、エージェントは適用の前にそれを伝えられます。Time Machine のローカルスナップショットの削除など、「取り消し不可」と表示される操作は、引き続き拒否されます。 - 「設定」>「エージェント」には、Claude Code、Codex、Cursor 用の設定テキストが表示されます。Wipecraft はテキストを表示するだけで、エージェントの設定は変更しません。
見つかるもの
各行には、それが何か、サイズ、削除するとどうなるかが表示されます。元に戻せるものには、その方法も表示されます。
Claude Code、Codex、worktree、以下の開発ツールは、開発者モードがオンのときに表示されます。よくある質問を参照してください。
AI エージェントと AI アプリ
- Claude Code。 プロジェクトと月ごとにまとめたセッション履歴。削除ではなくアーカイブされます。ファイル履歴、シェルスナップショット、デバッグログ、プラグインも対象です。
- Codex。 セッション、アーカイブ済みセッション、スレッド履歴とログのデータベース。これらはすべて削除ではなくアーカイブされます。生成画像とキャッシュも対象です。
- Claude Desktop。 VM バンドル。使用中のサンドボックスイメージは表示されますが、ロックされます。その圧縮コピーと残ったウォームスタートデータは、Claude Desktop が閉じている間だけ対象になります。キャッシュも対象です。
- Cursor。 キャッシュ。
- ローカルモデル。 Ollama、LM Studio、Hugging Face のキャッシュ、PyTorch のキャッシュ、Whisper のモデル。サイズと最終使用日も表示されます。
- Git worktree。 どのエージェントが作ったものでも、自分で作ったものでも対象です:ホームフォルダ内の Git リポジトリの worktree と、
.claude/worktrees内のフォルダ。それぞれにブランチ、サイズ、最終変更日、Git が無視するファイル(別に一覧表示)が表示されます。worktree は作成したツールごとに Claude Code、Codex、Cursor、「その他」にグループ分けされます。グループはフォルダ名またはブランチ名から判断します。 - worktree の残りもの。 メインリポジトリが移動または削除されたフォルダと、フォルダがもう存在しない worktree の Git の記録が表示されます。記録の削除では
git worktree pruneを実行し、ファイルは削除されません。フォルダが削除ではなく移動されている記録はロックされたままで、行にはgit worktree repairを実行するよう表示されます。
開発ツール
- Xcode。 プロジェクトごとのビルドデータ、アーカイブ、デバイスサポートファイル、プレビュー、モジュールキャッシュ。Xcode で開いているプロジェクトはロックされます。
- シミュレータ。 各デバイスのサイズと最終使用日。「デバイスの削除」と「内容の消去」は別々の操作です。ランタイムイメージは、どのシミュレータも使っていない場合にだけ対象になります。
- パッケージキャッシュ。 npm、pnpm、Yarn、pip、Homebrew、CocoaPods、Swift Package Manager、Gradle、Cargo、さらに Bun、uv、conda、Go、Maven。
- ビルド出力。 30 日間変更されていないプロジェクトの
node_modules。.venv、target、.next、build、dist、Pods、.buildなどのフォルダも対象ですが、プロジェクトにマーカーファイル(Cargo.tomlやpackage.jsonなど)があり、Git がそのフォルダを無視していて、プロジェクトが 30 日間変更されていない場合に限られます。30 日は変更できます。プロジェクトのフォルダで起動したコーディングエージェントやエディタが実行中の間は、そのプロジェクトはロックされます。 - エディタ。 VS Code、JetBrains の IDE、Android Studio のキャッシュとログ。そのエディタの実行中はロックされます。古いバージョンの IDE のフォルダには、その旨が表示されます。
- Android。 エミュレータ(仮想デバイス)と SDK システムイメージ。エミュレータは隔離に移動されます。エミュレータの実行中、またはロックファイルがある間はロックされます。システムイメージは、デバイスが使用している間と、Wipecraft がデバイスの設定を読み取れない場合にロックされます。
- Docker。 Docker の実行中は、イメージとボリュームが対象です。コンテナが使用しているイメージやボリュームはロックされます。現在どのビルドも使っていないビルドキャッシュも対象で、その削除では
docker builder prune --all --forceを実行し、元に戻せません。OrbStack のデータフォルダはサイズとともに表示されますが、Wipecraft は削除しません。
システムデータ
「システム設定」の「ストレージ」では、システムデータは 1 つの数値で表示されます。Wipecraft はディスクの使用済み容量から始めて、使用中のすべてのバイトを 4 つに分けます:macOS、アプリ、あなたのファイル、システムデータ。4 つを合わせると使用済み容量になります。
システムデータはさらに 5 つのグループに分けられます。各グループには色と、1 文の説明があります。
- Mac に必要。 スワップ、システムのデータベース、アプリが自分用に保持しているデータです。表示されますが、削除の候補にはなりません。
- 削除しても問題なし。 対応するアプリが自分で作り直すキャッシュ、ログ、一時ファイルです。
- また増える。 削除できますが、使うとまた増えます。ブラウザやパッケージのキャッシュなどです。
- あなたが判断。 自然には戻らないものの唯一のコピーです。ローカルモデル、エミュレータ、シミュレータ、worktree、Docker イメージ、セッション履歴などがあります。カードには、それぞれが何で、最後にいつ使ったかが表示されます。これらは、7 日以内なら項目を復元できる隔離か、復元できるアーカイブに移動します。
- macOS が表示しない領域。 Wipecraft が名前を特定できたものをすべて除いた残りで、理由が付きます:フルディスクアクセスがオフ、管理者しか読めないフォルダ、APFS のオーバーヘッドとクローンなどです。
カードのゴミ箱が削除するのは、安全なものだけです。「削除しても問題なし」と「また増える」にある項目のうち、ロックされていないものです。「あなたが判断」の項目は決して対象にならず、アプリが開いている項目はロックされたままです。カードはまず裏返り、何が起きるか、取り消せるかどうかを示します。
Time Machine のローカルスナップショットは、グループの外に、日付とともに 1 つずつ表示されます。macOS はローカルスナップショットのサイズを報告しないため、Wipecraft はサイズを推測しません。スナップショットの削除は「取り消し不可」と表示され、毎回管理者パスワードを求めます。
これらのフォルダの一部にはフルディスクアクセスが必要です。許可しなくてもユーザフォルダはスキャンされ、集計できなかったフォルダは概要に表示されます。
元に戻す仕組み
| 行の種類 | Wipecraft が行うこと | 元に戻す方法 |
|---|---|---|
| 自動で再生成 | 隔離を経由せず、直接削除します。対応するアプリが作り直すキャッシュ、ログ、一時ファイルだけが対象です。確認する前に、行またはカードでそのことが示されます。 | 復元するものはありません。必要になればアプリが作り直します。取り消せません。 |
| 復元可能 | ファイルを隔離に移動します。 | 7 日以内に「復元」。または、もう一度ダウンロードするか再ビルドします。 |
| セッション履歴(「復元可能」と表示) | アーカイブに圧縮してから、元のファイルを削除します。 | アーカイブを復元します。アーカイブは復元するまで残ります。 |
| worktree(「復元可能」と表示) | ビルド出力ではない無視対象のファイル(.env など)を隔離に移動してから、git worktree remove を実行します。フォルダはビルド出力と一緒に、隔離を経由せず直接削除されます。 | ブランチはリポジトリに残ります。もう一度チェックアウトするには、そのブランチを指定して git worktree add を実行します。残したファイルは「復元」で戻ります。 |
| 取り消し不可 | ツール自身のコマンドを実行します。先にコマンドを示し、もう一度確認します。 | 再び入手する方法は確認画面に表示されます。 |
| ロック中 | 何もしません。 | 戻すものはありません。 |
ツール自身が元に戻せないキャッシュは、最初の行には含まれません。これらは隔離に移動します:JetBrains と Android Studio のキャッシュ、Maven と Go のモジュール、そして Library/Caches 内のツールのデータ(Poetry の環境、Playwright と Cypress のブラウザ、llama.cpp のモデルなど)です。
取り消し不可の操作は次のとおりです:Time Machine のローカルスナップショットの削除、シミュレータランタイムの削除、シミュレータの内容の消去、Docker のイメージまたはボリュームの削除、Docker のビルドキャッシュの削除。
Wipecraft は、リポジトリがある worktree を、クリーンな場合にだけ削除対象として表示します。クリーンとは、追跡中のファイルに変更がなく、Git が無視しない未追跡のファイルがなく、7 日間変更がなく(デフォルト。「設定」で変更できます)、コミットがメインブランチかリモートにある状態です。メインリポジトリがなくなった worktree は Git で確認できません。こうした worktree は変更のない状態が 30 日(デフォルト)続いた後に削除対象として提示され、フォルダ全体が隔離に移動されます。Git が無視するファイル(ビルド出力、依存関係)も別の行になり、隔離に移動されます。この行は、worktree 自体がロック中でも(たとえば未コミットの変更がある場合でも)表示されることがあります。
隔離では同じディスク上でファイルを移動するため、容量は隔離を空にしたときに戻ります。隔離画面には「隔離中」と「今すぐ空にした場合の解放量」の両方の数値が表示されます。
すべての操作はローカルの削除ログに記録されます:日時、対象、容量、操作の種類。「設定」から CSV として書き出せます。
プライバシーに関する 10 の原則
- アカウントは不要です。
- アプリにテレメトリも分析機能もありません。
- Wipecraft はファイル名やパスをどこにも送信しません。ご自身で接続したコーディングエージェントは、お使いの Mac 上でローカル接続を通じてスキャン結果を受け取ります。受け取ったものをそのエージェントがどう扱うかは、そのエージェントの提供元の扱いによります。
- スキャンでは、この Mac 上のサイズ、日付、ツールの状態(git、simctl、Docker)を読み取ります。何もアップロードしません。
- アプリがネットワーク通信を行うのは 2 つの目的だけです:ライセンス(アクティベートした場合。Mac の名前をアクティベーションのラベルとして使います)と、アップデートの確認です。任意の確認が 1 つあり、お使いの
ghのログインを通じて、ghがインストールされサインイン済みの場合にだけ行われます。「設定」でオフにでき、オフにするとghは一切実行されません。 - クラッシュレポートはデフォルトでオフです。オンにした場合、アプリがクラッシュしたときにだけ、ファイル名やパスを含まずに送信されます(Sentry、EU リージョン)。
- モニタリングをオンにしない限り、バックグラウンドでは何も動作しません。オンのときはメニューバーのアイコンで分かります。ほかには Claude Code プラグインをインストールした場合だけで、そのフックがセッションの開始時と終了時に
wipecraftを実行します。 - 管理者用のヘルパーはインストールしません。管理者パスワードを求めるのはスナップショットを削除するときだけで、毎回求めます。
wipecraftコマンドはお使いのユーザ権限で実行され、管理者コマンドは実行しません。 - 削除ログはお使いの Mac に残ります。書き出しはご自身で行います。
- ライセンスキーはキーチェーンに保存されます。
wipecraftコマンドは、ライセンスを確認するためにそこから読み取ります。