
【小ネタ】Claude Code 起動中に iTerm2の背景色を変えたい
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ウィンドウを立ち上げられます。
osascript <<EOF
tell application "iTerm2"
create window with default profile
end tell
EOF
そして、以下コマンドで iTerm2 の背景を変えられます。
osascript <<EOF
tell application "iTerm2"
tell current session of current window
set background color to {65535, 63000, 58000}
end tell
end tell
EOF

Claude Code 起動中に iTerm2の背景を変える
これまでの前提情報で、伝えたい要素はほぼ揃いました。 「iTerm2の背景色を変える」シェルスクリプトを作成して、 Claude Code セッション開始/終了時に、シェルスクリプトを実行する のみです。
これを Hooks 設定に落とし込むと以下のようになります。
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "{iTerm2の背景色を変えるシェルスクリプト(開始)}"
}
]
}
],
"SessionEnd": [
{
"hooks": [
{
"type": "command",
"command": "{iTerm2の背景色を変えるシェルスクリプト(終了)}"
}
]
}
]
}
}
iTerm2の背景色を変えるシェルスクリプトを ~/.claude/scripts/set-iterm2-bg.sh に作成しました。 引数 start / end で背景色を切り替えます。 色はお好みに応じて変更してください。
#!/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 設定は以下のとおりです。
{
"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 起動時に、背景色が変わることを確認しました。

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

おわりに
Claude Code を付けてる状態を目視で見やすくしてみました。
ちょっとした工夫ですが、普段 Claude Code と通常のシェルを切り替えながら作業している方[1]には便利かもしれません。
以上、参考になれば幸いです。
参考
- Claude Code フックの使い始め - Claude Code Docs
- Hooksリファレンス - Claude Code Docs
- Scripting - Documentation - iTerm2 - macOS Terminal Replacement
Claude Code でも
!押下でシェルを実行できますが、補完機能などが物足りないので、あまり使っていないです。 ↩︎







