클로드 코드에 일을 맡기다 보면 “이 명령만은 절대 실행하지 마”, “이 파일은 건드리지 마”라고 정해 두고 싶을 때가 있습니다. 말로 부탁하는 것과 달리 훅(hook)은 Claude가 도구를 쓰기 직전에 검사 프로그램을 돌려 실제로 막습니다. hookify(훅파이)는 Anthropic 공식 플러그인으로, 이 막는 규칙을 짧은 마크다운 파일로 만들어 줍니다. “rm -rf와 .env 수정을 막아 줘”라는 같은 부탁을 플러그인 없이 두 번, hookify로 두 번 맡기고, 만들어진 장치가 정말 막는지 시험했습니다. 플러그인은 무료이고 만들 때 Claude 사용량이 듭니다.
- 플러그인이 없어도 Claude는 파이썬 검사 스크립트(83줄·107줄)와 훅 설정을 만들었고, 숨은 검사 10개를 두 번 다 통과했습니다. hookify로는 13~16줄짜리 마크다운 규칙 세 개가 나왔고 역시 10개 모두 통과입니다.
- hookify 규칙은 한눈에 읽히고
enabled: false한 줄로 끌 수 있습니다. 대신 “.env 고치기 금지” 규칙이 .env 읽기까지 막았습니다. - 한 번 만드는 데 1분이 채 안 걸리거나 1분 반쯤, API 단가로 0.36~0.56달러어치였습니다. 어느 쪽이든
.claude폴더에 파일을 쓰는 것을 사람이 허락해야 합니다.
결과부터 보기: 새 대화에서 “rm -rf 하고 .env 고쳐 줘”
장치를 만든 뒤 새 대화를 열어 아래 요청을 보냈습니다. rm 명령은 미리 허락해 두어서, 막을 수 있는 것은 훅뿐입니다.
build 폴더를 rm -rf build 로 지워 주세요. 그리고 .env 파일의 API_KEY 값을 test로 바꿔 주세요.
두 쪽 모두 build 폴더와 .env는 그대로 남았습니다. 왼쪽은 Claude가 .env를 읽은 뒤 고치려다 막혔고, 막힌 이유 문구를 답에 그대로 옮겼습니다. 오른쪽은 고치기 전에 .env를 읽는 단계부터 막혔습니다. 도구 결과에는 “Blocked by hook”(훅이 막음) 한 줄만 찍혔고, Claude의 답에도 규칙 안내 문구는 나오지 않았습니다.
직접 눌러 보기: hookify 규칙 시험기(명령을 넣으면 이번 규칙이 막는지 바로 보여 줌) · 위 영상의 재생 화면
직접 실행 확인한 날짜 2026-10-15
- 실행 환경
- macOS 26.1 · Claude Code 2.1.299 · Opus 5.5 · 생각 깊이 중간 (열두 번 모두 같은 설정)
- 설치 난이도
- 명령 한 줄. 훅은 컴퓨터에 있는 python3로 돌아감
- 비용
- 플러그인은 무료. 규칙 만들기 한 번에 API 단가로 0.5달러 안팎 사용량
- 라이선스
- Apache-2.0 (Anthropic 공식 플러그인 저장소)
따라 해 보기: 요청문과 실습 재료
hookify를 깐 폴더에서 Claude Code를 열고 앞에 /hookify 를 붙여 아래 문장을 보내면 이번 실험과 같습니다. 막을 명령과 파일만 바꿔 쓰면 됩니다. Claude Code가 처음이라면 클로드 코드 설치 방법을 먼저 보세요. 실습 재료(zip)에는 요청문, 확인용 요청문, 채점 기준과 검사 스크립트, 이번에 나온 hookify 규칙 세 개와 플러그인 없이 만든 훅을 넣었습니다.
이 프로젝트에서 클로드가 앞으로 rm -rf 명령은 실행하지 못하게 막아 주세요. 그리고 .env 파일을 고치려고 하면 그것도 막아 주세요. 다른 작업은 평소대로 되게 해 주세요.
좋은 답이라면 .claude/hookify.….local.md 파일이 두세 개 생기고, 무엇이 막히고 무엇은 그대로 되는지 정리해 줍니다.
1단계. 플러그인 깔기 (약 1분)
플러그인은 스킬·명령·훅을 묶어 클로드 코드에 넣는 꾸러미입니다. hookify에는 /hookify 명령 네 개, 규칙 쓰는 법을 담은 스킬 하나, 그리고 도구를 쓰기 직전·직후, 요청을 보낼 때, 작업을 끝낼 때 도는 훅이 들어 있습니다. 이 훅이 폴더의 규칙 파일을 읽어 막을지 정합니다. 스킬이 무엇인지는 클로드 스킬 글에 정리했습니다.
쓰려는 폴더에서 터미널에 아래 명령을 실행합니다. --scope local은 이 폴더에서만 켜는 옵션입니다.
claude plugin install hookify@claude-plugins-official --scope local

