Claude가 ‘load-bearing’이라는 표현을 쓰지 않게 만드는 방법
요약
Claude Code의 MessageDisplay 훅을 사용하여 특정 반복 문구를 원하는 표현으로 자동 치환하는 방법을 설명합니다. Python 스크립트를 활용해 JSON 데이터를 처리하고 설정을 통해 Claude Code 세션에 적용할 수 있습니다.
핵심 포인트
- MessageDisplay 훅을 통해 Claude Code의 출력 문구 제어 가능
- Python 스크립트로 대소문자 구분 없는 텍스트 치환 구현
- ~/.claude/settings.json 설정을 통한 훅 등록 및 활성화
- 사용자 정의 어휘 목록을 통한 개인화된 인터페이스 구축
- Claude Code가 “honest take”, “load-bearing seam” 같은 문구를 반복한다면
**MessageDisplay 훅 (hook)**으로 화면에 표시되기 전 다른 표현으로 치환할 수 있음 - Python 스크립트가 표준 입력의 JSON에서
delta
를 읽어 대소문자를 구분하지 않고 치환한 뒤, 변경된 displayContent
를 JSON으로 반환함
- 예제에서는
seam
을 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
필드의 문자열을 가져옴
- 각 원문 문구의 앞뒤에
\b
경계를 붙이고 re.escape()
로 이스케이프한 다음, re.IGNORECASE
를 적용해 대소문자와 관계없이 치환함
- 처리 결과는 다음 구조의 JSON으로 출력함
hookSpecificOutput.hookEventName
:MessageDisplay
hookSpecificOutput.displayContent
: 치환된 텍스트
- 예제 치환 규칙은 다음과 같음
seam
→ 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
항목을 수정하면 예제 대신 더 유용하거나 재미있는 문구로 바꿔 사용할 수 있음
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기