Ghostty × Claude Code でPCが重くなる問題の原因と4つの対策
📊この記事の図解版があります。内容を視覚的にまとめたページで、全体像をサッと把握できます
図解を見るGhostty × Claude Code でPCが重くなる問題の原因と4つの対策
対象環境: macOS(Apple Silicon)+ Ghostty + Claude Code 最終更新: 2026-02-19 想定読者: Claude Code を使い始めた人(ターミナルの知識がなくても大丈夫)
はじめに
Ghostty(ゴースティ)というターミナルアプリで Claude Code を長時間使っていると、PCの動作がどんどん重くなることがあります。
原因を調べたところ、3つの独立した問題 が重なっていることがわかりました。1つだけ直しても解決しないのがやっかいなポイントです。
この記事では、それぞれの原因を初心者向けに解説し、設定ファイルを数行変えるだけで改善できる4つの対策 を紹介します。すべてコピペで設定できます。
なぜPCが重くなるのか?(3つの原因)
まず「メモリ」について簡単に説明します。
メモリ(RAM)とは? PCが作業中のデータを一時的に置いておく場所です。机の上のスペースに例えるとわかりやすいです。机が広ければ多くの書類を同時に広げられますが、書類が溜まりすぎると作業スペースがなくなり、動きが鈍くなります。
この「机の上に書類が溜まり続ける」現象を引き起こしているのが、以下の3つの原因です。
原因1: Ghostty のメモリリーク(ターミナルアプリ側)
メモリリークとは? アプリが使い終わったメモリを返却しないこと。水道の蛇口を閉め忘れるようなもので、時間が経つほど「水=メモリ」が溜まり続けます。
Ghostty 1.2.x には、Claude Code の出力が引き金になるメモリリークのバグがあります。
Claude Code が出力する絵文字やリンクなどの特殊文字が、Ghostty 内部で「非標準ページ」というメモリ領域を大量に作ります。本来は古いページを再利用する際にメモリを解放するはずが、このバグのせいで 解放されずに蓄積し続けます。
ある報告では、10日間の連続使用で 37GB ものメモリを消費していました。
修正状況: Ghostty の開発者 Mitchell Hashimoto 氏が原因を特定し、すでに修正済み(PR #10251)。正式版は Ghostty 1.3(2026年3月が目標)に含まれますが、Nightly ビルド(開発中の最新版)で先行入手できます。
原因2: Claude Code のメモリリーク(CLIツール側)
CLI(シーエルアイ)とは? Command Line Interface の略。マウスではなくキーボードでコマンドを打って操作するツールのことです。Claude Code はこの形式で動きます。
Claude Code 自体にもメモリリークがあります。主な原因は2つです。
| 原因 | 何が起きるか |
|---|---|
| bash出力の蓄積 | npm test などのコマンド結果が、セッション中ずっとメモリに残り続ける |
| 孤立プロセス | Claude Code を終了しても、裏で動いていた子プロセスが残り続けることがある |
起動直後は約300MBだったメモリ使用量が、数時間で数GB〜数十GBに膨らむことが報告されています(GitHub Issue #4953)。
原因3: コンテキストの肥大化(AI記憶領域側)
コンテキストウィンドウとは? AIが「今の会話で覚えていられる量」の上限です。Claude Code の場合は約200,000トークン(ざっくり日本語で10万文字程度)。会話が長くなるとこの上限に近づき、AIの応答が遅くなったり質が下がったりします。
これは PC のメモリ(RAM)とは別の話ですが、長時間セッションで体感的に「重くなった」と感じる原因の一つです。
3つの原因の関係
┌─────────────────────────────────────────────────┐
│ あなたの Mac(24GB RAM) │
│ │
│ ┌──────────────┐ ← 原因1: Ghostty のバグで │
│ │ Ghostty │ メモリが解放されない │
│ │ (ターミナル) │ │
│ └──────┬───────┘ │
│ │ この中で動いている │
│ ┌──────▼───────┐ ← 原因2: Claude Code 自体が │
│ │ Claude Code │ メモリを蓄積し続ける │
│ │ (Node.js) │ │
│ └──────┬───────┘ │
│ │ AI の記憶領域 │
│ ┌──────▼───────┐ ← 原因3: 会話が長くなると │
│ │ コンテキスト │ AI の応答品質が劣化 │
│ │ ウィンドウ │ │
│ └──────────────┘ │
│ │
│ ⚠️ Apple Silicon は RAM と GPU メモリが共有 │
│ → メモリ不足が画面描画にも影響する │
└─────────────────────────────────────────────────┘
Apple Silicon の Unified Memory とは? M1/M2/M3/M4 チップの Mac では、CPUとGPU(画面描画を担当する部品)が同じメモリを共有しています。そのため、Claude Code がメモリを大量消費すると、画面がカクカクしたりアプリの切り替えが遅くなったりと、PC全体に影響が出やすいのです。
4つの対策と設定方法
各対策がどの原因に効くかを一覧にまとめました。
| # | 対策 | 効く原因 | 変更するファイル |
|---|---|---|---|
| 1 | Ghostty を最新版に切り替える | 原因1 | ~/.config/ghostty/config |
| 2 | スクロールバックを制限する | 原因1 | ~/.config/ghostty/config |
| 3 | Node.js のメモリ上限を設ける | 原因2 | ~/.zshrc |
| 4 | 孤立プロセスを掃除するコマンドを登録する | 原因2 | ~/.zshrc |
~(チルダ)とは? 自分のホームディレクトリ(Mac なら/Users/あなたのユーザー名/)を指す記号です。
対策1: Ghostty を最新版(Nightly ビルド)に切り替える
Ghostty のメモリリークは Nightly ビルド(開発中の最新版)ですでに修正されています。設定ファイルに1行追加するだけで、自動的に最新版を受け取れます。
変更するファイル: ~/.config/ghostty/config
追加する内容:
auto-update-channel = tip
tip とは? 「最先端」を意味する英語で、ここでは「最新の開発版」のことです。
stable(安定版)の代わりにtipを指定すると、バグ修正が含まれた最新版が届きます。スマホアプリの「ベータ版テストに参加する」のようなイメージです。
設定後、次回 Ghostty を起動したときに自動でアップデートされます。
注意: この対策で直るのは 原因1(Ghostty のメモリリーク)だけ です。原因2(Claude Code 自体のメモリリーク)と原因3(コンテキスト肥大化)は Ghostty とは無関係なので、対策2〜4もあわせて設定することをおすすめします。
対策2: スクロールバックを制限する
変更するファイル: ~/.config/ghostty/config(対策1と同じファイル)
追加する内容:
scrollback-limit = 5000000
スクロールバックとは? ターミナルで上にスクロールして過去の出力を見返せる機能です。この履歴データはメモリに保持されています。
デフォルトは約10MB(10,000,000バイト)分の履歴を保持しますが、Claude Code は大量のテキストを出力するため、メモリを圧迫しがちです。約5MB に半減させることで、蓄積されるメモリ量を抑えます。
トレードオフとして、上にスクロールして見返せる量は半分になります。
対策3: Node.js のメモリ上限を設ける
変更するファイル: ~/.zshrc
追加する内容:
export NODE_OPTIONS="--max-old-space-size=4096"
この設定は何をしているか?
export— この設定を、シェルから起動する全プログラムに引き継ぐ指示NODE_OPTIONS— Node.js(Claude Code の実行エンジン)に渡すオプション--max-old-space-size=4096— 「メモリを最大 4096MB(約4GB)まで使っていいよ」という上限
お小遣いの上限を決めるようなものです。上限がないと際限なくメモリを使ってしまいますが、「4GBまで」と決めれば PC 全体が動かなくなるのを防げます。
24GB RAM の Mac なら、4GB(約17%)が目安です。
反映タイミング: 新しいターミナルのタブやウィンドウを開いたときに有効になります。
対策4: 孤立プロセスを掃除するコマンドを登録する
変更するファイル: ~/.zshrc(対策3と同じファイル)
追加する内容:
# Claude 関連プロセスのメモリ使用状況を一覧表示
alias claude-ps='ps aux | grep "[c]laude" | sort -k4 -rn'
# 孤立した子プロセスを強制終了(関数として定義)
claude-cleanup() {
local pids
pids=$(ps aux | grep "[c]laude" | awk '$7 == "??" {print $2}')
if [ -z "$pids" ]; then
echo "No orphan Claude processes found."
else
echo "$pids" | xargs kill -9 2>/dev/null
echo "Cleaned up orphan Claude processes."
fi
}
alias と関数の違い
aliasは長いコマンドに短い名前をつける「ショートカット」です。claude-psはシンプルなので alias で十分ですが、claude-cleanupは条件分岐(孤立プロセスがあるかないかで処理を変える)が必要なため、より柔軟な「関数」として定義しています。どちらもターミナルでコマンド名を打つだけで使えます。
孤立プロセスとは? Claude Code を終了したとき、裏で動いていた補助プログラム(子プロセス)も一緒に終了するはずですが、まれに取り残されることがあります。親がいなくなった子プロセスが、誰にも管理されずメモリを消費し続ける状態です。
メモリ使用量の確認方法
対策の前後で効果を確認するために、メモリ使用量の見方を知っておくと便利です。
アクティビティモニタ(GUI で確認する方法)
⌘ + Space で Spotlight を開き、「アクティビティモニタ」と入力して起動します。「メモリ」タブをクリックすると、アプリごとのメモリ使用量が一覧で表示されます。列の見出しをクリックするとソートできるので、「メモリ」列をクリックして多い順に並べましょう。
ターミナルで確認する方法
以下のコマンドを実行すると、メモリを多く使っているアプリの上位10件が表示されます。
ps aux | sort -k4 -rn | head -10
出力例:
USER PID %CPU %MEM ... COMMAND
hisaomasaki 123 16.2 2.0 ... claude --dangerously-skip-permissions
hisaomasaki 456 1.4 1.7 ... /Applications/Slack.app/...
hisaomasaki 789 0.1 1.4 ... /Applications/Cursor.app/...
見方: 4列目の
%MEMがメモリ使用率です。24GB RAM の Mac なら、1.0で約240MB、4.0で約1GB に相当します。
日常的に使うコマンド
対策3・4で登録したコマンドの使いどころをまとめます。
| コマンド | いつ使う? | 何がわかる・起きる? |
|---|---|---|
claude-ps | 「PC が重い」と感じたとき | Claude 関連プロセスのメモリ使用量が多い順に表示される。どれが犯人か一目でわかる |
claude-cleanup | Claude Code を終了した後 | 取り残された孤立プロセスをまとめて片付ける |
使い方の例
1. 「なんか重いな」と思ったら claude-ps で確認する
claude-ps
出力例:
hisaomasaki 12345 8.2 4.5 ... node /path/to/claude
hisaomasaki 12346 2.1 1.2 ... node /path/to/claude
4列目の数字が メモリ使用率(%) です。24GB RAM の Mac で
4.5なら約1GB 使っています。この数字が10.0を超えていたら(約2.4GB)、再起動を検討しましょう。
2. Claude Code を終了したら claude-cleanup で掃除する
claude-cleanup
孤立プロセスがあった場合:
Cleaned up orphan Claude processes.
孤立プロセスがなかった場合:
No orphan Claude processes found.
どちらの場合もメッセージが表示されるので、実行結果が一目でわかります。
まとめ
設定の反映タイミング
設定を変更しても、すぐに反映されるわけではありません。
| 対策 | 反映タイミング |
|---|---|
| 対策1・2(Ghostty の設定) | 次回 Ghostty を起動したとき |
| 対策3・4(.zshrc の設定) | 新しいターミナルのタブやウィンドウを開いたとき |
今開いているターミナルには反映されません。設定後に新しいタブを開くか、ターミナルを再起動してください。
「重いな」と感じたときのフローチャート
PCが重い
│
├─ ターミナルで claude-ps を実行
│ │
│ ├─ メモリ使用率が高い → Claude Code を再起動する
│ │
│ └─ 特に異常なし → 別の原因を調べる
│
└─ Claude Code を終了した後
│
└─ claude-cleanup を実行して孤立プロセスを掃除
参考リンク
| リソース | URL |
|---|---|
| Ghostty メモリリーク修正の詳細(開発者ブログ) | https://mitchellh.com/writing/ghostty-memory-leak-fix |
| Ghostty 設定リファレンス | https://ghostty.org/docs/config/reference |
| Claude Code 公式ドキュメント(コスト管理) | https://code.claude.com/docs/ja/costs |
| Claude Code 公式ドキュメント(ベストプラクティス) | https://code.claude.com/docs/en/best-practices |