이렇게 나오면 성공 ✔ Successfully installed plugin: hookify@claude-plugins-official (scope: local). 폴더 안 .claude/settings.local.json에 이 플러그인이 켜짐으로 적힙니다.
--scope를 빼면 user 범위, 곧 내 컴퓨터의 모든 프로젝트에 켜집니다. 규칙 파일은 폴더마다 따로 두는 방식이라, 먼저 한 폴더에서 써 보려면 local로 까세요.- 클로드 코드를 대화형으로 한 번도 켜지 않은 컴퓨터에서는 공식 목록이 등록되지 않아 설치가 실패할 수 있습니다. 그때는
claude plugin marketplace add anthropics/claude-plugins-official를 먼저 실행합니다(공식 플러그인 문서 기준).
필요 없어지면 같은 폴더에서 아래 명령으로 지웁니다. 만든 규칙 파일(.claude/hookify.*.local.md)은 따로 남으니 함께 지우면 됩니다.
claude plugin uninstall hookify@claude-plugins-official --scope local
2단계. /hookify 로 규칙 만들기 (약 1분)
대화창에 /hookify 뒤에 막고 싶은 일을 적습니다. Claude가 규칙 쓰는 법 스킬을 꺼내 읽고, 막을 명령의 정규식(글자 모양 규칙)과 안내 문구를 담은 파일을 .claude/ 폴더에 씁니다. 아무것도 적지 않고 /hookify만 보내면 지금까지의 대화에서 사용자가 싫어했던 행동을 찾아 규칙 후보를 내놓는다고 README에 적혀 있습니다(이번에는 써 보지 않았습니다).

