Claude Code のターミナル設定(改行・通知・tmux・テーマ)

Claude Code 入門 8分で読めます

Shift+Enter を押したら改行ではなく送信されてしまった、Option キーのショートカットが効かない、長い作業が終わっても気づけない。Claude Code は設定なしでどのターミナルでも動きますが、ターミナル側の設定によってはこうした「思った通りにならない」場面があります。本記事は公式ドキュメント「Configure your terminal for Claude Code」に基づき、症状ごとの対処を日本語でまとめた非公式解説です。

ここで扱うのはターミナルが Claude Code に正しい信号を送るための設定です。Claude Code 自身がどのキーに反応するかを変えたい場合は、Claude Codeのキーボードショートカットをカスタマイズするを参照してください。いまの操作感に不満がなければ、この設定は不要です。

複数行のプロンプトを入力する

Enter はメッセージの送信です。送信せずに改行したいときは Ctrl+J を押すか、\ を入力してから Enter を押します。この2つはどのターミナルでも設定なしで使えます。

多くのターミナルでは Shift+Enter でも改行できますが、対応状況はターミナルによって異なります。

ターミナルShift+Enter での改行
Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal設定不要
kitty keyboard protocol に対応した他のターミナル(foot、Alacritty 0.16 以降など)設定不要(Claude Code v2.1.269 以降が必要)
VS Code、Cursor、Devin Desktop、Alacritty 0.16 より前、Zed/terminal-setup を一度実行する
gnome-terminal、PyCharm や Android Studio などの JetBrains IDE使えない。Ctrl+J か \ と Enter を使う

/terminal-setup は、対象ターミナルの設定ファイルに Shift+Enter のキー割り当てを書き込みます。初回は Installed VSCode terminal Shift+Enter key binding のような確認が表示され、すでに設定済みなら何も変更しません。ホスト側のターミナル設定を書き換える必要があるため、tmux や screen の中ではなくホストのターミナルで直接実行します。

VS Code・Cursor・Devin Desktop では、あわせてエディタ設定も2つ変わります。統合ターミナルの文字化けを防ぐために terminal.integrated.gpuAcceleration"off" に、フルスクリーンモードでのスクロールを滑らかにするために terminal.integrated.mouseWheelScrollSensitivity を設定します。GPU アクセラレーションを戻したい場合は "auto" に設定してウィンドウを再読み込みします。Zed では keymap.json を必要に応じてバックアップしてから統合し、読み込みや検証に失敗した場合はファイルを変えずに、追加すべき設定を表示します。

Enter で改行して Shift+Enter で送信する、といった入れ替えをしたい場合は、キー割り当てファイルで chat:newlinechat:submit を割り当て直します。

macOS で Option キーを使えるようにする

Claude Code には Option+Enter(改行)や Option+P(モデル切り替え)など Option キーを使うショートカットがあります。しかし macOS の多くのターミナルは既定で Option を修飾キーとして送らないため、有効にするまで反応しません。設定項目は多くの場合「Use Option as Meta Key」という名前です(Meta は Option/Alt キーの Unix での歴史的な呼び名)。

Ghostty や Kitty などその他のターミナルでは、設定ファイルで Option-as-Alt または Option-as-Meta に相当する項目を探してください。

完了時にベルや通知を受け取る

Claude が作業を終えたとき、または権限の確認で止まったときに、ユーザーが離席しているようであれば通知イベントが発生します。これをベルやデスクトップ通知として受け取れば、長い作業の間に別の仕事ができます。

既定でデスクトップ通知が送られるのは Ghostty・Kitty・iTerm2 だけです。それ以外のターミナルでは、設定の preferredNotifChannel"terminal_bell" にするとターミナルのベルが鳴ります。

// ~/.claude/settings.json
{
  "preferredNotifChannel": "terminal_bell"
}

デスクトップ通知は SSH 越しでも手元のマシンに届きます。Ghostty と Kitty はそのまま OS の通知センターに転送しますが、iTerm2 では Settings → Profiles → Terminal で「Notification Center Alerts」にチェックを入れ、「Filter Alerts」から「Send escape sequence-generated alerts」を有効にする必要があります。それでも出ない場合は、OS 側でターミナルアプリに通知の許可があるか、tmux 内ならパススルーが有効かを確認します。

