claude-code-notifier
使い方 ガイド よくある質問
◐日本語
English العربية Deutsch Español Français עברית Italiano 日本語 한국어 Nederlands Polski Português (Brasil) Русский Türkçe Tiếng Việt 简体中文 繁體中文
はじめる
すべてのガイド

tmux や screen での Claude Code:デタッチ中のセッションから通知を受け取る

更新日: 2026年10月31日 · 6 分で読めます
このページの内容 01アタッチ中:tmux に通知を通させる 02アタッチ中だが別のウィンドウにいる場合:ベルを使う 03どのセッションが対応を求めているかを示す 04デタッチ中:push が必要 05Claude Code Notifier の位置づけ 06GNU screen 07よくある質問

tmux の中では、~/.tmux.conf に set -g allow-passthrough on を追加するまで、Claude Code のデスクトップ通知は外側の terminal に届きません。これでアタッチ中は解決します。デタッチするとセッションを表示している terminal がなくなるため画面上で知らせる手段はありませんが、Claude Code は動き続け、hook も発火し続けます。デタッチ中のセッションから通知を受け取るには、terminal に頼る hook ではなく、スマートフォンやチャットアプリにネットワーク経由で push を送る hook を使います。

01アタッチ中:tmux に通知を通させる

tmux は Claude Code と terminal の間に入り、デフォルトでは Claude Code がデスクトップ通知に使うエスケープシーケンスを握りつぶしてしまいます。Anthropic の terminal ガイドでは、~/.tmux.conf に次のブロックを追加するよう案内しています。

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

実行中のサーバーに反映します。

tmux source-file ~/.tmux.conf

allow-passthrough により、通知や進捗表示が外側の terminal に届くようになります。残りの行は Shift+Enter での改行を直すためのものです。これを設定すると、tmux の外で Claude Code の通知を表示できる terminal(Ghostty、Kitty、アラートを有効にした iTerm2)では、tmux の中でも表示されるようになります。

terminalSequence を返す hook についても同様です。Anthropic の hooks リファレンスによると、これらのシーケンスは Claude Code 自身が書き出すため、tmux や GNU screen の中でも動作します。例は macOS、Linux、SSH の各ガイドにあります。

02アタッチ中だが別のウィンドウにいる場合:ベルを使う

Claude Code をある tmux ウィンドウで動かし、別のウィンドウで作業しているなら、ベルがシンプルな合図になります。Claude Code が常にベルを鳴らすよう設定します。

{
  "preferredNotifChannel": "terminal_bell"
}

次に、~/.tmux.conf で tmux がベルに反応するようにします。

setw -g monitor-bell on
set -g bell-action other
set -g visual-bell off

monitor-bell(デフォルトで有効)はベルを鳴らしたウィンドウにフラグを立て、tmux はステータスラインでそのウィンドウに ! を付けます。bell-action other は、表示中以外のウィンドウで鳴ったベルを terminal に渡すので、terminal がビープ音を鳴らしたりアイコンを跳ねさせたりできます。表示中のウィンドウも含めるなら any を使います。visual-bell を on にすると、ベルを渡す代わりに tmux 内にメッセージを表示します。

03どのセッションが対応を求めているかを示す

複数のセッションを動かしていると、「Claude が対応を求めています」だけの通知ではあまり役に立ちません。hook はペインの環境内で実行されるため、tmux にセッション名とウィンドウ名を問い合わせられます。次の Linux の例では、それらをデスクトップ通知に表示します。

#!/bin/bash
msg=$(jq -r '.message // "Claude Code needs your attention"')
where=""
if [ -n "$TMUX_PANE" ]; then
  where=$(tmux display-message -p -t "$TMUX_PANE" '#S:#W')
fi
notify-send "Claude Code ${where}" "$msg"

~/.claude/hooks/notify-tmux.sh として保存し、chmod +x を実行してから、Notification または Stop の hook コマンドとして指定します。#S はセッション名、#W はウィンドウ名です。tmux new -s api-refactor のようにセッションに名前を付けておけば、通知を見るだけでどこに戻ればよいかわかります。notify-send はお使いのプラットフォームのコマンドや push に置き換えてください。セッションを見分ける方法は複数セッションのガイドでほかにも紹介しています。

04デタッチ中:push が必要

デタッチこそ tmux を使う理由です。長いタスクを開始し、デタッチして席を離れます。Claude Code はデタッチされたセッションで作業を続けます。ただしこの時点で、エスケープシーケンスやベルを表示する terminal は存在しません。また tmux サーバーを SSH 経由で起動した場合は、デスクトップ通知のコマンドにも届け先がないことがあります。

ネットワークリクエストを送る hook なら、誰かがアタッチしているかどうかは関係ありません。push サービスはどれでも使えます。ntfy ガイドや Telegram・Slack・Discord ガイドに、そのまま貼り付けられる hook があります。ただしこれらは何かが起きたことを知らせるだけで Claude に応答はできないため、許可プロンプトは tmux attach -t api-refactor で再アタッチするまで待ったままになります。

05Claude Code Notifier の位置づけ

