M
masaki.work

Ghostty × Claude Code でPCが重くなる問題の原因と4つの対策

ghostty claude-code mac performance

この記事の全文をコピーして、AIに「この通りに設定をガイドして」と渡すと便利です

📊この記事の図解版があります。内容を視覚的にまとめたページで、全体像をサッと把握できます

図解を見る

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つの対策と設定方法

各対策がどの原因に効くかを一覧にまとめました。

#対策効く原因変更するファイル
1Ghostty を最新版に切り替える原因1~/.config/ghostty/config
2スクロールバックを制限する原因1~/.config/ghostty/config
3Node.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-cleanupClaude 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