対象: Claude Code を中心に、ChatGPT/Codex・Gemini・Cursor・Devin・Cline を横断比較。一次情報(Anthropic 公式 docs / 公式 GitHub)優先。推測は 推測 と明記。
結論:これは「不親切」ではなく、LLMエージェントの構造(ターン=リクエスト/レスポンス)に由来する合理的なトレードオフです。そして 2026 年現在、「終わったら必ず教えて」は公式機能だけで実現できます。
Stop フック(応答完了時に発火)+ Notification フック(入力待ち/許可待ちで発火)に、Windows なら PowerShell の通知コマンドを刺すだけ23。/loop で「自分を起こす」近いことが可能410。トフィーさんの MEMORY ルール「長時間タスクは途中で進捗報告」は 運用での回避。本DRはそれを 仕組みで自動化する手段をまとめたものです。
~/.claude/settings.json)に数行。30分で終わります。第7章をそのまま貼ってください。AIコーディングエージェントの普及で、1ターンが「数秒の補完」から「数分〜数十分の自律作業」へと長尺化した。Anthropic は Claude Code が VS Code だけで 2,900万インストールに達したと述べている5。二次情報 長尺化により「終わったのに画面を見ていないと気づけない」体験ギャップが顕在化し、各社に同種の機能要望が殺到している。
需要の裏付けは「公式が機能を出したこと」と「他社で同じ要望が大量に立っていること」。Codex(OpenAI)には「完了音を鳴らして」系の Issue が複数(#3962 / #9093 / #9672 等)12、Cline には「タスク完了/ブロック時に効果音」Discussion #322813、Claude Code 公式 repo にも「リモート時に完了プッシュを」Issue #28765 / #29438 が立つ6。=全エージェント共通の構造的ペインであり、ベンダー単体の手抜きではない。
「終わったら教えて」を実現する具体策を、確実性・手軽さ・常時性で評価。公式一次公式だが二次報道推測
| # | 手段 | 仕組み/発火 | 到達先 | 確実性 | 出典 |
|---|---|---|---|---|---|
| 1 | Claude Code Stop フック 公式 | 主エージェントが応答を終えた瞬間に発火(ユーザー中断時は発火しない) | デスクトップ通知/音/任意スクリプト | 高 | 211 |
| 2 | Claude Code Notification フック 公式 | 入力待ち/許可待ち/アイドル時に発火(matcher で idle_prompt 等を選択可) | デスクトップ通知 | 高 | 3 |
| 3 | Remote Control プッシュ通知 公式/二次 | v2.1.110 で追加。タスク完了/承認必要時にモバイルへ push(要 Remote Control 有効+Claude アプリ+設定1つ) | スマホ push | 高(報) | 56 |
| 4 | Routines(クラウド常駐) 公式 | Anthropic 管理基盤で定時/API/GitHub 起動。PC オフでも走る。Slack 等へ結果投稿可 | Slack/PR/connector | 高 | 4 |
| 5 | Desktop scheduled tasks 公式 | デスクトップアプリ経由で自PC上にローカル定時実行(ローカルファイルにアクセス可) | ローカル | 中 | 10 |
| 6 | /loop 等の in-session スケジュール 公式 | 開いている CLI セッション内でポーリング。新会話開始で止まる(--resumeで復元) | セッション内 | 中 | 10 |
| 7 | SubagentStop フック 公式 | サブエージェント完了で発火。並列タスクの個別完了通知に | 通知/ログ | 中 | 2 |
| 8 | Cursor 完了通知(内蔵) | エージェント/パネル応答完了で通知・音(要望に応じ拡張中) | デスクトップ通知/音 | 中 | 1214 |
| 9 | VS Code 拡張 / MCP(herald, sound-mcp, AI Agent Sound Notification 等) | Claude/Cursor の完了・承認待ちで音/TTS/フォーカス移動。クロスプラット | 音/TTS/通知 | 中 | 14 |
| 10 | 外部連携(Pushover/ntfy/Slack webhook をフックから叩く) 構成例 | Stop/Notification フックから curl でモバイル push サービスを叩く | スマホ/Slack | 高 | 215 |
トフィーさん向け第一候補=#1 Stop+#2 Notification(Windows PowerShell)。スマホで受けたいなら #3 Remote Control。PC オフでも回したい定常作業は #4 Routines。
主要なエージェント実装は例外なく同じ形に収束している ―― 「LLM を呼ぶ → 応答にツール呼び出しが含まれるか判定 → 含まれれば実行して結果を入力に戻す → 含まれなければ停止」という while ループ(いわゆる ReAct ループ)7。Anthropic 自身も「エージェントとは、環境フィードバックを使ってツールをループで回す LLM にすぎない」と定義している1。
# エージェントの本質(擬似コード) while True: out = LLM(context) # 1回の推論=1ターンの一部 if out.has_tool_calls: results = run_tools(out) # ファイル編集/コマンド実行 context += results # 結果を“次の入力”に戻す else: break # ★出力が尽きた=ターン終了。ここで「止まる」 # ↑ タイマーで自分を再起動する仕組みは“ここには無い”。次は人間の入力待ち。
ポイントは 「停止=バグではなく到達点」。LLM は状態を持つデーモンではなく「入力→出力の純粋関数」であり、ループを駆動する燃料は毎ターン渡される入力(コンテキスト)。出力が空(=もうやることがない)になればループは正しく終わる。「終わったあとに自発的に喋り出す」には、別途“起こす”トリガ(タイマー/イベント/通知機構)を外付けする必要がある。これが本DRのテーマの核心。構造の整理
=「自分から報告しない」のは、同じ設計が生む副作用。能動通知を足すこと自体は安全設計と矛盾しないので、各社は「停止イベントにフック/プッシュを後付け」する形で解決している。
| フック | 発火タイミング | matcher 不要 | 用途 |
|---|---|---|---|
Stop | 主エージェントが応答を終えた時(ユーザー中断では発火しない) | 不要(毎回発火) | 完了通知の本命 |
SubagentStop | サブエージェント完了時 | 不要 | 並列タスク個別通知 |
Notification | 許可待ち/アイドル待ち等(permission_prompt/idle_prompt/auth_success 等を matcher 指定可) | 空="全種" | 入力待ち通知の本命 |
PostToolUse | ツール成功後(Edit|Write|Bash 等を matcher 指定) | matcher 推奨 | 特定の長時間処理の完了検知 |
SessionEnd | セッション終了時 | 不要 | 最終サマリ/後片付け |
UserPromptSubmit | ユーザー送信時 | 不要 | 前処理/監査 |
出典:Claude Code 公式 Hooks リファレンス/Hooks ガイド2311。デフォルトタイムアウトは多くのイベントで 600 秒。フックは制御端末を持たない場合があり、その際は出力JSONの terminalSequence 等で通知を発火する2。
推測(モデル試算・実測値ではない) 完了/入力待ちに気づくまでの「見落とし待機」を1セッションあたり平均 5 分、1日 12 セッションと仮定。
| 項目 | 通知なし | Stop+Notification導入後 |
|---|---|---|
| 1セッションの見落とし待機 | 約5分 | 約0.5分(即気づく) |
| 1日の浪費(12セッション) | 約60分 | 約6分 |
| 月20営業日 | 約20時間/月 | 約2時間/月 |
| 並列セッションの実効本数 | 1〜2本(張り付き前提) | 3〜5本(呼ばれたら戻る) |
| 導入コスト | — | 初期30分・ランニング¥0(OS標準通知) |
=月18時間規模の回収が現実的。Remote Control(push)を足すと「席を外していても回せる」ため並列の上限がさらに上がる。ランニング費用は OS 標準通知なら 0 円、Pushover 等の外部 push は買い切り/小額。
判定:「Anthropic が不親切」は 誤り。ただし「デフォルトでは通知が来ない=自分で1回設定が要る」点は 改善余地のある UX。
=結論:安全・コスト設計上の合理的トレードオフ。短所(初期OFF)はユーザー側設定で 30 分で消せる。
| 製品 | ターン駆動か | 完了/入力待ち通知 | 備考 |
|---|---|---|---|
| Claude Code | はい | Stop/Notification フック・Remote Control push・Routines | 公式の選択肢が最も豊富25 |
| ChatGPT / Codex (OpenAI) | はい | 要望多数(完了音 Issue #3962/#9093/#9672)。クラウドエージェントは完了でUIに反映 | 音通知は継続要望段階12 |
| Google Gemini | はい | CLI/IDE 統合での通知は環境依存(要確認) | 未確認 |
| Cursor | はい | 内蔵の完了通知/音あり+拡張で強化 | マルチタスク前提の設計1214 |
| Devin | クラウド常駐型に近い | Slack 連携で進捗/完了を投稿(人に話しかける UX) | 非同期エージェントの代表一般理解 |
| Cline | はい | 要望 Discussion #3228(完了/ブロック音)。MCP/拡張で付与可 | OSS ゆえ拡張で補完1314 |
傾向: ローカルCLI系(Claude Code/Codex/Cline)は「停止イベント+フック/拡張で後付け通知」、クラウド常駐系(Devin/Routines)は「Slack 等に結果を投げる」。前者は仕組み上どうしても“一旦止まる”ので通知が要る、後者はもともと無人前提なので結果配信が標準。
Step 1(10分):~/.claude/settings.json(Windowsは C:\Users\todak\.claude\settings.json)に Stop+Notification を追加。公式例ベース3
{
"hooks": {
"Notification": [
{ "matcher": "",
"hooks": [{ "type": "command",
"command": "powershell.exe -Command \"[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code が入力/承認を待っています','Claude Code')\"" }]
}
],
"Stop": [
{ "hooks": [{ "type": "command",
"command": "powershell.exe -Command \"[console]::beep(880,300); [System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('タスク完了:Claude Code が応答を終えました','Claude Code 完了')\"" }]
}
]
}
}
公式の Windows 例はこの PowerShell MessageBox 形3。鳴る音だけで十分なら [console]::beep に。BurntToast モジュール導入でトースト通知化も可(任意)。
Step 2(5分):CLI で /hooks を開き、Notification と Stop に件数が付いているか確認(メニューは読み取り専用)3。何か承認が要る指示を投げ、別ウィンドウに切り替えて通知が出るかテスト。
Step 3(10分・スマホで受けたい場合):Claude モバイルアプリを入れ、Remote Control を有効化+プッシュ通知トグルを ON。Remote Control は claude.ai の OAuth 認証(APIキー/Bedrock/Vertex バックエンドは非対応)56。二次情報のため要実機確認
Step 4(5分・無人で回したい定常作業):CLI で /schedule daily PR review at 9am のように Routine を作成(PCオフでもクラウドで走り、結果を Slack 等へ投稿可)4。
Stop は応答を終えるたびに毎回発火する(=1タスク中に何度も鳴り得る)。うるさければ Stop はビープのみ・Notification の matcher を idle_prompt/permission_prompt に絞る3。hooks がある場合、Notification は既存キーの兄弟として足す(オブジェクトごと上書きしない)3。/dev/tty 直叩きは不可な場合がある。OS の通知コマンド or 出力JSONの terminalSequence を使う2。/schedule が出ない: APIキー/Bedrock/Vertex ログインや DISABLE_TELEMETRY 等が設定されていると /schedule が隠れる。claude.ai サブスク login が必要4。print(..,flush=True) や逐次ログで担保する(パイプの tail/head はバッファして完了まで無出力になる)。Stop/SubagentStop に「どの CC が終わったか」をビープ高さや通知タイトルで区別させると、張り付き不要で並列効率が上がる。Stop+ビープで通知。席を外していても「終わったら戻る」運用に。DR_CC暴走防止_02_AIの確認前『完了』報告(ハルシネ)_2026-05-31.html ― 「完了」誤報告(本DRの“通知”とは逆=偽完了の抑止)DR_CCが指示を守らない根本原因_チェックリスト合格点ゲート評価ループ設計_2026-05-30.html ― ループ/ゲート設計DR_CC暴走防止_09_human-in-the-loop承_2026-05-31.html ― 人間チェックポイント(本DR第4-2章と接続)DR_CC暴走防止_01_AIエージェントが検証前にスケール_2026-05-31.html ― 反復上限/暴走防止DR_複数CC_ChromeブラウザMCP接続改善_2026-06-13.html ― マルチCC/MCP 運用重複チェック結果:本テーマ(ターン駆動設計+能動通知機構)に直接該当する既存DRは無し。新規作成が妥当。
注:脚注5(Remote Control の launch 時期)は報道により「2026年1月 研究プレビュー」と整理。push 通知が v2.1.110(2026-04-16・二次情報)で追加とされる点は、本DRでは 二次情報=要実機確認 として扱う。一次ソース(公式 docs / 公式 repo issue)と二次(報道/実装記事)はタグで明示分離した。
作成: Claude Code (Deep Research Writer) / 2026-06-14 / 重視軸: 技術×設計思想 / 出力: D:\市場調査資料\DR_CC完了通知_設計思想と対策_2026-06-14.html