TL;DR
- Claude Code에서 권한 요청, 입력 대기 시 Slack으로 자동 알림
- 실행할 명령어, 파일 경로 등 상세 정보 포함
- PreToolUse hook과 연동하여 컨텍스트 정보 제공
- 환경변수 설정만으로 간단하게 활성화/비활성화 가능
왜 Slack 알림이 필요한가?
Claude Code로 작업하다 보면 이런 상황이 자주 발생합니다:
- “빌드 돌려놓고 커피 마시러 갔다가 30분 후에야 완료된 걸 알았다”
- “Claude가 권한을 요청하고 있었는데 몰라서 한참을 기다렸다”
- “어떤 명령어 실행 권한을 요청하는지 확인하려고 터미널로 돌아가야 했다”
특히 AI 에이전트가 복잡한 작업을 수행할 때, 우리는 터미널 앞에 계속 앉아있을 수 없습니다. 권한 요청이나 입력이 필요한 순간에 즉시 알림을 받고, 어떤 명령어인지까지 확인할 수 있다면 생산성이 크게 향상됩니다.
해결책: Claude Code Hooks + Slack
Claude Code의 Hooks 기능을 활용하면 특정 이벤트가 발생할 때 자동으로 셸 명령을 실행할 수 있습니다. 이를 Slack API와 연동하면:
| 알림 유형 | 아이콘 | 설명 |
|---|---|---|
| permission_prompt | 🔐 | 명령어 실행 권한 요청 (git push 등) |
| idle_prompt | ⏳ | 60초 이상 사용자 응답 대기 |
| auth_success | ✅ | 인증 완료 알림 |
| elicitation_dialog | 💬 | MCP 도구가 추가 입력 요청 |
핵심 기능: Tool Context 연동
단순히 “권한 요청”만 알려주는 게 아닙니다. PreToolUse hook과 연동하여 실제 실행하려는 명령어나 파일 경로까지 알림에 포함됩니다.
🔐 *권한 요청*
*Tool:* Bash
```git push origin main```
_Push commits to remote_
📁 Project: `my-project`
이제 Slack 알림만 보고도 어떤 작업에 대한 권한 요청인지 바로 파악할 수 있습니다.
구현 구조
~/.claude/skills/slack-notifier/
├── SKILL.md # 스킬 정의
├── README.md # 사용자 가이드
├── scripts/
│ └── slack-notify.sh # 알림 스크립트
└── references/
└── setup-guide.md # Slack Bot 설정 가이드
Hooks 설정
~/.claude/settings.json에 다음과 같이 설정합니다.
{
"hooks": {
"PreToolUse": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "python3 ~/.claude/skills/telegram-notifier/scripts/save_tool_context.py"
}
]
}
],
"Notification": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "~/.claude/skills/slack-notifier/scripts/slack-notify.sh"
}
]
}
]
}
}
동작 원리:
PreToolUse: 도구 실행 전 컨텍스트(명령어, 파일 경로)를 임시 파일에 저장Notification: 알림 발송 시 저장된 컨텍스트를 읽어 상세 정보 포함
실제 효용성
1. 상세한 권한 요청 정보
단순히 “권한 요청”이 아닌, 실제 실행할 명령어와 설명까지 Slack에서 확인할 수 있습니다. 터미널로 돌아가지 않고도 승인 여부를 판단할 수 있습니다.
2. 멀티태스킹 가능
Claude Code가 작업하는 동안 다른 일을 하다가, 권한 요청이나 입력 대기 알림이 오면 바로 대응할 수 있습니다.
3. 모바일에서도 확인
Slack 모바일 앱으로 알림을 받으면, 외출 중에도 어떤 권한 요청인지 확인하고 대응할 수 있습니다.
4. 팀 채널에서 공유
팀 채널에 알림을 설정하면, 공유 작업의 진행 상황을 팀원들과 실시간으로 공유할 수 있습니다.
설정 방법
1. Slack Bot 생성
- api.slack.com/apps에서 앱 생성
- OAuth & Permissions → Bot Token Scopes에
chat:write추가 - Install to Workspace 후 Bot Token 복사
- 봇을 채널에 초대:
/invite @봇이름
2. 환경변수 설정
# ~/.zshrc
export SLACK_BOT_TOKEN="xoxb-your-token"
export SLACK_CHANNEL="C01234567"
3. 테스트
echo '{"message": "테스트!", "notification_type": "permission_prompt"}' | ~/.claude/skills/slack-notifier/scripts/slack-notify.sh
GitHub 저장소
전체 소스 코드와 설치 가이드는 GitHub에서 확인할 수 있습니다.
https://github.com/greeun/slack-notifier
마치며
Claude Code의 Hooks 기능은 단순히 알림을 넘어서, 다양한 자동화 시나리오에 활용할 수 있습니다. 이 Slack 알림 설정은 AI 에이전트와 함께 일하는 방식을 더 효율적으로 만들어줍니다.
권한 요청이 올 때마다 터미널로 달려가던 시간을 이제 더 생산적으로 활용해보세요.