どのターミナルでも使える方法として、Notification フックで音を鳴らしたり任意のコマンドを実行したりもできます。フックは組み込みの通知と並行して動きます。macOS でシステム音を鳴らす公式の例は次のとおりです(フックの詳細は Claude Code のフックで操作を自動化するを参照)。

// ~/.claude/settings.json
{
  "hooks": {
    "Notification": [
      {
        "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
      }
    ]
  }
}

tmux 内で使うための設定

tmux の中で Claude Code を動かすと、既定では Shift+Enter が改行ではなく送信になり、デスクトップ通知や進捗バーも外側のターミナルに届きません。~/.tmux.conf に次の3行を追加し、tmux source-file ~/.tmux.conf で稼働中のサーバーに反映します。

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

allow-passthrough は通知や進捗の更新を tmux に握りつぶされずに外側のターミナルへ通すための設定です。extended-keys の2行は、tmux が Shift+Enter と通常の Enter を区別できるようにし、改行ショートカットを機能させます。外側のターミナルが Shift+Enter に対応していても、tmux 内ではこの設定が必要です。

なお Windows で Backspace を押すと単語ごと消えてしまう場合は、ターミナルが通常の Backspace として ^H を送っています。環境変数 CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0 を設定すると、1文字ずつ消えるようになります。

テーマ・描画・Vim モードを整える

カラーテーマ

/theme コマンド、または /config のテーマ選択で、ターミナルに合うテーマを選べます。auto を選ぶとターミナルの背景が明るいか暗いかを判定し、OS の外観の切り替えにも追従します。ターミナル自体の配色は Claude Code ではなくターミナルアプリ側の設定です。

独自テーマも作れます。/theme の一覧末尾の New custom theme… から対話的に作成するか、~/.claude/themes/ に JSON ファイルを置きます。ファイル名(拡張子なし)がテーマの識別子になり、選ぶと custom:<識別子> として保存されます。

// ~/.claude/themes/dracula.json
{
  "name": "Dracula",
  "base": "dark",
  "overrides": {
    "claude": "#bd93f9",
    "error": "#ff5555",
    "success": "#50fa7b"
  }
}

base には darklightdark-daltonizedlight-daltonizeddark-ansilight-ansi のいずれかを指定し(既定は dark)、overrides で上書きしたい色トークンだけを書きます。色は #rrggbb#rgbrgb(r,g,b)ansi256(n)ansi:<色名> の形式が使え、不明なトークンや不正な値は無視されます。Claude Code はこのフォルダを監視しているので、ファイルを編集すると実行中のセッションにも反映されます(フォルダ自体を起動後に作った場合は一度だけ再起動が必要)。

ちらつきが気になるならフルスクリーン描画

作業中に画面がちらつく、スクロール位置が飛ぶといった場合は、/tui fullscreen でフルスクリーン描画モードに切り替えます。会話はそのまま再起動され、以降のセッションもフルスクリーンで始まります。起動前に環境変数 CLAUDE_CODE_NO_FLICKER=1 を設定する方法もあります。このモードではターミナル本来のスクロールバックではなく、マウスや PageUp で Claude Code 内をスクロールします。

大きな内容の貼り付け

800文字または3行を超える内容を貼り付けると、入力欄には [Pasted text #1 +120 lines] のようなプレースホルダーが表示されますが、送信時には全文が送られます。ファイル全体や長いログのような大きな入力は、貼り付けずにファイルへ書き出して Claude に読ませるほうが、会話の記録も読みやすくなると公式は勧めています。

Vim キーバインドで編集する

プロンプト入力欄には Vim 風の編集モードがあります。/config の Editor mode で切り替えるか、~/.claude/settings.json"editorMode": "vim" を設定します。hjkl での移動、v/V での選択、テキストオブジェクトと組み合わせた d/c/y などに対応しています。通常の Vim と違い、INSERT モードでも Enter は送信になるので、改行は NORMAL モードの o/O か Ctrl+J を使います。

本記事は Anthropic 公式ドキュメント「Configure your terminal for Claude Code」に基づく非公式の日本語解説で、コマンド一覧と設定リファレンスとも照合しています(確認日 2026-09-17)。バージョンによって挙動が変わるため、最新情報は公式ページで確認してください。