「3 つか 4 つ入っているのでは」という見立てから調査した。結果は CLI は 1 本だけで、複数に見えていたのは自動更新が残した旧版だった。一方で GUI は性格の違うものが 3 つ入っていた。
| 場所 | 版 | サイズ | 役割 |
|---|---|---|---|
~/.local/bin/claude.exe | 2.1.269 | 212.4 MB | 現行。実際に起動されるのはこれ |
~/.local/bin/claude.exe.old.1789… | 2.1.268 相当 | 211.4 MB | 更新時の残骸 |
~/.local/share/claude/versions/2.1.269 | 2.1.269 | 212.4 MB | 現行版の保管元 |
~/.local/share/claude/versions/2.1.268 | 2.1.268 | 211.4 MB | 旧版 |
~/.local/share/claude/versions/2.1.267 | 2.1.267 | 209.9 MB | 旧版 |
~/claude.cmd | — | 1 KB 未満 | 利用者の自作ラッパー。特定ドライブ以外での起動を止める |
インストール方式は設定に installMethod: native と記録されている。インストールスクリプト経由のネイティブ版で、Node に依存しない単体の実行ファイルとして動く。初回起動は 2026-03-28。
Claude Code には npm パッケージ(@anthropic-ai/claude-code)で入れる方式もあるが、なし現在はインストールされていない。
| 確認項目 | 結果 |
|---|---|
| グローバルパッケージ一覧 | @anthropic-ai/claude-code は無し |
グローバル node_modules/@anthropic-ai/ | 空フォルダだけ残存(0 バイト)。作成 2026-05-06 / 最終更新 2026-08-23 |
npm が作るシム(claude.cmd / claude.ps1) | 無し |
| npm キャッシュ | claude-code の取得記録あり(実害なし) |
| bun / deno / pnpm | いずれにも無し |
2026-05-06 に npm 版を導入し、2026-08-23 に削除した痕跡と読める。残っているのは空のスコープフォルダ 1 つだけで、容量も動作への影響もない。
npm 版を併用すると問題が増える。同名コマンドが 2 つになって PATH の順序に依存する状態になり、更新経路も npm update -g と自動更新の 2 系統に割れる。さらに npm 版は Node ランタイムに縛られるため、Node を入れ替えたときに巻き添えで壊れる。ネイティブ版 1 本で運用するのがよい。
CLI とは独立した 3 つが入っていた。どれを消しても CLI は動く。
| 種類 | 版 | 導入 | 実体 |
|---|---|---|---|
VS Code 拡張 anthropic.claude-code | 2.1.267 | — | 拡張の中に claude.exe 209.9 MB を同梱(拡張全体 220.3 MB) |
| デスクトップアプリ(Store / MSIX 版) | 1.52386.3.0 | 2026-09-12 07:02 | Program Files\WindowsApps 配下 |
| ブラウザの PWA | 1.0 | 2026-09-12 10:14 | ショートカットのみ。実体はブラウザ |
「デスクトップ版が 2 つ増えたように見える」という違和感の正体はこれだった。デスクトップアプリと PWA は別物で、同じロゴを使うためアイコンが重複して見える。PWA は同日 10:14 にスタートメニューとデスクトップの 2 箇所へショートカットが作られていた。ブラウザでサイトを開いた際に「アプリとしてインストール」が実行されるとこうなる。
デスクトップアプリ側の 07:02 は「その版になった時刻」であり、初回インストール日とは限らない。ストアの自動更新でもフォルダは作り直される。
CLI 相当のバイナリは、調査時点で 約 1.27 GB 分が存在していた。
| 対象 | サイズ | 結果 | 備考 |
|---|---|---|---|
~/.local/share/claude/versions/2.1.267 | 209.9 MB | 削除 | — |
~/.local/share/claude/versions/2.1.268 | 211.4 MB | 削除 | — |
~/.local/bin/claude.exe.old.1789… | 211.4 MB | 保留 | 実行中のプロセスがロック中。アクセス拒否で削除できず |
回収できたのは 421.3 MB。残り 211.4 MB は次章の理由で保留になっている。
調査の途中で、消した 2 つは放置しても自動で消える見込みだったことが分かった。根拠は次の 4 点。
| 観測した事実 | そこから言えること |
|---|---|
~/.claude/.last-cleanup が存在し、当日 01:55 に実行されていた | 定期クリーンアップの仕組みが実在し、動いている |
| 保管フォルダの作成日は 2026-03-28(約半年前) | その間に多数の更新があったはず |
| それでも残っていたのは 3 版だけ | 古い版は掃除されている |
更新記録に 2.1.268 → 2.1.269 が残っていた | 版が順に入れ替わっている |
半年使って 3 版しか残っていなかったのが決め手になる。掃除が働いていなければ数十版・数 GB に膨らんでいたはずである。直近 3 世代だけを保持するローテーションが動いていると見てよい。
保管される旧版は青天井には増えない。3 世代 × 約 210 MB で、上限はおおよそ 640 MB で頭打ちになる。定期的な掃除スクリプトを用意する必要はない。
今回の削除で失ったのは「古い版へ手動で巻き戻す余地」だけで、回収を数日早めたことに実害はない。
調査中、「自動更新は無効」と読める設定と、実際に更新が走っている記録が食い違った。原因は設定キーが 2 系統あり、片方が既に参照されていないことだった。
| ファイル | キー | 値 | 実効性 |
|---|---|---|---|
~/.claude.json | autoUpdates | false | 無効参照されていない旧キー |
~/.claude/settings.json | autoUpdatesChannel | "latest" | 有効こちらが効いている |
古いキーだけを見て「自動更新は止まっている」と判断すると読み違える。実際には最新チャンネルで自動更新が動いている。
ファイル名・更新記録・プロセスの起動時刻から、当日の流れを時刻まで特定できた。
決め手になったのは残骸のファイル名である。末尾の数字はミリ秒単位の時刻表現で、変換すると 04:20:41 になった。更新処理がリネームした瞬間そのものが、ファイル名に刻まれていた。
この残骸は「更新時に CLI が起動していた」条件が揃うたびにできる。Windows は実行中の実行ファイルをリネームできてしまうため、更新処理は旧ファイルを改名して新版を同じ名前で配置する。起動中のプロセスは改名後のファイルを掴み続けるので、そのプロセスが終わるまで削除できない。セッションを長時間立てたままにする使い方では再発しやすい。
コマンドラインと GUI の両方を使う前提で、次の構成に落ち着いた。
| 残すもの | 理由 |
|---|---|
~/.local/bin/claude.exe | CLI 本体。実際に動いているのはこれ 1 本 |
~/claude.cmd | 自作ラッパー。起動ドライブを限定する用途 |
~/.local/share/claude/versions/2.1.269 | 現行版の保管元。更新処理の足場になる |
| デスクトップアプリ(Store 版) | チャット用の GUI として常用中 |
| VS Code 拡張 | 今後使う予定があるため保持 |
拡張が同梱するバイナリは拡張の一部なので、単体では取り除けない。拡張ごと残すか外すかの二択になる。
ブラウザの PWA はデスクトップアプリと役割が重なるが、実体がショートカットのみのため容量への影響はない。消す利点はアイコンの重複解消に限られる。
保留~/.local/bin/claude.exe.old.1789…(211.4 MB)の削除。ロックしている 7 本のセッションを閉じるか、再起動した後であれば削除できる。
| 案 | 内容 | 結果 |
|---|---|---|
| A | 何もしない | 更新のたびに残骸が出る可能性がある。気づいたときに手で消す |
| B | 自動更新を手動運用に切り替える | 全セッションを閉じた状態で自分で更新すれば残骸は出ない。更新の手間が増える |
| C | 参照されていない旧キーを削除する | 実施済み設定を読み返したときの誤読を防ぐため削除した |
実効設定と紛らわしい旧キーを取り除いた。作業前に同ファイルの控えを取っている。
| 項目 | 内容 |
|---|---|
| 削除したもの | ~/.claude.json の autoUpdates(1 行) |
| サイズ | 222,912 → 222,888 バイト(24 バイト減、6035 → 6034 行) |
| 検証 | JSON 構文は妥当。他のキーは維持されている |
| 実効設定への影響 | なし。autoUpdatesChannel は変更していないため更新の挙動は変わらない |
この設定ファイルは稼働中のセッションが随時書き込む。複数のセッションを開いたまま編集すると、別のセッションが手元に持っている古い内容で書き戻し、削除したキーが復活することがある。すべて閉じた後に消えたままか確認するのが確実である。
旧版の保管フォルダには手を出さなくてよい。3 世代のローテーションが働いており、放置しても上限を超えて増えることはない。