Slack에서 Claude Code를 사용할 수 있는 미니멀 봇입니다. mpociot/claude-code-slack-bot을 참고하되, 핵심 기능만 담아 가볍게 구현했습니다.
이 프로젝트 자체가 Claude Code로 계획부터 구현까지 진행한 과정을 기록한 리포지토리이기도 합니다.
- PLAN.md — 구현 전 작성한 작업 계획
- SESSION_LOG.md — Claude Code와의 실제 대화 내역
- DM 대화 — 봇에 직접 메시지를 보내면 Claude Code가 답변
- 채널 멘션 —
@봇이름으로 호출하면 스레드에 답변 - 스레드 컨텍스트 유지 — 같은 스레드 내에서 대화 맥락을 이어감 (session resume)
- 작업 상태 표시 — "생각 중..." → 도구 사용 현황 → "완료" 순으로 상태 업데이트
- 작업 디렉토리 설정 —
cwd /path/to/project명령으로 Claude Code가 작업할 폴더 지정
| 구분 | 사용 |
|---|---|
| Runtime | Node.js + TypeScript |
| Slack | @slack/bolt (Socket Mode) |
| AI | @anthropic-ai/claude-code SDK |
| 빌드 | tsx (개발) / tsc (프로덕션) |
Claude Code가 설치되어 있다면, 아래 한 줄이면 됩니다:
이 리포(https://github.com/eiaserinnys/mini-claude-slackbot)를 clone하고 README.md를 읽고 설치해줘
- https://api.slack.com/apps → Create New App → From scratch
- Socket Mode 활성화 → App Token 생성 (scope:
connections:write) - OAuth & Permissions → Bot Token Scopes 추가:
app_mentions:read,chat:write,im:read,im:write,im:history,channels:history
- Event Subscriptions 활성화 → Bot Events 추가:
app_mention,message.im
- App Home → Messages Tab 활성화
- 워크스페이스에 설치 → Bot Token 복사
git clone https://github.com/eiaserinnys/mini-claude-slackbot.git
cd mini-claude-slackbot
npm installcp .env.example .env.env 파일에 토큰 값 입력:
SLACK_BOT_TOKEN=xoxb-... # OAuth & Permissions 페이지
SLACK_APP_TOKEN=xapp-... # Socket Mode App Token
SLACK_SIGNING_SECRET=... # Basic Information 페이지
ANTHROPIC_API_KEY=... # Claude Code 구독 없을 때만 필요
# 개발
npm run dev
# 프로덕션
npm run build
npm start| 명령 | 설명 |
|---|---|
| DM으로 메시지 전송 | 봇이 Claude Code로 처리 후 답변 |
@봇이름 질문 |
채널에서 멘션하면 스레드에 답변 |
cwd /path/to/project |
Claude Code 작업 디렉토리 설정 |
cwd |
현재 설정된 작업 디렉토리 확인 |
src/
├── app.ts # 엔트리포인트 (Slack App 초기화)
├── claude.ts # Claude Code SDK 래퍼 (세션 관리, 스트리밍)
└── slack-handler.ts # Slack 이벤트 핸들러 (DM, 멘션, cwd)
이 프로젝트는 Claude Code에게 계획을 세우게 하고, 그 계획을 바로 구현하도록 하는 방식으로 만들어졌습니다.
- 계획 수립 — Claude Code에게 요구사항을 설명하고 구현 계획을 작성
- 구현 — 계획을 그대로 전달하여 코드 생성 + 타입 오류 수정까지 자동 완료
- 설정 지원 — Slack 앱 설정 과정에서 발생한 에러(
invalid_auth)도 함께 디버깅
전체 대화 내역은 SESSION_LOG.md에서 확인할 수 있습니다.