Skip to content

原文(日本語に翻訳)

フルスクリーンの代替画面レンダラーをオプトアウトし、会話をターミナルのネイティブスクロールバックに保持するための CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 環境変数を追加しました。

原文(英語)

Added CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 env var to opt out of the fullscreen alternate-screen renderer and keep the conversation in the terminal's native scrollback

概要

Claude Codeはデフォルトでターミナルの代替スクリーン(alternate screen)を使用したフルスクリーン表示を行います。CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 を設定することで、この動作を無効化し、通常のターミナルのスクロールバックに会話履歴を保持できます。ターミナルマルチプレクサや特定の環境でフルスクリーン表示が問題になる場合に便利です。

基本的な使い方

環境変数を設定してClaude Codeを起動します。

bash
# 一時的に無効化して起動
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude

# または環境変数をエクスポートして設定
export CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1
claude

シェルの設定ファイルに追加して永続化することもできます。

bash
# ~/.bashrc または ~/.zshrc に追加
echo 'export CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1' >> ~/.bashrc
source ~/.bashrc

実践例

tmuxやscreen環境での使用

ターミナルマルチプレクサ使用時に代替画面が干渉する場合に有効です。

bash
# tmuxセッション内でClaude Codeを使用する場合
# ~/.tmux.conf または tmuxの設定で環境変数を渡す
# tmux.confに追加:
# set-environment -g CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN 1

# または直接起動時に設定
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude

CI/CDやスクリプト環境での使用

非対話的な環境やパイプライン内でClaude Codeを使用する際に有効です。

bash
#!/bin/bash
# CI環境でのClaude Code実行スクリプト
export CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1

# ヘッドレスモードと組み合わせて使用
claude --print "コードのレビューをしてください" < review_target.py

ログ取得目的での使用

会話内容をターミナルのスクロールバックに残してログとして活用する場合。

bash
# ターミナルのスクロールバックに会話が残るため、teeでファイルにも記録できる
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude 2>&1 | tee ~/claude-session.log

VSCode統合ターミナルでの使用

VSCodeの統合ターミナルでフルスクリーン表示が問題になる場合に有効です。

json
// .vscode/settings.json または ~/.config/Code/User/settings.json
{
  "terminal.integrated.env.linux": {
    "CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN": "1"
  },
  "terminal.integrated.env.osx": {
    "CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN": "1"
  }
}

注意点

  • この設定を有効にすると、Claude Codeのフルスクリーン表示機能(ステータスバー、ツールコールの整形表示など)が制限される場合があります。
  • 代替画面を無効化すると、会話履歴がターミナルのスクロールバックに残るため、機密情報を扱う場合は注意が必要です。
  • CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 と同様の問題が発生する 2.1.132-fullscreen-blank-fix.md の修正(スリープ後の白画面問題)と組み合わせることで、より安定した動作が期待できます。
  • 値は 1 を設定します。0 や空文字列では無効化されません。

関連情報