logoalt Hacker News

AftHurrahWinchyesterday at 8:19 PM2 repliesview on HN

The "cat" command always exists with code 0. You need to exit with code 2.

https://code.claude.com/docs/en/hooks#exit-code-2-behavior-p...


Replies

tadfisheryesterday at 9:57 PM

Looks like stdout is also ignored with code 2, and you need to output plain text on stderr:

"Exit 2 means a blocking error. Claude Code ignores stdout and any JSON in it. Instead, stderr text is fed back to Claude as an error message."

astrodyesterday at 10:09 PM

I'm pretty sure I use console.error and code 2 using the typescript SDK.