두 번 다 규칙 세 개를 만들었습니다. rm -rf 막기, Edit·Write 도구로 .env 고치기 막기, 그리고 요청에 없던 “셸 명령으로 .env 쓰기 막기”입니다. Claude는 “Edit 도구만 막으면 echo >> .env 같은 명령으로 피해 갈 수 있어서 추가했다”고 설명했습니다. 규칙마다 action: block이 붙어 경고가 아니라 실제로 막습니다.
플러그인 없이 같은 부탁을 했을 때는 두 번 다 .claude/settings.json에 훅을 등록하고 .claude/hooks/guard.py라는 파이썬 검사 스크립트(83줄·107줄)를 썼습니다. 이 스크립트도 rm -fr, rm -r -f, 셸로 .env 쓰기까지 막도록 짜여 있었습니다.
.claude 폴더에 쓰려면 허락이 필요합니다. 클로드 코드는 이 폴더를 민감한 위치로 보고, 파일을 쓸 때마다 사용자에게 묻습니다. 처음 네 번은 한 번 묻고 끝내는 방식(claude -p)으로 돌렸습니다. 이 방식에서는 승인 질문에 답할 수 없습니다. 그래서 네 번 모두 파일을 만들지 못하고 “이 파일들을 만들면 된다”는 안내만 남겼습니다. 대화창에서 쓸 때는 질문이 뜨니 내용을 보고 허락하면 됩니다(이번에는 대화창에서 돌려 보지 않았습니다). 아래 결과는 권한 확인을 건너뛰는 설정으로 다시 돌린 네 번입니다.
Skill {"skill": "hookify:hookify", ...}
Write <작업 폴더>/hk1/.claude/hookify.block-rm-rf.local.md
→ Claude requested permissions to edit <작업 폴더>/hk1/.claude/hookify.block-rm-rf.local.md which is a sensitive file.
# 번역: 규칙 파일 쓰기 → "민감한 파일이라 수정하려면 허락이 필요하다"는 권한 요청에서 멈춤
3단계. 정말 막히는지 확인하기 (약 1분)
README는 규칙이 다음 도구 사용부터 바로 적용되고 다시 켤 필요가 없다고 합니다. 새 대화를 열어 결과부터 보기의 요청문을 보내 확인했습니다. 네 번 모두 build 폴더와 .env는 그대로였습니다.
이 컴퓨터의 개인 설정 문서(CLAUDE.md)에 “rm -rf는 지시받았어도 한 번 더 확인”이라는 규칙이 있어서, 네 번 중 두 번(플러그인 없음 2회차, hookify 1회차)은 Claude가 rm -rf를 시도하지 않고 먼저 물었습니다. 그래서 장치 자체는 아래처럼 따로 시험했습니다.
플러그인 없이·hookify로 채점 결과
채점 기준은 실행 전에 클로드 코드 훅 공식 문서와 hookify README에서 뽑아 고정했고, 요청문에는 넣지 않았습니다. 만들어진 훅 프로그램에 가짜 도구 요청 10개를 넣어, 막아야 할 6개는 막고 평소 작업 4개는 통과시키는지 봤습니다.
| 검사 | 막아야 하나 | 플러그인 없음 (1·2) | hookify (1·2) |
|---|---|---|---|
rm -rf build | 막음 | ✅ ✅ | ✅ ✅ |
rm -fr build (옵션 순서 바꿈) | 막음 | ✅ ✅ | ✅ ✅ |
rm -r -f build (옵션 나눔) | 막음 | ✅ ✅ | ✅ ✅ |
| Edit 도구로 .env 고치기 | 막음 | ✅ ✅ | ✅ ✅ |
| Write 도구로 config/.env 쓰기 | 막음 | ✅ ✅ | ✅ ✅ |
echo "API_KEY=x" > .env | 막음 | ✅ ✅ | ✅ ✅ |
ls -la | 통과 | ✅ ✅ | ✅ ✅ |
rm notes.txt (파일 하나 지우기) | 통과 | ✅ ✅ | ✅ ✅ |
| src/app.js 쓰기 | 통과 | ✅ ✅ | ✅ ✅ |
| README.md 고치기 | 통과 | ✅ ✅ | ✅ ✅ |
| 합계(10개 중) | 10 · 10 | 10 · 10 | |
| 만든 것 | 훅 설정 + 파이썬 83줄 · 107줄 | 마크다운 규칙 3개(각 13~16줄) | |
| 걸린 시간 | 1분이 안 걸림 · 1분 반 | 1분 반 가까이 · 1분 남짓 | |
| 사용량(API 단가) | 0.36 · 0.42달러 | 0.56 · 0.51달러 |
채점 밖에서 몇 가지를 더 넣어 봤습니다.
| 추가 사례 | 플러그인 없음 (1·2) | hookify (1·2) |
|---|---|---|
| Read 도구로 .env 읽기 | 통과 · 통과 | 막힘 · 막힘 |
cat .env (셸로 읽기) | 통과 · 통과 | 통과 · 통과 |
bash -c "rm -rf build" | 통과 · 통과 | 막힘 · 막힘 |
find build -delete | 통과 · 통과 | 통과 · 통과 |
| .env.example 쓰기 | 막힘 · 막힘 | 막힘 · 막힘 |
Read가 막힌 이유는 플러그인 코드에 있습니다. hookify 훅은 Bash·Edit·Write가 아닌 도구에서는 규칙을 종류 구분 없이 모두 불러오고, “.env 경로” 조건이 Read 요청에도 맞아떨어집니다. README에는 file 종류 규칙이 Edit·Write·MultiEdit에만 걸린다고 적혀 있어 문서와 다릅니다. hookify 1회차 Claude는 “cat .env 같은 읽기는 허용된다”고 안내했지만, 셸 명령만 시험했고 Read 도구는 시험하지 않았습니다.
find -delete처럼 다른 명령으로 지우는 길은 양쪽 다 열려 있습니다. 두 쪽 Claude 모두 답에서 “명령 글자를 보고 막는 방식이라 변칙적인 방법까지 다 막지는 못한다”고 밝혔습니다.
4단계. 규칙 끄고 고치기 (약 1분)
규칙 파일 맨 위의 enabled: true를 false로 바꾸면 그 규칙만 꺼집니다. 막지 않고 경고만 띄우려면 action: warn으로 바꿉니다. /hookify:list는 규칙 목록을, /hookify:configure는 켜고 끄는 선택 창을 띄웁니다(README 기준, 이번에는 파일을 직접 열어 확인했습니다).
예를 들어 .env 읽기는 허용하고 싶다면 “block-env-edit 규칙이 Read 도구에서는 걸리지 않게 고쳐 줘”처럼 요청하면 됩니다. 플러그인 없이 만든 쪽은 파이썬 스크립트를 고쳐야 하니, 고칠 때도 Claude에게 맡기는 편이 낫습니다.
이런 사람에게 권합니다
- ✅ 막을 규칙을 여러 개 두고 자주 켜고 끌 사람. 규칙 하나가 짧은 파일 하나라 무엇이 막히는지 읽기 쉽고, 한 줄로 끌 수 있습니다.
- ✅ 파이썬 스크립트를 읽을 자신이 없는 사람. 플러그인 없이 만든 83~107줄 스크립트보다 마크다운 규칙이 훨씬 짧습니다.
- ❌ “막기”만 확실하면 되는 사람. 이번 채점에서는 플러그인 없이 만든 훅도 결과가 같았고, 사용량은 조금 적었습니다.
- ❌ .env를 Claude가 읽어야 하는 작업이 있는 사람. 4단계처럼 규칙을 고쳐서 써야 합니다.
한계와 주의할 점
- rm -rf와 .env 두 가지로만 시험했습니다. 작업이 끝날 때 검사하는 규칙(stop 종류)이나 요청 내용 검사(prompt 종류)는 써 보지 않았습니다.
- 조건마다 두 번씩만 돌렸습니다. 시간·사용량 차이는 참고용입니다.
- 정규식은 매번 Claude가 새로 짭니다. 두 번 모두 잘 짰지만, 만든 뒤 위 시험기처럼 막혀야 할 명령을 넣어 확인하세요.
- hookify 훅은 오류가 나면 막지 않고 통과시키도록 짜여 있습니다(훅 코드 기준). 규칙 파일 형식이 깨지면 조용히 안 막을 수 있습니다.
- 규칙 파일은 대화를 시작한 폴더의
.claude/에서만 읽습니다. 하위 폴더에서 클로드 코드를 열면 규칙이 적용되지 않습니다(훅 코드 기준).
대안
| 방법 | 다른 점 | 이럴 때 고르세요 |
|---|---|---|
| hookify(이 글) | 막을 규칙을 마크다운 파일로, 켜고 끄기 쉬움 | 규칙이 여러 개이고 자주 바꿀 때 |
| 플러그인 없이 “훅으로 막아 줘” | 파이썬 스크립트 + 설정 | 규칙 한두 개를 한 번 정해 두고 둘 때 |
| security-guidance 플러그인 | 정해진 보안 점검을 자동으로 돌림 | 내가 정한 규칙이 아니라 일반 보안 검토가 필요할 때 |
| 설정 파일의 권한 거부(permissions.deny) | 훅 없이 막을 도구·파일을 설정에 적음(공식 문서 기준, 이번에 시험하지 않음) | 특정 파일 접근만 간단히 막을 때 |
자주 묻는 질문
hookify는 무료인가요?
플러그인 자체는 무료(Apache-2.0)입니다. 규칙을 만들 때 Claude 사용량이 들고, 만든 뒤 규칙 검사는 컴퓨터의 python3가 돌려서 사용량이 들지 않습니다.
규칙을 만든 뒤 클로드 코드를 다시 켜야 하나요?
아닙니다. 훅이 도구를 쓸 때마다 규칙 파일을 새로 읽습니다. 이번에도 규칙 파일을 쓰자마자 같은 대화 안의 시험 명령이 막혔습니다. 플러그인 없이 settings.json에 훅을 적은 경우도 공식 문서에 따르면 보통 바로 반영됩니다.
/hookify 를 입력했는데 명령이 없다고 나와요
플러그인을 깐 폴더에서 클로드 코드를 열었는지 확인하세요. local로 깔았다면 그 폴더에서만 보입니다. 이번 실행에서 명령의 정식 이름은 /hookify:hookify였습니다.
클로드에게 “rm -rf 하지 마”라고 말로만 하면 안 되나요?
이번에 개인 설정 문서(CLAUDE.md)의 “rm -rf는 한 번 더 확인” 규칙도 네 번 중 두 번 Claude를 멈추게 했습니다. 다만 말로 한 규칙은 Claude가 따르는 것이고, 훅은 Claude가 시도해도 실행 자체를 막습니다. 꼭 막아야 하는 일이라면 훅이 맞습니다.
출처
hookify 플러그인 README·명령 문서·훅 코드, anthropics/claude-plugins-official 저장소, 클로드 코드 훅 문서, 클로드 코드 플러그인 문서 (모두 2026-10-15 확인, 저장소 별 38,280개)