tmux + Claude Code でログが切れる問題の原因と対策。
原因
主に tmuxのスクロールバック(履歴)バッファが小さいことが原因です。デフォルトは2000行しかなく、Claude Codeの長い出力はすぐに溢れる。
対策①:tmuxのスクロールバックを増やす(最重要)
~/.tmux.conf に追記:
# スクロールバックを50,000行に増やす
set-option -g history-limit 50000
反映方法:
tmux source-file ~/.tmux.conf
既存セッションにも即時反映したい場合:
tmux set-option -g history-limit 50000
対策②:Claude Codeの出力をファイルに保存する
tmuxペインの出力をそのままログとして保存:
# ログ記録開始
tmux pipe-pane -o 'cat >> ~/claude_session.log'
# 停止
tmux pipe-pane
または script コマンドで丸ごと記録:
script -a ~/claude_session.log
# この中でclaude codeを起動する
対策③:tmuxのログ自動保存プラグイン(tmux-logging)
~/.tmux.conf にプラグイン追加(TPM使用の場合):
set -g @plugin 'tmux-plugins/tmux-logging'
キーバインド:
prefix + shift + p→ ペインのログ保存開始/停止prefix + alt + p→ 全スクロールバックをファイル保存
対策④:Claude Code側の出力制御
Claude Codeに長い出力を複数回に分けて返してもらうよう指示する、または .claude/settings.json でコンテキスト設定を調整するのも有効です。
おすすめの組み合わせ
# ~/.tmux.conf
set-option -g history-limit 100000
set -g @plugin ‘tmux-plugins/tmux-logging’
