- Claude Code가 “honest take”, “load-bearing seam” 같은 문구를 반복한다면
**MessageDisplay 훅 (hook)**으로 화면에 표시되기 전 다른 표현으로 치환할 수 있음
- Python 스크립트가 표준 입력의 JSON에서
delta
를 읽어 대소문자를 구분하지 않고 치환한 뒤, 변경된 displayContent
를 JSON으로 반환함
을 whatchamacallit
, you're absolutely right
를 I'm a complete clown
, honest take
를 spicy doodad
, load-bearing
을 cooked
로 바꿈
- 스크립트를
~/.claude/hooks/wordswap.sh
에 저장해 실행 권한을 부여하고, ~/.claude/settings.json
의 hooks.MessageDisplay
에 명령 훅으로 등록해야 함
- 훅은
Claude Code 시작 시 로드되므로 새 세션을 열어야 적용되며, 치환 목록은 원하는 어휘로 자유롭게 바꿀 수 있음
출력 문구를 바꾸는 스크립트
MessageDisplay
훅을 이용해 Claude Code가 화면에 표시할 텍스트를 변경함
wordswap.sh
는 Python으로 작성하며, 표준 입력에서 JSON을 읽어 delta
필드의 문자열을 가져옴
경계를 붙이고 re.escape()
로 이스케이프한 다음, re.IGNORECASE
를 적용해 대소문자와 관계없이 치환함
- 처리 결과는 다음 구조의 JSON으로 출력함
hookSpecificOutput.hookEventName
: MessageDisplay
hookSpecificOutput.displayContent
: 치환된 텍스트
→ whatchamacallit
you're absolutely right
→ I'm a complete clown
honest take
→ spicy doodad
load-bearing
→ cooked
설치하고 활성화하기
- 스크립트를
~/.claude/hooks/wordswap.sh
에 저장함
chmod +x ~/.claude/hooks/wordswap.sh
를 실행해 실행 권한을 부여함
~/.claude/settings.json
의 hooks
블록에 다음과 같이 등록함
{
"hooks": {
"MessageDisplay": [
...
- 훅은 Claude Code 시작 시 로드되므로 설정 후
새 세션을 시작해야 적용됨
replacements
항목을 수정하면 예제 대신 더 유용하거나 재미있는 문구로 바꿔 사용할 수 있음