[{"data":1,"prerenderedAt":1025},["ShallowReactive",2],{"content-/claude-code-notification-hooks":3,"all-pages-for-dir":1003,"related-/claude-code-notification-hooks":1004,"og-image-/claude-code-notification-hooks":1024},{"id":4,"title":5,"body":6,"category":988,"concepts":988,"description":989,"extension":990,"meta":991,"navigation":992,"ogImage":988,"path":993,"project_name":988,"published":994,"publishedAt":995,"seo":996,"source":988,"stem":997,"tags":998,"todo":988,"unpublished":994,"updatedAt":988,"__hash__":1002},"pages/2026-01/2026-01-03/claude-code-notification-hooks.md","Claude Code 通知フック設定",{"type":7,"value":8,"toc":980},"minimark",[9,13,17,21,32,35,709,712,799,803,812,924,928,931,959,962,965,976],[10,11,5],"h1",{"id":12},"claude-code-通知フック設定",[14,15,16],"p",{},"本記事では、複数のClaude Codeセッションを並行実行する際に、どのタブが入力待ちかを音で判別できるようにする設定を説明する。",[18,19,20],"h2",{"id":20},"設定ファイル",[14,22,23,27,28,31],{},[24,25,26],"code",{},"~/.claude/settings.json"," (Windows: ",[24,29,30],{},"C:\\Users\\\u003Cusername>\\.claude\\settings.json",")",[18,33,34],{"id":34},"完全な設定例",[36,37,42],"pre",{"className":38,"code":39,"language":40,"meta":41,"style":41},"language-json shiki shiki-themes vitesse-light vitesse-light","{\n  \"model\": \"opus\",\n  \"hooks\": {\n    \"PreToolUse\": [\n      {\n        \"matcher\": \"TodoWrite\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"powershell.exe -Command \\\"[console]::beep(600, 100)\\\"\"\n          }\n        ]\n      }\n    ],\n    \"Stop\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"powershell.exe -Command \\\"[console]::beep(1000, 500); [console]::beep(1200, 500); [console]::beep(1500, 500)\\\"\"\n          }\n        ]\n      }\n    ],\n    \"PostToolUse\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"powershell.exe -Command \\\"[console]::beep(800, 200)\\\"\"\n          }\n        ]\n      }\n    ],\n    \"SubagentStop\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"powershell.exe -Command \\\"[console]::beep(1200, 100); [console]::beep(1200, 100); [console]::beep(1200, 100)\\\"\"\n          }\n        ]\n      }\n    ],\n    \"Notification\": [\n      {\n        \"matcher\": \"\",\n        \"hooks\": [\n          {\n            \"type\": \"command\",\n            \"command\": \"powershell.exe -Command \\\"[console]::beep(2000, 150); [console]::beep(2000, 150)\\\"\"\n          }\n        ]\n      }\n    ]\n  }\n}\n","json","",[24,43,44,53,83,98,114,120,142,155,161,183,211,217,223,229,235,249,254,270,283,288,307,331,336,341,346,351,365,370,385,398,403,422,446,451,456,461,466,480,485,500,513,518,537,561,566,571,576,581,595,600,615,628,633,652,676,681,686,691,697,703],{"__ignoreMap":41},[45,46,49],"span",{"class":47,"line":48},"line",1,[45,50,52],{"class":51},"shFtX","{\n",[45,54,56,60,64,67,70,74,78,80],{"class":47,"line":55},2,[45,57,59],{"class":58},"sqvqQ","  \"",[45,61,63],{"class":62},"sz8Xr","model",[45,65,66],{"class":58},"\"",[45,68,69],{"class":51},":",[45,71,73],{"class":72},"sMJiu"," \"",[45,75,77],{"class":76},"sdGka","opus",[45,79,66],{"class":72},[45,81,82],{"class":51},",\n",[45,84,86,88,91,93,95],{"class":47,"line":85},3,[45,87,59],{"class":58},[45,89,90],{"class":62},"hooks",[45,92,66],{"class":58},[45,94,69],{"class":51},[45,96,97],{"class":51}," {\n",[45,99,101,104,107,109,111],{"class":47,"line":100},4,[45,102,103],{"class":58},"    \"",[45,105,106],{"class":62},"PreToolUse",[45,108,66],{"class":58},[45,110,69],{"class":51},[45,112,113],{"class":51}," [\n",[45,115,117],{"class":47,"line":116},5,[45,118,119],{"class":51},"      {\n",[45,121,123,126,129,131,133,135,138,140],{"class":47,"line":122},6,[45,124,125],{"class":58},"        \"",[45,127,128],{"class":62},"matcher",[45,130,66],{"class":58},[45,132,69],{"class":51},[45,134,73],{"class":72},[45,136,137],{"class":76},"TodoWrite",[45,139,66],{"class":72},[45,141,82],{"class":51},[45,143,145,147,149,151,153],{"class":47,"line":144},7,[45,146,125],{"class":58},[45,148,90],{"class":62},[45,150,66],{"class":58},[45,152,69],{"class":51},[45,154,113],{"class":51},[45,156,158],{"class":47,"line":157},8,[45,159,160],{"class":51},"          {\n",[45,162,164,167,170,172,174,176,179,181],{"class":47,"line":163},9,[45,165,166],{"class":58},"            \"",[45,168,169],{"class":62},"type",[45,171,66],{"class":58},[45,173,69],{"class":51},[45,175,73],{"class":72},[45,177,178],{"class":76},"command",[45,180,66],{"class":72},[45,182,82],{"class":51},[45,184,186,188,190,192,194,196,199,203,206,208],{"class":47,"line":185},10,[45,187,166],{"class":58},[45,189,178],{"class":62},[45,191,66],{"class":58},[45,193,69],{"class":51},[45,195,73],{"class":72},[45,197,198],{"class":76},"powershell.exe -Command ",[45,200,202],{"class":201},"snbK4","\\\"",[45,204,205],{"class":76},"[console]::beep(600, 100)",[45,207,202],{"class":201},[45,209,210],{"class":72},"\"\n",[45,212,214],{"class":47,"line":213},11,[45,215,216],{"class":51},"          }\n",[45,218,220],{"class":47,"line":219},12,[45,221,222],{"class":51},"        ]\n",[45,224,226],{"class":47,"line":225},13,[45,227,228],{"class":51},"      }\n",[45,230,232],{"class":47,"line":231},14,[45,233,234],{"class":51},"    ],\n",[45,236,238,240,243,245,247],{"class":47,"line":237},15,[45,239,103],{"class":58},[45,241,242],{"class":62},"Stop",[45,244,66],{"class":58},[45,246,69],{"class":51},[45,248,113],{"class":51},[45,250,252],{"class":47,"line":251},16,[45,253,119],{"class":51},[45,255,257,259,261,263,265,268],{"class":47,"line":256},17,[45,258,125],{"class":58},[45,260,128],{"class":62},[45,262,66],{"class":58},[45,264,69],{"class":51},[45,266,267],{"class":72}," \"\"",[45,269,82],{"class":51},[45,271,273,275,277,279,281],{"class":47,"line":272},18,[45,274,125],{"class":58},[45,276,90],{"class":62},[45,278,66],{"class":58},[45,280,69],{"class":51},[45,282,113],{"class":51},[45,284,286],{"class":47,"line":285},19,[45,287,160],{"class":51},[45,289,291,293,295,297,299,301,303,305],{"class":47,"line":290},20,[45,292,166],{"class":58},[45,294,169],{"class":62},[45,296,66],{"class":58},[45,298,69],{"class":51},[45,300,73],{"class":72},[45,302,178],{"class":76},[45,304,66],{"class":72},[45,306,82],{"class":51},[45,308,310,312,314,316,318,320,322,324,327,329],{"class":47,"line":309},21,[45,311,166],{"class":58},[45,313,178],{"class":62},[45,315,66],{"class":58},[45,317,69],{"class":51},[45,319,73],{"class":72},[45,321,198],{"class":76},[45,323,202],{"class":201},[45,325,326],{"class":76},"[console]::beep(1000, 500); [console]::beep(1200, 500); [console]::beep(1500, 500)",[45,328,202],{"class":201},[45,330,210],{"class":72},[45,332,334],{"class":47,"line":333},22,[45,335,216],{"class":51},[45,337,339],{"class":47,"line":338},23,[45,340,222],{"class":51},[45,342,344],{"class":47,"line":343},24,[45,345,228],{"class":51},[45,347,349],{"class":47,"line":348},25,[45,350,234],{"class":51},[45,352,354,356,359,361,363],{"class":47,"line":353},26,[45,355,103],{"class":58},[45,357,358],{"class":62},"PostToolUse",[45,360,66],{"class":58},[45,362,69],{"class":51},[45,364,113],{"class":51},[45,366,368],{"class":47,"line":367},27,[45,369,119],{"class":51},[45,371,373,375,377,379,381,383],{"class":47,"line":372},28,[45,374,125],{"class":58},[45,376,128],{"class":62},[45,378,66],{"class":58},[45,380,69],{"class":51},[45,382,267],{"class":72},[45,384,82],{"class":51},[45,386,388,390,392,394,396],{"class":47,"line":387},29,[45,389,125],{"class":58},[45,391,90],{"class":62},[45,393,66],{"class":58},[45,395,69],{"class":51},[45,397,113],{"class":51},[45,399,401],{"class":47,"line":400},30,[45,402,160],{"class":51},[45,404,406,408,410,412,414,416,418,420],{"class":47,"line":405},31,[45,407,166],{"class":58},[45,409,169],{"class":62},[45,411,66],{"class":58},[45,413,69],{"class":51},[45,415,73],{"class":72},[45,417,178],{"class":76},[45,419,66],{"class":72},[45,421,82],{"class":51},[45,423,425,427,429,431,433,435,437,439,442,444],{"class":47,"line":424},32,[45,426,166],{"class":58},[45,428,178],{"class":62},[45,430,66],{"class":58},[45,432,69],{"class":51},[45,434,73],{"class":72},[45,436,198],{"class":76},[45,438,202],{"class":201},[45,440,441],{"class":76},"[console]::beep(800, 200)",[45,443,202],{"class":201},[45,445,210],{"class":72},[45,447,449],{"class":47,"line":448},33,[45,450,216],{"class":51},[45,452,454],{"class":47,"line":453},34,[45,455,222],{"class":51},[45,457,459],{"class":47,"line":458},35,[45,460,228],{"class":51},[45,462,464],{"class":47,"line":463},36,[45,465,234],{"class":51},[45,467,469,471,474,476,478],{"class":47,"line":468},37,[45,470,103],{"class":58},[45,472,473],{"class":62},"SubagentStop",[45,475,66],{"class":58},[45,477,69],{"class":51},[45,479,113],{"class":51},[45,481,483],{"class":47,"line":482},38,[45,484,119],{"class":51},[45,486,488,490,492,494,496,498],{"class":47,"line":487},39,[45,489,125],{"class":58},[45,491,128],{"class":62},[45,493,66],{"class":58},[45,495,69],{"class":51},[45,497,267],{"class":72},[45,499,82],{"class":51},[45,501,503,505,507,509,511],{"class":47,"line":502},40,[45,504,125],{"class":58},[45,506,90],{"class":62},[45,508,66],{"class":58},[45,510,69],{"class":51},[45,512,113],{"class":51},[45,514,516],{"class":47,"line":515},41,[45,517,160],{"class":51},[45,519,521,523,525,527,529,531,533,535],{"class":47,"line":520},42,[45,522,166],{"class":58},[45,524,169],{"class":62},[45,526,66],{"class":58},[45,528,69],{"class":51},[45,530,73],{"class":72},[45,532,178],{"class":76},[45,534,66],{"class":72},[45,536,82],{"class":51},[45,538,540,542,544,546,548,550,552,554,557,559],{"class":47,"line":539},43,[45,541,166],{"class":58},[45,543,178],{"class":62},[45,545,66],{"class":58},[45,547,69],{"class":51},[45,549,73],{"class":72},[45,551,198],{"class":76},[45,553,202],{"class":201},[45,555,556],{"class":76},"[console]::beep(1200, 100); [console]::beep(1200, 100); [console]::beep(1200, 100)",[45,558,202],{"class":201},[45,560,210],{"class":72},[45,562,564],{"class":47,"line":563},44,[45,565,216],{"class":51},[45,567,569],{"class":47,"line":568},45,[45,570,222],{"class":51},[45,572,574],{"class":47,"line":573},46,[45,575,228],{"class":51},[45,577,579],{"class":47,"line":578},47,[45,580,234],{"class":51},[45,582,584,586,589,591,593],{"class":47,"line":583},48,[45,585,103],{"class":58},[45,587,588],{"class":62},"Notification",[45,590,66],{"class":58},[45,592,69],{"class":51},[45,594,113],{"class":51},[45,596,598],{"class":47,"line":597},49,[45,599,119],{"class":51},[45,601,603,605,607,609,611,613],{"class":47,"line":602},50,[45,604,125],{"class":58},[45,606,128],{"class":62},[45,608,66],{"class":58},[45,610,69],{"class":51},[45,612,267],{"class":72},[45,614,82],{"class":51},[45,616,618,620,622,624,626],{"class":47,"line":617},51,[45,619,125],{"class":58},[45,621,90],{"class":62},[45,623,66],{"class":58},[45,625,69],{"class":51},[45,627,113],{"class":51},[45,629,631],{"class":47,"line":630},52,[45,632,160],{"class":51},[45,634,636,638,640,642,644,646,648,650],{"class":47,"line":635},53,[45,637,166],{"class":58},[45,639,169],{"class":62},[45,641,66],{"class":58},[45,643,69],{"class":51},[45,645,73],{"class":72},[45,647,178],{"class":76},[45,649,66],{"class":72},[45,651,82],{"class":51},[45,653,655,657,659,661,663,665,667,669,672,674],{"class":47,"line":654},54,[45,656,166],{"class":58},[45,658,178],{"class":62},[45,660,66],{"class":58},[45,662,69],{"class":51},[45,664,73],{"class":72},[45,666,198],{"class":76},[45,668,202],{"class":201},[45,670,671],{"class":76},"[console]::beep(2000, 150); [console]::beep(2000, 150)",[45,673,202],{"class":201},[45,675,210],{"class":72},[45,677,679],{"class":47,"line":678},55,[45,680,216],{"class":51},[45,682,684],{"class":47,"line":683},56,[45,685,222],{"class":51},[45,687,689],{"class":47,"line":688},57,[45,690,228],{"class":51},[45,692,694],{"class":47,"line":693},58,[45,695,696],{"class":51},"    ]\n",[45,698,700],{"class":47,"line":699},59,[45,701,702],{"class":51},"  }\n",[45,704,706],{"class":47,"line":705},60,[45,707,708],{"class":51},"}\n",[18,710,711],{"id":711},"各フックの説明",[713,714,715,731],"table",{},[716,717,718],"thead",{},[719,720,721,725,728],"tr",{},[722,723,724],"th",{},"フック",[722,726,727],{},"タイミング",[722,729,730],{},"音の特徴",[732,733,734,748,760,772,784],"tbody",{},[719,735,736,742,745],{},[737,738,739,741],"td",{},[24,740,106],{}," (TodoWrite)",[737,743,744],{},"Todoリスト更新前",[737,746,747],{},"低め1回 (600Hz)",[719,749,750,754,757],{},[737,751,752],{},[24,753,358],{},[737,755,756],{},"ツール実行後",[737,758,759],{},"中音1回 (800Hz)",[719,761,762,766,769],{},[737,763,764],{},[24,765,473],{},[737,767,768],{},"サブエージェント完了",[737,770,771],{},"中高音3連 (1200Hz)",[719,773,774,778,781],{},[737,775,776],{},[24,777,242],{},[737,779,780],{},"Claude応答完了",[737,782,783],{},"上昇3音 (1000→1200→1500Hz)",[719,785,786,790,796],{},[737,787,788],{},[24,789,588],{},[737,791,792],{},[793,794,795],"strong",{},"入力待ち通知",[737,797,798],{},"高音2連 (2000Hz)",[18,800,802],{"id":801},"重要-notification-フック","重要: Notification フック",[14,804,805,807,808,811],{},[24,806,588],{}," フックは ",[793,809,810],{},"Claude Codeが入力待ちになったとき"," に発火する。複数タブでClaudeを並行実行している場合、この通知音でどのタブが入力を待っているか判別できる。",[36,813,815],{"className":38,"code":814,"language":40,"meta":41,"style":41},"\"Notification\": [\n  {\n    \"matcher\": \"\",\n    \"hooks\": [\n      {\n        \"type\": \"command\",\n        \"command\": \"powershell.exe -Command \\\"[console]::beep(2000, 150); [console]::beep(2000, 150)\\\"\"\n      }\n    ]\n  }\n]\n",[24,816,817,832,837,851,863,867,885,907,911,915,919],{"__ignoreMap":41},[45,818,819,821,823,825,829],{"class":47,"line":48},[45,820,66],{"class":72},[45,822,588],{"class":76},[45,824,66],{"class":72},[45,826,828],{"class":827},"sG7-3",": ",[45,830,831],{"class":51},"[\n",[45,833,834],{"class":47,"line":55},[45,835,836],{"class":51},"  {\n",[45,838,839,841,843,845,847,849],{"class":47,"line":85},[45,840,103],{"class":58},[45,842,128],{"class":62},[45,844,66],{"class":58},[45,846,69],{"class":51},[45,848,267],{"class":72},[45,850,82],{"class":51},[45,852,853,855,857,859,861],{"class":47,"line":100},[45,854,103],{"class":58},[45,856,90],{"class":62},[45,858,66],{"class":58},[45,860,69],{"class":51},[45,862,113],{"class":51},[45,864,865],{"class":47,"line":116},[45,866,119],{"class":51},[45,868,869,871,873,875,877,879,881,883],{"class":47,"line":122},[45,870,125],{"class":58},[45,872,169],{"class":62},[45,874,66],{"class":58},[45,876,69],{"class":51},[45,878,73],{"class":72},[45,880,178],{"class":76},[45,882,66],{"class":72},[45,884,82],{"class":51},[45,886,887,889,891,893,895,897,899,901,903,905],{"class":47,"line":144},[45,888,125],{"class":58},[45,890,178],{"class":62},[45,892,66],{"class":58},[45,894,69],{"class":51},[45,896,73],{"class":72},[45,898,198],{"class":76},[45,900,202],{"class":201},[45,902,671],{"class":76},[45,904,202],{"class":201},[45,906,210],{"class":72},[45,908,909],{"class":47,"line":157},[45,910,228],{"class":51},[45,912,913],{"class":47,"line":163},[45,914,696],{"class":51},[45,916,917],{"class":47,"line":185},[45,918,702],{"class":51},[45,920,921],{"class":47,"line":213},[45,922,923],{"class":51},"]\n",[18,925,927],{"id":926},"windows-terminal-との併用","Windows Terminal との併用",[14,929,930],{},"Windows Terminalの「ベル通知スタイル」設定と組み合わせると、タスクバーのフラッシュも利用可能：",[932,933,934,941,944],"ol",{},[935,936,937,938,31],"li",{},"Windows Terminal設定 (",[24,939,940],{},"Ctrl+,",[935,942,943],{},"プロファイル → 既定値 → 詳細設定",[935,945,946,947],{},"「ベル通知スタイル」で以下を有効化：\n",[948,949,950,953,956],"ul",{},[935,951,952],{},"音によるチャイム",[935,954,955],{},"フラッシュウィンドウ",[935,957,958],{},"フラッシュタスクバー",[14,960,961],{},"ただし、Claude Code自体はBEL文字を出力しないため、hooksでの通知設定が必要。",[18,963,964],{"id":964},"参考",[948,966,967],{},[935,968,969],{},[970,971,975],"a",{"href":972,"rel":973},"https://docs.anthropic.com/en/docs/claude-code/hooks",[974],"nofollow","Claude Code Hooks ドキュメント",[977,978,979],"style",{},"html pre.shiki code .shFtX, html code.shiki .shFtX{--shiki-default:#999999;--shiki-dark:#999999}html pre.shiki code .sqvqQ, html code.shiki .sqvqQ{--shiki-default:#99841877;--shiki-dark:#99841877}html pre.shiki code .sz8Xr, html code.shiki .sz8Xr{--shiki-default:#998418;--shiki-dark:#998418}html pre.shiki code .sMJiu, html code.shiki .sMJiu{--shiki-default:#B5695977;--shiki-dark:#B5695977}html pre.shiki code .sdGka, html code.shiki .sdGka{--shiki-default:#B56959;--shiki-dark:#B56959}html pre.shiki code .snbK4, html code.shiki .snbK4{--shiki-default:#A65E2B;--shiki-dark:#A65E2B}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sG7-3, html code.shiki .sG7-3{--shiki-default:#393A34;--shiki-dark:#393A34}",{"title":41,"searchDepth":55,"depth":55,"links":981},[982,983,984,985,986,987],{"id":20,"depth":55,"text":20},{"id":34,"depth":55,"text":34},{"id":711,"depth":55,"text":711},{"id":801,"depth":55,"text":802},{"id":926,"depth":55,"text":927},{"id":964,"depth":55,"text":964},null,"Windows環境でClaude Codeが入力待ちになったときに音で通知する設定","md",{},true,"/claude-code-notification-hooks",false,"2026-01-03T00:00:00.000Z",{"title":5,"description":989},"2026-01/2026-01-03/claude-code-notification-hooks",[999,1000,1001],"claude-code","windows","productivity","4S_zqnT_ng9eNtZLhCbiEvawE7_S4MPGbciY9nCQKjo",[],[1005,1009,1013,1016,1020],{"title":1006,"path":1007,"publishedAt":1008},"Claude Codeとの会話を自動記録する仕組み - Windows環境での実装計画","/claude-code-sync-plan","2026-01-13T00:00:00.000Z",{"title":1010,"path":1011,"publishedAt":1012},"1Password EnvironmentsをWindows実機で一周 — op runの値注入テストとconcealedマスクが外れる罠","/1password-env-injection-verification","2026-07-18T00:00:00.000Z",{"title":1014,"path":1015,"publishedAt":1012},"1Password EnvironmentsのMCP連携がWindowsで解禁 — Claude Code / Codexへの設定手順と実機検証","/1password-mcp-windows-claude-codex",{"title":1017,"path":1018,"publishedAt":1019},"make-diary に update-portfolio をチェーン化してタスクスケジューラのスリープ問題を埋める","/make-diary-update-portfolio-chain","2026-06-18T00:00:00.000Z",{"title":1021,"path":1022,"publishedAt":1023},"Claude Code remote-controlがVolta環境で動かないバグを直した","/claude-code-remote-control-volta-fix-2026-02-25","2026-02-25T00:00:00.000Z","https://log.eurekapu.com/og/blog/claude-code-notification-hooks.png?v=2026-01-03T00%3A00%3A00.000Z&title=Claude%20Code%20%E9%80%9A%E7%9F%A5%E3%83%95%E3%83%83%E3%82%AF%E8%A8%AD%E5%AE%9A&author=Kei%20Komatsu&sig=bb48ce09dbfe56e8",1785654972590]