Claude Code Notifier は Claude Code の hook を利用した独立したツールです(Anthropic ではなく TouchTap が開発)。無料のコマンドラインツール ccn は Mac、Windows、Linux で動作します。terminal ではなく Claude Code に hook するため、tmux、screen、素のシェルのいずれでも、アタッチ中でもデタッチ中でも同じように動きます。

curl -fsSL https://claudecodenotifier.com/install.sh | sh

デスクトップマシンでは、Claude の完了時、許可が必要なとき、質問が来たときにデスクトップ通知を表示します。スマートフォンをペアリングすると、同じイベントが TouchTap の暗号化リレーを経由して push 通知として届きます。SSH で接続したサーバーも含め、ccn が動くどのマシンからでも受け取れます。

デタッチ中のセッションで生じる空白は、スマートフォンが埋めてくれます。許可リクエストが来たら、スマートフォンから「今回だけ許可」「このセッション中は許可」「拒否」を選べ、再アタッチしなくても Claude は作業を続けます。Claude の質問には回答を選べ、完了したらすぐに次の指示を送れます。直近 30 秒以内に入力していれば、スマートフォンを待たずに terminal が通常どおり確認します。席を外している場合は、設定した上限時間(hold_ceiling_seconds)まで terminal がスマートフォンからの応答を待ち、キーボードに触れた瞬間に待機をやめます。

スマートフォンのペアリング、長時間タスク中に席を外す、ccn のページもご覧ください。スマートフォンアプリにはサブスクリプションか買い切りの購入が必要です。詳しくは料金をご覧ください。

06GNU screen

この点では screen も tmux とほぼ同じです。Anthropic の hooks リファレンスによると、hook の terminalSequence 出力は screen の中でも動作し、表示していないウィンドウでベルが鳴ると screen がメッセージを表示します。デタッチした screen セッションにも、デタッチした tmux と同じ問題があります。画面に何も表示されないので、push を使ってください。

07よくある質問

tmux の中で Claude Code の通知が表示されないのはなぜですか?

passthrough が有効でない限り、tmux は Claude Code が使うエスケープシーケンスをブロックします。~/.tmux.conf に set -g allow-passthrough on を追加し、tmux source-file ~/.tmux.conf を実行してください。

tmux からデタッチしても Claude Code は動き続けますか?

はい。プロセスは tmux サーバー上で動き続け、hook も引き続き実行されます。届かなくなるのは、アタッチされたターミナルが必要な通知だけです。

デタッチした tmux セッションから通知を受け取るには?

ntfy、チャットの Webhook、Claude Code Notifier のスマホアプリなど、ネットワーク経由で push を送る hook を使ってください。ターミナルのエスケープシーケンスやベルは、アタッチ中のクライアントがないと機能しません。

再アタッチせずに権限リクエストを承認できますか?

単純な push サービスではできません。Claude Code Notifier とペアリング済みのスマホがあれば、スマホからリクエストを許可または拒否でき、デタッチしたセッションはそのまま処理を続けます。

どの tmux セッションが対応を待っているか見分けるには?

セッションに名前を付け、その名前を通知に含めましょう。hook からは tmux display-message -p -t "$TMUX_PANE" '#S:#W' で取得できます。

Claude Code Notifier Claude Code の処理完了や入力待ちをスマートフォンへの push で受け取り、そのまま承認・拒否・回答できます。ccn コマンドラインツールは Mac、Windows、Linux で無料で使えます。
iOS 版をダウンロード Android 版をダウンロード ccn をインストール

関連ガイド

  • SSH 経由のリモートサーバーで動く Claude Code から通知を受け取るVPS やリモートサーバー上で SSH 経由で Claude Code を実行しても通知を受け取れます。SSH を通る terminal エスケープシーケンスか、ccn によるスマートフォンへの push を使います。
  • 複数の Claude Code セッションを動かすとき、どれが対応を待っているかを知る方法Claude Code のセッションや worktree を並行して動かしていますか?セッションに名前を付け、すべての通知にプロジェクト名を入れ、各リクエストを正しいセッションに返しましょう。
  • Claude Code を動かしたまま席を離れる:ワークフローClaude Code で長時間タスクを回すための実践的な手順です。コンピューターをスリープさせない、不要なプロンプトを減らす、スマートフォンで通知を受けてそこから返信する、という流れを紹介します。
  • Claude Code の組み込み通知:terminal bell と preferredNotifChannelClaude Code の組み込みアラートの仕組み、preferredNotifChannel の各値の動作、そして iTerm2、Apple Terminal、Kitty、Ghostty、tmux の設定方法を解説します。
claude-code-notifier

Claude Code Notifier は独立したサードパーティ製アプリケーションです。Anthropic, PBC との提携関係はなく、同社による承認や後援も受けていません。「Claude」および「Claude Code」は Anthropic, PBC の商標です。

アプリ iOS アプリ Android アプリ macOS・Windows・Linux 用 ccn すべてのガイド
法的情報 プライバシーポリシー 利用規約 その他の言語 © 2026 touchtap. 無断複写・転載を禁じます。 TouchTap Ltd はイングランド・ウェールズで登記されています(会社番号 13942589)。