
ćClaude CodećčŖ¤åé¤ć»čŖ¤éäæ”ćHooksć§ē©ēććććÆććčØå®č”
AIć«ä»äŗćä»»ććć»ć©ćäŗę ć®äøå®ć大ćććŖć
Claude Codeć®ćććŖAIć³ć¼ćć£ć³ć°ćØć¼ćøć§ć³ććÆććć”ć¤ć«ę“ēććć¼ćæéčØćć³ćć³ćå®č”ć¾ć§čŖå¾ēć«ććŖćć¦ććć¾ćć便å©ćŖäøę¹ć§ćåęć«å¤§äŗćŖćć”ć¤ć«ćę¶ććććć©ććććććčŖ¤ć£ć¦å¤éØć«ćć¼ćæćéäæ”ććććććØććäøå®ćę±ćę¹ćÆå¤ććÆćć§ćć
ććć§å¤ćć®äŗŗććććć”ćŖć®ććććć³ććć§ćåé¤ććŖćć§ćć ććććØćé”ćććéēØć§ćććććä¼č©±ćé·ććŖććØAIć®ę³Øęåćčććę示ć形骸åćć¦ćć¾ćåÆč½ę§ćććć¾ćććé”ććć¼ć¹ć®éēØć«ćÆéēćććć®ć§ćć
å®å Øć«éēØććććć®éåćÆćććć³ććć§ćé”ćććć®ć§ćÆćŖććć·ć¹ćć å“ć§ē©ēēć«å¦ēćę¢ććććØć§ććClaude Codeć«ćÆćHooksććØććä»ēµćæććććććć使ććØå±éŗćŖć³ćć³ćć®å®č”ćć®ćć®ćććććÆć§ćć¾ććä»åćÆćć®Hooksć使ć£ćå®å Øć¬ć¼ćć®ä½ćę¹ććéćØć³ćøćć¢ć®ę¹ć§ćčØå®ć§ććć¬ćć«ć¾ć§å ·ä½ēć«č§£čŖ¬ćć¾ćć
ćŖććClaude Codećå©ēØććć«ćÆProćć©ć³ļ¼ęé”20ćć«ļ¼ćMaxćć©ć³ļ¼ęé”100ć200ćć«ļ¼ćTeamćć©ć³ļ¼1åøćććęé”25ćć«ćļ¼ćEnterprisećć©ć³ćć¾ććÆAPIå¾éčŖ²éć®ććććć®å„ē“ćåæ č¦ć§ććFreećć©ć³ć§ćÆćæć¼ććć«äøć§ć®Claude CodečŖä½ćå©ēØć§ććŖćē¹ćÆäŗåć«ē¢ŗčŖćć¦ććć¦ćć ććć

