
Claude Code ã®ã»ãã·ã§ã³èªååæ¿ãå®è£ ãã â ãã¹ãã¯å šéšéã£ãã®ã«ãåãããã穎ã2ã€åºã
èªåã§åãæ¿ãã£ãæ°ããAIããäœæ¥ã1æã ãé²ããŠãé»ã£ãŠç§ã®è¿äºãåŸ ã£ãŠããã
ååã®èšäºã§ãClaude Code ã®ã»ãã·ã§ã³ãããã»ã¹ããšå ¥ãæ¿ããŠãåŒãç¶ããå šèªåã«ããä»çµã¿ãæžãããäœ¿ãæšãŠã®æ€èšŒã§ã端ãã端ãŸã§1åéããæ®µéã ã£ãã
ä»åã¯ãããæ¬å®è£ ããŠãå®éã«é·ãäœæ¥ãä»»ããŠåããããåäœãã¹ã77æ¬ãæ¬ç©ã®ããã»ã¹ã䜿ãçµåãã¹ã10æ¬ãèµ·åã¹ã¯ãªããã®ãã¹ã24æ¬ã¯ãå šéšéã£ãŠãããããã§ããå®éã«åãããã穎ã2ã€åºãã
åãæ¿ãã£ãåŸã®AIããèªèµ°ãããã
ãäŒè©±ãç¶ããã©ãããã®å°ããå¥ã®å Žæã§èªãã§ãã
ã©ã¡ãããèšèšæžã«ããã¹ãã«ããå¥ã®ã¢ãã«3ã€ã«ããã¬ãã¥ãŒã«ãåºãŠããªãã£ãããã®èšäºã§ã¯ããã®2ã€ãšãå®è£ ã®éäžã§èŠã€ãããèœãšããã®ã«åèµ·åããªããçµè·¯ãæžãã
ä»çµã¿ã®ãããã
AIïŒClaude CodeïŒã¯èªåã§ /clear ã /exit ãæŒããªããã ãããå€åŽããå ¥ãæ¿ããã
Claude Code ããèªäœã®èµ·åã¹ã¯ãªããïŒã©ãããŒïŒçµç±ã§ç«ã¡äžãã
ã³ã³ããã¹ããéŸå€ãè¶ ãããšãããŒã«ãåŒã¶ãã³ã«é³Žã hook ãAIã«ã次ã®ããªã§åŒãç¶ãã§ããšç¥ããã
AIãããªã§åŒãç¶ãè³æãæžãããåã£ãŠããããšããç®å°ã®ãã¡ã€ã«ã眮ããŠãè¿äºãçµãã
è¿äºã®çµããã«é³Žã hookïŒStop hookïŒããå¥ããã»ã¹ã®ãçµäºä¿ããèµ·ãããçµäºä¿ã¯æ¡ä»¶ã確ããçŽããŠãã Claude Code ãçµäºããã
ã©ãããŒãããã®è³æãèªãã§åéããŠããšããæç€ºã€ãã§ Claude Code ãèµ·åãçŽã
Windows ã§ã¯ãhook ããèµ·åããããã»ã¹ã¯ hook ã®çµäºãšäžç·ã«æ¶ããããã ããçµäºä¿ã¯ WMI çµç±ã§èµ·åããŠããããããŸã§ã¯ååæžãããšããã ã
äœãåã«ãåæãæã£ã
èšèšã¯ãç°å¢å€æ°ãããåŒãç¶ãããã¯ãããhook ã®ç¥ãããAIã«å±ãã¯ãããšããåæã®äžã«ç«ã£ãŠãããæ¬äœãæžãåã«ããããå®éã® Claude Code ã§ç¢ºãããã確ããæ¹ã¯ãçããç¥ã£ãŠãã仿ããå ¥ããŠããããåºãŠããããèŠã圢ã«ããã
ããšãã°ãhook ã®ç¥ãããAIã®æèã«å±ãããã¯ãhook ã®åºåã«ã©ã³ãã ãªåèšèãå ¥ããŠãAIã«ãã®åèšèãçãããããç¥ãããåºããªãåãäœãããã¡ãã§ã¯åèšèãåºãªãããšã確ãããã
ãã¡ã°ãå¹ããã®ã¯ãããã»ã¹çªå·ã®ç¢ºèªã ã£ãããã®ä»çµã¿ã¯ãã©ã® Claude Code ãèœãšãããããç°å¢å€æ°ã«å ¥ã£ãŠãã Claude Code èªèº«ã®ããã»ã¹çªå·ã§æ±ºããŠããããšããããClaude Code ã®äžããå¥ã® Claude Code ãèµ·åããå Žåãåã芪ã®çªå·ããã®ãŸãŸåŒãç¶ãã§ããããåã眮ããç®å°ã§èŠªãèœãšãããã
ããã§ãåãèµ·åããåã«ç°å¢å€æ°ãžåœã®çªå·ïŒ1ïŒãå ¥ããŠãããåã®äžã§ãã®çªå·ãèŠãããã確ããããèŠããªãã£ããä»å確ãããèµ·åã®ä»æ¹ã§ã¯ãåã¯èªåã®çªå·ã§äžæžãããŠãããå ããŠãèœãšãçŽåã«ã¯çªå·ã ãã§ãªãããã»ã¹ã®äœææå»ãç §åããã©ãããŒãèµ·åããæå»ããåã«çœ®ãããç®å°ã¯äœ¿ããªãããã«ããŠãããçªå·ãåå©çšãããŠããŠããå€ãç®å°ãæ®ã£ãŠããŠããå¥ã®ããã»ã¹ã¯èœãšããªãäœãã ã
ãã®ç¢ºèªã§ãéå ·ã®åŽã®èœãšã穎ã1ã€èžãã ãPowerShell ã§ç°å¢å€æ°ãæ¶ãã€ããã§æ¬¡ã®ããã«æžããšã倿°ã¯æ¶ããã«ç©ºã®æååãšããŠæ®ãã
[Environment]::SetEnvironmentVariable('MY_TEST', $null) # æ¶ããªãã空æåã§æ®ã
Remove-Item Env:MY_TEST -ErrorAction SilentlyContinue # ãã¡ãã¯æ¶ããPowerShell ã $null ãç©ºã®æååã«å€ããŠæž¡ãããã ãã倿°ãç¡ãããšãã確ãããå¯Ÿç §çŸ€ã§ãç¡ãã¯ãã®å€æ°ã空ã§å±ããŠãå€å®ãèœã¡ãããã¹ããèœã¡ãæã¯ããŸãéå ·ãçããä»åã¯ããã§æ£ããã£ãã
ãèœãšããã®ã«åèµ·åããªããçµè·¯
å®è£ ãã²ãšãšããã§ããæ®µéã§ããŸãå¥ã®ã¢ãã«ã«ã¬ãã¥ãŒããããDeepSeek V4.1 Flash ã«ãæäœã®é çªãšãåãè¿ãã®ã€ããªãæäœããKimi K2.7 ã«ãéäžã§èœã¡ãæã«æ®ãç¶æ ããClaude Sonnet 5 ã«ãWindows ã®ããã»ã¹ã®åæããèŠãŠããã£ãã
3æ¬ããå¥ã ã®è§åºŠããåãå Žæãæãããçµäºä¿ã Claude Code ãèœãšããåŸã«ãåèµ·åã®æ å ±ãæžãåã«äœãã倱æãããšãClaude Code ã¯æ»ãã ãŸãŸåèµ·åãããªãã
åœæã®é çªã¯ããã ã£ãã
æ¡ä»¶ã確ããã
Claude Code ãèœãšã
æ¬åœã«æ¶ãããã確ããã
ã©ãããŒãšã®éã§ãã©ã¡ãããã®åãæ¿ããæ åœãããããåãåã
åèµ·åã®æ å ±ãæžã
ã©ãããŒã¯ Claude Code ãçµäºãããšç®ãèŠãŸãã30ç§åŸ ã£ãŠãçµæãåºãªããã°ã諊ããããšããŠå°ãçä»ããããã®çä»ãã4çªããå ã«æ¥ããšãçµäºä¿ã¯åãåãã«è² ãããè² ããã®ã¯ãããèœãšããåŸã ã
çŽãæ¹ã¯ãé çªãå ¥ãæ¿ããããšã ã£ãã
æ¡ä»¶ã確ãããïŒçŽåã«ããäžåºŠïŒ
åãåããæžãŸãããè² ããããèœãšããã«çµãã
åèµ·åã®æ å ±ã«å¿ èŠãªãã®ããå šéšèªãã§ãã
Claude Code ãèœãšã
åèµ·åã®æ å ±ã1åæžã
åãåãã¯ããã¡ã€ã«ã®ååãå€ããæäœ1åã§æ±ºããŠãããååã®å€æŽã¯ãå ã«æåããåŽã ããåã€ããã ã
import os
def claim(src, dst):
"""src ã dst ãžæ¹åãããå
ã«åã£ãåŽã ãã True ãåŸã"""
try:
os.rename(src, dst) # Windows ã§ã¯ dst ãæ¢ã«ãããšå€±æãã
return True
except (FileNotFoundError, FileExistsError, PermissionError):
return Falseååã®èšäºã§ãåãè¿ãã®ã€ããªãæäœã®çŽåã«ã¯ãæ©æ¢°ãåãæ¡ä»¶ã確ããçŽãããšæžãããä»åã¯ããã«1ã€è¶³ããåãè¿ãã®ã€ããªãæäœã®åŸã«æ®ãä»äºã¯ãã§ããã ãå°ããããã
æ£çŽã«æžããšããŒãã«ã¯ã§ããŠããªããèœãšããåŸã®ãåèµ·åã®æ å ±ã1åæžããã¯æ®ã£ãŠããŠãããã§ãã£ã¹ã¯ã®æžã蟌ã¿ã倱æããããçµäºä¿ãç°åžžçµäºãããããã°ãåèµ·åã¯ãããªãããã®å ŽåãåŒãç¶ãè³æã¯æ®ã£ãŠããã®ã§ãæã§æ°ããã»ãã·ã§ã³ãç«ã¡äžããŠè³æãèªãŸããã°ç¶ãããåéã§ãããèœãšãåã«æžããŠãããã©ãããŒããèœãšããããããšãèŠåããŠåèµ·åãã圢ã«ããã°ãã®ç©Žãå¡ããããæ®éã«çµäºããæã«èª€ã£ãŠåèµ·åããªãããšãšã®äž¡ç«ãèŠãã®ã§ã次ã®èª²é¡ã«ããŠããã
å®èµ°ã§åºã穎1ïŒåãæ¿ãã£ãAIãã1æã§æ¢ãŸã
ãã¹ããå šéšéã£ãã®ã§ãå®éã«åãããããããŒã®äœæ¥ãçšæããŠãéŸå€ã11äžããŒã¯ã³ã«äžãããæåŸãŸã§èªèµ°ããŠããšæç€ºãããäœæ¥ã¯ãèšèšæžãå šæèªãã§ãã«ãŠã³ã¿ãŒã1ã€å¢ãããã®ç¹°ãè¿ãã§ã6ã«éãããå®äºãšããã
åãæ¿ããã®ãã®ã¯ãèšèšã©ããã«åããã
éŸå€ãè¶ããçŽåŸã«ãAIã«ç¥ãããå±ãã
AIã¯ã1åšãçµãã£ããã®ç¬éãããªããšå€æããŠãè³æãæžããç®å°ã眮ããèªåã§è¿äºãçµãã
ç®å°ããçŽ5ç§ã§ Claude Code ãèœã¡ã0.4ç§åŸã«æ°ããã»ãã·ã§ã³ãç«ã¡äžãã£ã
æ°ããã»ãã·ã§ã³ã¯è³æãèªã¿ããæé 2ã®ç¶ããããæ£ããåéãã
ãããŠã1åšã ãé²ããŠãè¿äºãçµãããã«ãŠã³ã¿ãŒã¯2ãã3ã«ãªã£ããšããã§æ¢ãŸããç§ã®è¿äºãåŸ ã£ãŠããã
ç§ããç¶ããŠããšæã€ãšããŸãéŸå€ãŸã§åã£ãŠããŸãèªåã§åŒãç¶ãã ããããŠ3ã€ç®ã®ã»ãã·ã§ã³ãã1åšã§æ¢ãŸã£ãã2åãšãåãåœ¢ã§æ¢ãŸã£ãã
åå ã¯ãæåã®æç€ºã«ãã£ããæåã®ã»ãã·ã§ã³ã¯ãæåŸãŸã§èªèµ°ããŠããšèšãããŠå§ãŸã£ãŠããããšããããåãæ¿ãã£ãåŸã®ã»ãã·ã§ã³ãåãåãã®ã¯ãè³æãèªãã§ã次ã®äžæããåéããŠãã ãã ãè³æã«ã¯ã次ã«äœãããããã¯æžããŠãã£ããããç§ã®è¿äºãåŸ ããã«ç¶ããã®ããã¯æžããŠããªãã£ããæ°ããAIã¯ãçé¢ç®ã«1æãã£ãŠå ±åããã
çŽãæ¹ã¯2ãæã ã£ãã
åŒãç¶ãè³æã«ãé²ãæ¹ããå¿ ã1è¡æžãããããèªèµ°ïŒè¿äºãåŸ ããã«å®äºãŸã§ç¶ããïŒããã察話ïŒ1æããšã«å ±åããŠåŸ ã€ïŒãã®ã©ã¡ãã
åéã®æç€ºã«ãè³æã®é²ãæ¹ã«åŸãããšããè¶³ã
çŽããŠããããäžåºŠåãããšãäžåºŠãå£ãæãŸãã«ã«ãŠã³ã¿ãŒã6ãŸã§é²ã¿ããã®éã«2ååãæ¿ãã£ãã
æ¯ãè¿ããšãåŒãç¶ãã¹ããã®ã¯ãäœæ¥ã®äžèº«ãã ãã§ã¯ãªãã£ãã人ãååã«ä»äºãæž¡ãæããæ¥ãã§ãçµãããŸã§é²ããŠãããŠããšãåºåãããšã«çžè«ããŠãã¯ãäœæ¥ã®äžèº«ãšåãããã倧äºãªæ å ±ã ãAIã©ããã®åŒãç¶ãã§ããããã¯å€ãããªãã
å®èµ°ã§åºã穎2ïŒå·®ãæ»ãã®å°ã¯ãå¥ã®å Žæã«ãã£ã
çµäºä¿ã«ã¯ãèœãšããªãæ¡ä»¶ããããã€ãããããã®1ã€ããåãã¿ã€ãã³ã°ã§å¥ã® hook ãã¿ãŒã³ãå·®ãæ»ãããèœãšããªããã ãStop hook ã¯è¿äºã®çµãããæ¢ããŠãAIã«äœæ¥ãç¶ããããããšãã§ããããã®æã«èœãšããšãç¶ãã¯ãã®äŒè©±ã殺ããŠããŸãã
å€å®ã«ã¯ãClaude Code ã Stop hook ã®åŸã«äŒè©±ãã¡ã€ã«ãžæžãèšé²ã䜿ã£ãŠãããé ç®ã®ååãããå·®ãæ»ãããæã¯ preventedContinuation ã true ã«ãªããšèªãã§äœã£ãŠããã
å®èµ°ã®æåŸã«ãã¡ããã©ãã®å Žé¢ãèµ·ãããèŠåŒµãã® hook ãè¿äºã®çµãããå·®ãæ»ããŠãAIã«ç¥ãããå±ããã®ã ããã®åã®èšé²ãèŠããšããããªã£ãŠããã
{"type": "system", "subtype": "stop_hook_summary",
"preventedContinuation": false,
"hookErrors": ["ïŒå·®ãæ»ãã®çç±ã®æé¢ïŒ"],
"hasOutput": true}äŒè©±ã¯ç¶ããã®ã«ãpreventedContinuation 㯠false ã ã£ããå·®ãæ»ãã®çç±ã¯ hookErrors ãšããæ¬ã«å ¥ã£ãŠãããç§ã®å€å®ã¯ãæ¬ç©ã®å·®ãæ»ããçŽ éãããŠãããä»åã¯ãèŠåŒµãã® hook ããåãæ¿ãã®ç®å°ãããæã¯é»ããäœãã ã£ãã®ã§ãå®å®³ã¯åºãŠããªãã£ãããã ãå·®ãæ»ã hook ãå¥ã«çœ®ããæ¥ã«ã¯ãç¶ãã¯ãã®äŒè©±ãèœãšããŠããã
1ä»¶ã ãã§å€å®ãå€ããã®ã¯å±ãªãã®ã§ãæå ã®äŒè©±ãã¡ã€ã«ã14æ¥åããã®ãŒã£ãŠæ°ããããã®èšé²ã¯1,424åãã£ãã
ã©ã®æ¬ã空ã ã£ãåïŒ1,419åãã©ããäŒè©±ã¯ç¶ããŠããªã
hasOutput ã ãã true ã ã£ãåïŒ4åãã©ããäŒè©±ã¯ç¶ããŠããªãïŒå·®ãæ»ããªã hook ãäœããåºåããã ããšèŠãããïŒ
hookErrors ã«æé¢ãå ¥ã£ãŠããåïŒ1åããããä»åã®å·®ãæ»ãã§ãäŒè©±ã¯ç¶ãã
hasOutput ã¯ãå·®ãæ»ããªã hook ãäœãåºããã ãã§ã true ã«ãªããã ããå€å®ã«ã¯äœ¿ããªããhookErrors ã¯å·®ãæ»ãã®çç±ãå ¥ãããå¥ã®ã¢ãã«ã«ç¢ºããããããšãããhook ã®ç°åžžçµäºã§ãå ¥ãäœãã®ããã ã£ãããã¡ãã¯ãå ¥ã£ãŠããã念ã®ããåããªãåŽã«åãããšã«ãããééããæã®æããåãæ¿ãã1åéãã ãã§æžãããã ã14æ¥éã§ãå·®ãæ»ã以å€ã®çç±ã§å ¥ã£ãŠããåã¯0åã ã£ãã
é ç®ã®ååãä¿¡ããŠäœããšãããããæã§å€ããååã§ã¯ãªããå®éã«èµ·ããæã®èšé²ã§ç¢ºãããã
æ°åã®èšæ£ïŒæ°ããã»ãã·ã§ã³ã¯8äžããå§ãŸã
ååããæ°ããã»ãã·ã§ã³ã¯çŽ3äžããŒã¯ã³ããå§ãŸãããšæžããã宿ž¬ãããšãçŽ8äžããŒã¯ã³ã ã£ããã«ãŒã«ãšã¡ã¢ãªã®ã»ãã«ãã·ã¹ãã ã®æç€ºãããŒã«ã®å®çŸ©ãã¹ãã«ã®äžèЧãæåããèŒã£ãŠããã2åã®åãæ¿ããšããåéçŽåŸã¯çŽ8.2äžã ã£ãã
ãã®å·®ã¯å€§ãããéŸå€ãäœã眮ããšãåãæ¿ããçŽåŸã«ããŸãåãæ¿ãã£ãŠããŸãããã¹ãã§éŸå€ã8äžã§ã¯ãªã11äžã«ããã®ã¯ããã®ããã ãæ¬çªã®éŸå€ã¯ã15äžãã20äžã«äžããã
ã§ã¯ãäœäžã§åãã®ãããã®ããåãæ¿ãããã³ã«ãããæéïŒè³æãæžãåºåãšãæ°ããã»ãã·ã§ã³ã®ãã£ãã·ã¥ã®äœãçŽãïŒã Oã1åã®ããŒã«åŒã³åºãã§å¢ããéã gãæ°ããã»ãã·ã§ã³ã®åºã F ãšãããšãåèšã®èªã¿çŽãããã¡ã°ãå°ãªããªãéŸå€ã¯ããã£ããæ¬¡ã®ãããã«ãªãã
éŸå€ â F + â(2 à O à g) ïŒO ã¯èªã¿çŽãã®åäŸ¡ã«æç®ããéïŒãã£ãã·ã¥ã®äœãçŽãã¯ãèªã¿çŽãããå䟡ããã£ãšé«ããæå ã®æŠç®ãå ¥ãããš18äžååŸã«ãªãããO ã g ããŸã åœãŠæšéã ã20äžã§1é±éåãããŠãåãæ¿ãããšã®ãæžã£ãèªã¿çŽãããšãåãæ¿ãã®æéããèšé²ããæ°ããŠããæ±ºãçŽãã
ããŸã®ç¶æ ãšããã®å
ããŸã¯ãå®éã®é·ãäœæ¥ã§ãç§ãäžåºŠãè§ŠããªããŸãŸ2ååãæ¿ãã£ãŠå®äºãŸã§é²ãç¶æ ã«ãªã£ããéäžã§ /clear ãããŠãããã»ã¹çªå·ã¯å€ãããªãããšãEsc ã Ctrl+C ã§çæãäžæããŠãå€åŽã®ã©ãããŒãå·»ã蟌ãŸããªãããšã確ãããïŒ/clear ã¯1åãäžæã¯3åã®ç¢ºèªïŒã
ãã ããWindows ã§ãç§ã®ç°å¢ã§åãããã ãã ãèªåã§åãæ¿ããã®ããhook ãç»é²ãããã®1å°ã ãã«ãªã£ãŠããã
ä»åãã¡ã°ã倧ããã£ãã®ã¯ããã¹ãã®æ°ã§ã¯ãªãã£ãããã¹ãã¯ãç§ãæãã€ãã倱æããã確ãããªããæãã€ããŠããªãã£ã倱æã¯ãå®éã«åãããæã«ããåºãŠããªãã£ããèªèµ°ãåŒãç¶ãããªãããšããå·®ãæ»ãã®å°ã®å Žæãã仿§ãèªãã§æ³åããŠãã圢ãšãå®ç©ã®åœ¢ãéã£ãŠããã
ããŒã¯ã³ãã©ãã ãæžã£ããã¯ã1é±éåã®èšé²ãæ°ããŠããæžãã