【小ネタ】Claude Code 起動中に iTerm2の背景色を変えたい

【小ネタ】Claude Code 起動中に iTerm2の背景色を変えたい

2026.01.19

Claude Codeを使っていると、ターミナルが通常の状態なのか Claude Code 実行中なのか、パッと見で分からなくなることがあります。通常のターミナルで Claude Code へのプロンプトを投げてしまったり、 逆に Claude Code 内で通常のコマンドを叩いてしまったり …といったことが結構あります。

本ブログでは、Claude Code 起動中に iTerm2 の背景色を変えることで、 実行状態を視覚的に判別できるようにする方法を紹介します。 Claude Code の Hooks と AppleScript(osascript) を活用します。

前提情報

Claude Code の Hooks

Claude Code の Hooks は特定ポイントでシェルコマンドを実行するための機能です。 Claude Code のライフサイクルにて、ユーザー定義のシェルコマンドを実行できます。 たとえば「セッションの開始時」や「サブエージェントのタスク完了後」などです。

構文の詳細については Hooksリファレンス を参照ください。 設定ファイル(settings.json, settings.local.json)として管理します。

設定ファイルのパス 備考
~/.claude/settings.json ユーザー設定
.claude/settings.json プロジェクト設定
.claude/settings.local.json ローカルプロジェクト設定

AppleScriptで iTerm2 背景を変える

AppleScript は macOS に組み込まれているスクリプト言語です。 macOS内の様々な作業(たとえばショートカット作成や反復タスク、アプリ操作など)の自動化に役立ちます。

iTerm2 は AppleScript をサポートしています。 iTerm2 の各種設定/操作をシェルスクリプトから実行可能です。 たとえば以下コマンドで デフォルトプロファイルにて新しいiTerm2ウィンドウを立ち上げられます。

AppleScriptの例
osascript <<EOF
tell application "iTerm2"
  create window with default profile
end tell
EOF

そして、以下コマンドで iTerm2 の背景を変えられます。

osascriptで背景色を変更
osascript <<EOF
tell application "iTerm2"
  tell current session of current window
    set background color to {65535, 63000, 58000}
  end tell
end tell
EOF

sc-2026-01-19_12-18143

Claude Code 起動中に iTerm2の背景を変える

これまでの前提情報で、伝えたい要素はほぼ揃いました。 「iTerm2の背景色を変える」シェルスクリプトを作成して、 Claude Code セッション開始/終了時に、シェルスクリプトを実行する のみです。

これを Hooks 設定に落とし込むと以下のようになります。

Hooks設定の概略
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "{iTerm2の背景色を変えるシェルスクリプト(開始)}"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "{iTerm2の背景色を変えるシェルスクリプト(終了)}"
          }
        ]
      }
    ]
  }
}

iTerm2の背景色を変えるシェルスクリプトを ~/.claude/scripts/set-iterm2-bg.sh に作成しました。 引数 start / end で背景色を切り替えます。 色はお好みに応じて変更してください。

~/.claude/scripts/set-iterm2-bg.sh
#!/bin/bash

case "$1" in
  start) color="{65535, 63000, 58000}" ;; # 薄橙: 適宜更新ください
  end)   color="{65535, 65535, 65535}" ;; # 白: 適宜更新ください
  *)     echo "Usage: $0 {start|end}" >&2; exit 1 ;;
esac

osascript <<EOF
tell application "iTerm2"
  tell current session of current window
    set background color to $color
  end tell
end tell
EOF

実行権限を付与しておきます。

chmod +x ~/.claude/scripts/set-iterm2-bg.sh

最終的な Hooks 設定は以下のとおりです。

~/.claude/settings.json
{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/scripts/set-iterm2-bg.sh start"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "~/.claude/scripts/set-iterm2-bg.sh end"
          }
        ]
      }
    ]
  }
}

動作確認

Claude Code 起動時に、背景色が変わることを確認しました。

sc-2026-01-19_13-30815

そして、Claude Code 終了時に元に戻ります。

sc-2026-01-19_13-16219

おわりに

Claude Code を付けてる状態を目視で見やすくしてみました。
ちょっとした工夫ですが、普段 Claude Code と通常のシェルを切り替えながら作業している方[1]には便利かもしれません。

以上、参考になれば幸いです。

参考

脚注
  1. Claude Code でも ! 押下でシェルを実行できますが、補完機能などが物足りないので、あまり使っていないです。 ↩︎

この記事をシェアする

FacebookHatena blogX

関連記事