Hooksć®ä»ēµćæćAIćć³ćć³ććå®č”ćććē“åćć«å²ćč¾¼ć
Hooksć®äøę øćØćŖćć®ććPreToolUseććØćććććÆć§ćććććÆAIćBashć³ćć³ććŖć©ć®ćć¼ć«ćå®č”ććććØććē¬éć«ććććććē»é²ććå®å Øćć§ććÆå¦ēćå²ćč¾¼ć¾ććä»ēµćæć§ćć
ćć§ććÆå¦ēćÆćēµäŗć³ć¼ćļ¼Exit Codeļ¼ććØććę°å¤ć§Claude Codeć«ēµęćä¼ćć¾ćććć®ę°å¤ć®ęå³ćę£ććēč§£ćć¦ććććØććäŗę ćé²ćę大ć®ćć¤ć³ćć§ćć
š ēµäŗć³ć¼ććØęåć®éć
ć»exit 0ļ¼ęåļ¼ććć¼ć«ć®å®č”ććć®ć¾ć¾čرåÆććć
ć»exit 2ļ¼ē©ēććććÆļ¼ććć¼ć«ć®å®č”ćå¼·å¶ēć«äøęććććęØęŗćØć©ć¼åŗåć®å
容ćÆAIčŖčŗ«ćøć®ćć£ć¼ććććÆćØćć¦čæććć
ć»exit 1ććć®ä»ć®ę°å¤ććØć©ć¼ć”ćć»ć¼ćøćÆč”Øē¤ŗćććććå¦ēčŖä½ćÆę¢ć¾ććé²ćć§ćć¾ćļ¼Non-blockingę±ćļ¼
ććć§ćććć誤解ćććØć©ć¼ćåŗćć°ę¢ć¾ććÆćććØććęćč¾¼ćæć§ććéåøøć®ććć°ć©ćć³ć°ć§ćÆ exit 1 ććØć©ć¼ć®åå³ćØćć¦ä½æćććććØćå¤ććććć¤ć exit 1 ćęøćć¦ćć¾ććć”ć§ćććClaude Codeć®ä»ę§ć§ćÆ exit 1 ćÆč¦åę¢ć¾ćć§å¦ēćé²č”ćć¦ćć¾ćć¾ććå±éŗćŖęä½ć確å®ć«ę¢ććććŖććexit 2 ćęå®ććććØćå®åäøć®ēµ¶åƾę”ä»¶ć§ćć
å®č£ ćÆ3ć¹ććććčØå®ćć”ć¤ć«1ć¤ć§å®ēµććć
Hooksć®čØå®ćÆćå¤éØć«ććć°ć©ć ćć”ć¤ć«ćä½ććŖćć¦ććčØå®ćć”ć¤ć«1ć¤ć®äøć«ē“ę„ćć§ććÆå¦ēćęøćč¾¼ćććØć§å®ēµććććć¾ććććć°ć©ćć³ć°ååæč ć»ć©ććć®ćć¤ć³ć©ć¤ć³ę¹å¼ćć§å§ććć®ćććććć§ćć
1ļ¼ćććøć§ćÆćć®ćć©ć«ćå
ć«ć.claudeććć©ć«ććä½ćććć®äøć«ćsettings.jsonććØćććć”ć¤ć«ćēØęćć
2ļ¼settings.jsonć®äøć«ćPreToolUsećććÆć®čØå®ćØćć¦ćBashå®č”ęć«å±éŗćŖćć¼ćÆć¼ććę¤ē„ććå¦ēććčØčæ°ćć
3ļ¼å±éŗćŖćć¼ćÆć¼ćļ¼åé¤ć³ćć³ććå¼·å¶éäæ”ć³ćć³ććŖć©ļ¼ćę¤ē„ććå “åćÆćęØęŗćØć©ć¼åŗåć«ć”ćć»ć¼ćøć蔨示ććććć§ exit 2 ćčæćććę”ä»¶ćęøć
ćć®čØå®ćÆćé ē½®ćććććøć§ćÆććć©ć«ćć®äøć ćć§ęå¹ć«ćŖćć¾ććč¤ę°ć®ćććøć§ćÆććPCå Øä½ć«åćå®å Øć¬ć¼ććććććå “åćÆććć¼ć ćć£ć¬ćÆććŖé äøć®ćļ½/.claude/settings.jsonćć«åćå 容ćé ē½®ćććØćć©ć®ćć©ć«ćć§ä½ę„ćć¦ćć¦ćé©ēØććć¾ććć¾ććć§ć«åćå “ęć«settings.jsonćååØććå “åććć”ć¤ć«ćäøøććØē½®ćęćć¦ćć¾ććØę¢åć®čØå®ćę¶ćć¦ćć¾ćć¾ććę¢åć®JSONćéćććhooksćć®é ē®ć ććčæ½čØććå½¢ć§ćć¼ćøććććć«ćć¦ćć ććć
ęåć§JSONćć”ć¤ć«ćē·ØéćććØćććć«ćÆć©ć¼ćć¼ć·ć§ć³ć®éćåæććć«ć³ćć®ä»ćåæććØćć£ćäŗē“°ćŖćć¹ć§ćććÆå Øä½ćē”å¹ć«ćŖćććØćććć¾ćććæć¼ććć«äøć§ć/hooksććØå „åćććØćē»é²ęøćæć®ćććÆć®äøč¦§ē¢ŗčŖćęå¹åć»ē”å¹åćē°”åćŖåä½ćć¹ććć§ćć¾ćććć ććć®ć³ćć³ććÆč¤éćŖę”ä»¶å¼ćć®ćć®ć対話ēć«ēµćæē«ć¦ć¦ćććććć§ćÆćŖćć®ć§ćsettings.jsonć®čØčæ°čŖä½ćÆćØćć£ćæć§äøåƧć«ē¢ŗčŖććŖććč”ććē»é²å¾ć®åä½ē¢ŗčŖć«ć/hooksćć使ććØććå½¹å²åę ć§čćććØććć§ćććć
仄äøćÆćåé¤ć³ćć³ććå¼·å¶ććć·ć„ćå¤éØćøć®éäæ”ć³ćć³ććę¤ē„ććē¬éć«å¦ēćę¢ćććęå°ę§ęć®čØå®ä¾ć§ććå¤éØć¹ćÆćŖćććå„éä½ćåæ č¦ććŖćććć®JSONććć®ć¾ć¾äæåććć ćć§åä½ćć¾ćć
š ććććć³ćć
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "input=$(cat); if echo \"$input\" | grep -iE \"rm -rf|git push --force|curl\"; then echo \"[å®å
Øć¬ć¼ć] ē “å£ēć³ćć³ćć¾ććÆå¤éØéäæ”ćÆē¦ę¢ććć¦ćć¾ć\" >&2; exit 2; fi"
}
]
}
]
}
}ćć®čØå®ćå „ćć¦ćććØćAIććrm -rfćć®ćććŖē “å£ēåé¤ć³ćć³ćććgit push --forceććØćć£ćå¼·å¶äøęøććå¤éØéäæ”ć伓ććcurlćć³ćć³ććå®č”ććććØććē¬éć«å¦ēćäøęćććć[å®å Øć¬ć¼ć] ē “å£ēć³ćć³ćć¾ććÆå¤éØéäæ”ćÆē¦ę¢ććć¦ćć¾ćććØććć”ćć»ć¼ćøć蔨示ććć¾ććęøé”ä½ęććć¼ćæéčØćØćć£ćå®å ØćŖä½ę„ćÆAIć«ä»»ććć¾ć¾ćęå¾ć®ē¢ŗå®ä½ę„ć ćäŗŗéćęæčŖćććØććéēØćå®ē¾ć§ćć¾ćć
ćŖćććć®čØå®ä¾ćÆBashļ¼ć·ć§ć«ļ¼ć®ęøćę¹ćåęć«ćć¦ćććććWindowsē°å¢ć§č©¦ćå “åćÆGit BashćŖć©ćBashć³ćć³ććå®č”ć§ććē°å¢ćēØęćć¦ććåæ č¦ćććć¾ććć¾ćęååć®åē“äøč“ć§ćć¼ćÆć¼ććę¤ē„ćć¦ććććććrm -r -fćć®ćććŖč”ØčØććććę£åøøćŖAPIé£ęŗć§ä½æććcurlćć³ćć³ćć¾ć§ęå³ććę¤ē„ćć¦ćć¾ćććØćććć¾ććå®éć®ę„åć§ä½æćć³ćć³ćć«åććć¦ćę¤ē„ćććć¼ćÆć¼ććÆå°ććć¤čŖæę“ćć¦ććć®ćå®å Øć§ćć
čØå®ćäæåććććåæ ćę¬ēŖéēØć®åć«åä½ćć¹ćććć¦ććć¾ćććććć¹ćēØć®ē©ŗćć©ć«ććēØęććClaude Codeć«ććć®ćć©ć«ćć®äøčŗ«ćrm -rfć§åé¤ćć¦ćć®ććć«ę示ćć¦ćæć¦ćć ćććć[å®å Øć¬ć¼ć]ćć®ć”ćć»ć¼ćøć蔨示ććć¦å¦ēćę¢ć¾ćć°ćę£ććę©č½ćć¦ćć証ę ć§ćć
ć¤ć¾ććććć3ć¤ć®ćć¤ć³ććØåƾē
š 失ęććććē¹ćØåƾē
ć»JSONć®ę§ęćć¹ć§ćććÆćčµ·åććŖćć対ēćØćć¦ćØćć£ćæć§čØčæ°ć確čŖććććć§ć/hooksćć³ćć³ćć使ć£ć¦ē»é²ē¶ę
ć確čŖćććć¾ććÆVS CodećŖć©ę§ęćć§ććÆę©č½ä»ććØćć£ćæćå©ēØććć®ććććć
ć»å¤éØć¹ćÆćŖćććå„ćć”ć¤ć«ć§ēØęććććØćć¦ē°å¢ćØć©ć¼ć«ćŖćć対ēćØćć¦ä»å瓹ä»ććććć«settings.jsonå
ć§å®ēµććć¤ć³ć©ć¤ć³čØę³ć使ć
ć»ć¤ć exit 1 ćęøćć¦ćć¾ćę¢ć¾ććŖćć対ēćØćć¦ćę¢ćććŖć exit 2ććØććę°å¤ć ććåŗå®ć«ć¼ć«ćØćć¦č¦ćć¦ćć
ē¹ć«3ć¤ē®ćÆč¦č½ćØććććéØåć§ćććčØå®ćććÆććŖć®ć«AIć®åé¤ćę¢ć¾ććŖćć£ćććØććäŗę ć®å¤ććÆććć®ēµäŗć³ć¼ćć®åćéććåå ć§ććexit 2 仄å¤ćÆå¦ēćę¢ććććŖććØč¦ćć¦ććć ćć§ćäŗę ć®ćŖć¹ćÆć大ććęøććć¾ćć
ććććÆććå¾ćAIćÆćåēććć¦ććē“ć
Hooksć§ć§ććććØćÆćåć«å¦ēćę¢ććć ćć§ćÆććć¾ćććexit 2 ć§å¦ēćäøęććććØććęØęŗćØć©ć¼åŗåć«ęøććć”ćć»ć¼ćøćÆćē»é¢ć«č”Øē¤ŗćććč¦åęć§ćććØåęć«ćClaudečŖčŗ«ćøć®ęčę å ±ćØćć¦ćŖć¢ć«ćæć¤ć ć«ęø”ććć¾ćć
ćć®ććććććŖćę¢ććććAIćÆććŖćę¢ććććć®ćććēč§£ććććć§ćåé¤ć§ćÆćŖćå®å ØćŖćććÆć¢ćććć©ć«ććøć®ē§»åćęę”ćććŖć©ć代ęæęꮵćčŖćčćē“ćć¦åÆ¾č©±ćē¶ććććØćććć¾ććåćŖćé®ęę©č½ć§ćÆćŖććAIćå®å ØćŖę¹åćøåęč²ććä»ēµćæćØćć¦ćę“»ēØć§ććććć§ćć
ćŖććčŖ¤ę¤ē„ć§ććććÆććć¦ćć¾ć£ćå “åććć©ććć¦ćäŗŗéć®å¤ęć§ćć®ęä½ćå®č”ćććå “åćÆćAIć«åęę”ćććć®ć§ćÆćŖććäŗŗéćē“ę„ćæć¼ććć«ć§č©²å½ć³ćć³ććå®č”ćććććććÆäøęēć«settings.jsonå ć®č©²å½ę”ä»¶ćć³ć”ć³ćć¢ć¦ććć¦č§£é¤ćććØćć£ćéēØć«ćć¦ćććØå®å Øć§ććč§£é¤ććć¾ć¾ć«ććŖććććä½ę„å¾ćÆåæ ćå ć®čØå®ć«ę»ćććØćåæććŖćć§ćć ććć
š” ćä½ćć!?ć®AIč±ē„čć
Hooksć§ exit 2 ć«ćć£ć¦ćć¼ć«ć®å®č”ćććććÆććććØćććć®ēē±ćčØććęØęŗćØć©ć¼åŗåć®å 容ćÆćåćŖćē»é¢č”Øē¤ŗēØć®ćć°ć§ćÆććć¾ćććClaude CodečŖčŗ«ćøć®ćć£ć¼ććććÆććć³ćććØćć¦ęčć«ę³Øå „ćććä»ę§ć«ćŖć£ć¦ćć¾ććć¤ć¾ćAIćÆćęććććććØćēč§£ć§ććå½¢ć§ę å ±ćåćåććå®å ØćŖä»£ęæę”ćčŖåć§čćē“ćć®ć§ććę¢ćć¦ēµććć§ćÆćŖććę¢ććēē±ć¾ć§ę£ē¢ŗć«ęøćć¦ććććØććAIćØć®å®å ØćŖååćē¶ććć³ćć«ćŖćć¾ćć
ć¾ćØć
AIć«ä»äŗćä»»ćć¦ęēå¹ęćå¾ćććć«ćÆćć¾ććåęć«å±éŗćŖęä½ććććŖćććØććåå°ćåæ č¦ć§ććććć³ććć§ć®ćé”ćć§ćÆćŖććHooksć«ććć·ć¹ćć å“ć®ē©ēé®ęćēµćæč¾¼ćććØć§ćåćć¦å®åæćć¦AIć«ä½ę„ćå§ććććććć«ćŖćć¾ććčØå®ćÆsettings.jsonć²ćØć¤ć§å®ēµć§ććć®ć§ćä»ę„ćć試ćć¦ćæć¦ćć ććć
ććć«ę·±ćå®č·µćć³ćć¬ć¼ććÆćęęćć¬ćøć³ćé±å AIä»äŗč”ć©ććć§å
¬éćć¦ćć¾ćć
š https://note.com/wise_wolf4411/m/m43c7c6cdad4fĀ
š åčļ¼å ¬å¼ę å ±ļ¼
ć»Automate actions with hooksļ¼https://docs.anthropic.com/en/docs/claude-code/hooksĀ
ć»Hooks referenceļ¼https://docs.anthropic.com/en/docs/claude-code/hooks-referenceĀ
#ę„åå¹ēå #ä»äŗč” #ClaudeCode #AIć¬ććć³ć¹ #ć»ćć„ćŖć㣠#čŖåå #DX #ęēč” #ēęAI