클로드 코드가 열일 할 때, 뭐하는지 모르고 무조건 맡겨 두면 안 됩니다. 그렇다고 터미널 창을 하염 없이 바라보고 있기엔 너무나 힘들쥬..? 그럴 때 필요한 '바이브코딩 관제탑' 을 소개합니다! (주의: 제 서비스 아니고 해외 사례를 추천한 것입니다)
나: "이거 리팩토링해줘" (5분 후) 나: "...뭐하는 거지?" 나: "에러 났나? 진행 중인가?" 나: "어디까지 했어?"
터미널 여러 개 띄워놓으면? → 왔다갔다 정신없음
서브에이전트까지 쓰면? → 뭐하는지 더 모름
verbose 켜면? → 화면 지저분, 스크롤 지옥
verbose 끄면? → 뭐하는지 모름

한 화면에서 다 보입니다:
"어제 Claude가 뭐 했더라?" "그 에러 언제 났었지?" "이번 주에 Bash 몇 번 실행했지?"
텍스트 로그 파일이었다면? → grep 노가다, 파일 찾기 지옥
SQLite DB라서? → SQL 쿼리 한 방에 검색
| 텍스트 로그 | SQLite DB |
|---|---|
| 여러 세션 동시 쓰기 → 데이터 깨짐 | ✅ 동시 쓰기 안전 (WAL 모드) |
검색 =grep 노가다 | ✅ SQL 쿼리로 즉시 |
| 통계 = 스크립트 짜야 함 | ✅GROUP BY로 끝 |
| 용량 큼 | ✅ 압축되어 작음 |
이 도구는 Claude Code의 Hooks 기능을 활용해서 만들어졌습니다.
Claude Code가 뭔가 할 때마다 자동으로 실행되는 스크립트입니다.
Claude가 Bash 실행 → Hook 발동 → 내가 정한 스크립트 실행 Claude가 파일 수정 → Hook 발동 → 내가 정한 스크립트 실행
| 용도 | 예시 |
|---|---|
| 자동 포맷팅 | 파일 수정할 때마다 Prettier 실행 |
| 파일 보호 | .env 수정 시도하면 차단 |
| 알림 | 작업 끝나면 Slack/이메일 알림 |
| 로깅 | 모든 명령어 기록 ←이 도구가 하는 것! |
Claude Code → Hook 발동 → 이벤트를 서버로 전송 → DB 저장 → 대시보드에 표시
즉, Hooks 기능을 활용해서 "Claude가 하는 모든 것"을 캡처하는 겁니다.
Hooks 더 알고 싶으면:
/hooks명령어로 직접 설정해볼 수 있어요!
| Before | After |
|---|---|
| 터미널 왔다갔다 | 한 화면에서 모든 세션 확인 |
| 서브에이전트 뭐하는지 모름 | 실시간으로 다 보임 |
| 에러 찾으려고 스크롤 | 필터링으로 즉시 검색 |
| 끝났는지 안 끝났는지 모름 | 완료 이벤트 즉시 확인 |
| 나중에 뭐 했는지 기억 안남 | DB에 전부 저장되어 있음 |
| 이벤트 | 설명 |
|---|---|
| 🔧도구 실행 | Bash, Write, Edit 등 뭘 실행하는지 |
| ✅실행 결과 | 성공/실패 + 출력 내용 |
| 👥서브에이전트 | 시작/완료 시점 |
| 🛑작업 완료 | Claude가 응답 끝냈을 때 |
| 💬내 입력 | 내가 뭐라고 했는지도 기록 |
| 에이전트 종류 | 추적 |
|---|---|
| 기본 Claude Code 세션 | ✅ |
| Task 도구로 생성된 서브에이전트 | ✅ |
/agents로 정의한 커스텀 에이전트 | ✅ |
@에이전트명으로 호출한 에이전트 | ✅ |
커스텀 에이전트도 결국 hooks를 통해 실행되기 때문에 전부 캡처됩니다.
실시간으로 보는 건 시작일 뿐. 모든 게 DB에 쌓입니다.
| 질문 | 답변 방법 |
|---|---|
| "어제 Claude가 뭐 했지?" | SQL 쿼리 한 줄 |
| "그 에러 언제 났었지?" | 에러 로그 검색 |
| "어떤 도구를 가장 많이 쓰지?" | GROUP BY 통계 |
| "이 파일 언제 수정했지?" | 파일명으로 필터 |
| "어느 프로젝트에 시간 많이 썼지?" | 프로젝트별 집계 |
span
Before: "에러 많이 난 것 같은데..." After: "이번 주 에러 17건, 주로 빌드 단계에서 발생"
바이브코딩도 데이터로 개선할 수 있습니다.
bash# Bun 설치 (없으면) curl -fsSL https://bun.sh/install | bash # uv 설치 (없으면) curl -LsSf https://astral.sh/uv/install.sh | sh
bash# 클론 git clone https://github.com/disler/claude-code-hooks-multi-agent-observability.git cd claude-code-hooks-multi-agent-observability # 환경변수 cp .env.sample .env # .env 열어서 ANTHROPIC_API_KEY 입력 # 실행 ./scripts/start-system.sh
http://localhost:5173
끝!
bashcp -R .claude /your/project/.claude
.claude/settings.json에서 YOUR_PROJECT_NAME을 내 프로젝트 이름으로 변경:
json"command": "uv run .claude/hooks/send_event.py --source-app 'my-project-name'"
bash# 터미널 1: 대시보드 서버 (켜두기) ./scripts/start-system.sh # 터미널 2: 내 프로젝트 cd /your/project claude
이제 대시보드에서 실시간으로 보입니다!
나: "이 코드 리팩토링해줘"
대시보드:
🔧 Read: src/api/user.ts (파일 읽는 중) 🔧 Read: src/api/auth.ts (파일 읽는 중) 🔧 Write: src/api/user.ts (수정 중) 🔧 Bash: npm run build (빌드 중) ✅ Bash: 성공 🔧 Bash: npm run test (테스트 중) ...
Claude가 뭐하는지 실시간으로 다 보임!
나: "API, 프론트, 테스트 동시에 작업해줘" Claude: Task 도구로 서브에이전트 3개 생성
대시보드:
👥 서브에이전트 1 시작 - API 작업 👥 서브에이전트 2 시작 - 프론트 작업 👥 서브에이전트 3 시작 - 테스트 작업 🔧 서브에이전트 1: Write src/api/user.ts 🔧 서브에이전트 2: Write src/components/Button.tsx ✅ 서브에이전트 3 완료 ...
서브에이전트까지 전부 추적!
🔧 Bash: npm run build ❌ Error: Cannot find module 'lodash' 🔧 Bash: npm install lodash ✅ Bash: npm run build (성공)
어디서 에러 났는지, 어떻게 해결했는지 다 보임!
터미널 1: my-api 프로젝트 (백엔드) 터미널 2: my-frontend 프로젝트 (프론트) 터미널 3: my-docs 프로젝트 (문서)
대시보드 필터로 원하는 것만:
실시간 모니터링은 기본이고, 모든 게 DB에 저장된다는 게 진짜 가치입니다.
나: "이 레거시 코드 전체 리팩토링해줘" (예상 30분)
대시보드 띄워두고 유튜브 보다가...
🛑 작업 완료!
끝났을 때 바로 알 수 있음!
💡 알림 Hook 추가하면 Slack/Discord로도 받을 수 있음
바이브코딩하다 보면 Claude가 뭘 했는지 기억 안 날 때 많잖아요?
sql-- 어제 실행한 모든 Bash 명령어 SELECT * FROM events WHERE tool_name = 'Bash' AND timestamp > date('now', '-1 day') ORDER BY timestamp;
결과:
14:30 npm install axios 14:32 npm run build 14:35 npm run test 15:10 git add . 15:11 git commit -m "Add API client" ...
grep으로 로그 뒤지는 거랑 차원이 다름!
sql-- 이번 주에 발생한 모든 에러 SELECT timestamp, tool_name, tool_response FROM events WHERE tool_response LIKE '%error%' AND timestamp > date('now', '-7 days') ORDER BY timestamp DESC;
"그 에러 언제 났었지?" → 바로 찾음
sql-- 어떤 도구를 가장 많이 썼나? SELECT tool_name, COUNT(*) as count FROM events GROUP BY tool_name ORDER BY count DESC;
결과:
| tool_name | count |
|---|---|
| Read | 234 |
| Write | 156 |
| Bash | 89 |
| Edit | 45 |
sql-- 프로젝트별로 얼마나 작업했나? SELECT source_app, COUNT(*) as events FROM events GROUP BY source_app ORDER BY events DESC;
결과:
| source_app | events |
|---|---|
| my-api | 523 |
| my-frontend | 312 |
| my-docs | 89 |
어느 프로젝트에 시간 많이 썼는지 한눈에!
sql-- src/api/user.ts 파일 변경 이력 SELECT timestamp, tool_name FROM events WHERE tool_input LIKE '%src/api/user.ts%' ORDER BY timestamp;
"이 파일 언제 수정했지?" → 즉시 확인
Claude가 뭔가 할 때마다 즉시 화면에 표시
나중에 "아까 뭐 했더라?" 할 때 검색 가능
어떤 세션이 활발한지 시각적으로 표시
| 상황 | 추천도 |
|---|---|
| Claude 하나만 가끔 씀 | ⭐ 없어도 됨 |
| Claude가 뭐하는지 궁금함 | ⭐⭐⭐⭐ 실시간으로 다 보임 |
| 터미널 2~3개 동시에 씀 | ⭐⭐⭐⭐ 한 화면에서 확인 |
| 서브에이전트 자주 씀 | ⭐⭐⭐⭐⭐필수 |
| "뭐 했더라?" 자주 까먹음 | ⭐⭐⭐⭐ DB에 다 저장됨 |
| 장시간 작업 많음 | ⭐⭐⭐⭐ 띄워두고 다른 일 가능 |
A: 아니요, 내 컴퓨터에서 돌아가는 로컬 도구입니다.
A: 내 컴퓨터의 SQLite 파일에 저장됩니다.
A: 가볍습니다. Bun + SQLite라서 리소스 거의 안 먹음.
A: 기본적으로 개인용입니다. 하지만...
| 방법 | 가능 여부 |
|---|---|
| 같은 컴퓨터에서 여러 터미널 | ✅ 가능 |
| 같은 네트워크에서 IP로 접속 | ⚠️ 가능하지만 비공식 |
| 원격 팀원과 공유 | ❌ 별도 서버 구축 필요 |
팀 공유가 필요하다면: 서버를 공유 가능한 곳에 띄우고 팀원들이
http://서버IP:5173으로 접속하면 됩니다. 단, 인증 기능이 없으니 내부망에서만 사용하세요.
A: 네! 이 도구는 Hooks의 한 가지 활용 예시일 뿐입니다.
/hooks 명령어로 직접 설정 가능bash# 서버 실행 중인지 확인 curl http://localhost:4000/health
bash# .claude 폴더 있는지 확인 ls -la .claude/hooks/ # uv 설치됐는지 확인 uv --version
Claude가 뭐하는지, 에러 어디서 났는지, 이제 다 보입니다.
서브에이전트까지 쓴다면? 필수입니다.
바이브코딩의 눈을 뜨세요. 👀
| 컴포넌트 | 기술 |
|---|---|
| Hook | Python + uv |
| 서버 | Bun + TypeScript |
| DB | SQLite (WAL) |
| 프론트 | Vue 3 + Tailwind |
| 이벤트 | 설명 |
|---|---|
| PreToolUse | 도구 실행 전 |
| PostToolUse | 도구 실행 후 |
| UserPromptSubmit | 사용자 입력 |
| Notification | 알림 |
| Stop | 응답 완료 |
| SubagentStop | 서브에이전트 완료 |
| SessionStart | 세션 시작 |
| SessionEnd | 세션 종료 |
| PreCompact | 컨텍스트 압축 전 |
댓글을 작성하려면 로그인이 필요합니다.
클로드 코드가 열일 할 때, 뭐하는지 모르고 무조건 맡겨 두면 안 됩니다. 그렇다고 터미널 창을 하염 없이 바라보고 있기엔 너무나 힘들쥬..? 그럴 때 필요한 '바이브코딩 관제탑' 을 소개합니다! (주의: 제 서비스 아니고 해외 사례를 추천한 것입니다)
나: "이거 리팩토링해줘" (5분 후) 나: "...뭐하는 거지?" 나: "에러 났나? 진행 중인가?" 나: "어디까지 했어?"
터미널 여러 개 띄워놓으면? → 왔다갔다 정신없음
서브에이전트까지 쓰면? → 뭐하는지 더 모름
verbose 켜면? → 화면 지저분, 스크롤 지옥
verbose 끄면? → 뭐하는지 모름

한 화면에서 다 보입니다:
"어제 Claude가 뭐 했더라?" "그 에러 언제 났었지?" "이번 주에 Bash 몇 번 실행했지?"
텍스트 로그 파일이었다면? → grep 노가다, 파일 찾기 지옥
SQLite DB라서? → SQL 쿼리 한 방에 검색
| 텍스트 로그 | SQLite DB |
|---|---|
| 여러 세션 동시 쓰기 → 데이터 깨짐 | ✅ 동시 쓰기 안전 (WAL 모드) |
검색 =grep 노가다 | ✅ SQL 쿼리로 즉시 |
| 통계 = 스크립트 짜야 함 | ✅GROUP BY로 끝 |
| 용량 큼 | ✅ 압축되어 작음 |
이 도구는 Claude Code의 Hooks 기능을 활용해서 만들어졌습니다.
Claude Code가 뭔가 할 때마다 자동으로 실행되는 스크립트입니다.
Claude가 Bash 실행 → Hook 발동 → 내가 정한 스크립트 실행 Claude가 파일 수정 → Hook 발동 → 내가 정한 스크립트 실행
| 용도 | 예시 |
|---|---|
| 자동 포맷팅 | 파일 수정할 때마다 Prettier 실행 |
| 파일 보호 | .env 수정 시도하면 차단 |
| 알림 | 작업 끝나면 Slack/이메일 알림 |
| 로깅 | 모든 명령어 기록 ←이 도구가 하는 것! |
Claude Code → Hook 발동 → 이벤트를 서버로 전송 → DB 저장 → 대시보드에 표시
즉, Hooks 기능을 활용해서 "Claude가 하는 모든 것"을 캡처하는 겁니다.
Hooks 더 알고 싶으면:
/hooks명령어로 직접 설정해볼 수 있어요!
| Before | After |
|---|---|
| 터미널 왔다갔다 | 한 화면에서 모든 세션 확인 |
| 서브에이전트 뭐하는지 모름 | 실시간으로 다 보임 |
| 에러 찾으려고 스크롤 | 필터링으로 즉시 검색 |
| 끝났는지 안 끝났는지 모름 | 완료 이벤트 즉시 확인 |
| 나중에 뭐 했는지 기억 안남 | DB에 전부 저장되어 있음 |
| 이벤트 | 설명 |
|---|---|
| 🔧도구 실행 | Bash, Write, Edit 등 뭘 실행하는지 |
| ✅실행 결과 | 성공/실패 + 출력 내용 |
| 👥서브에이전트 | 시작/완료 시점 |
| 🛑작업 완료 | Claude가 응답 끝냈을 때 |
| 💬내 입력 | 내가 뭐라고 했는지도 기록 |
| 에이전트 종류 | 추적 |
|---|---|
| 기본 Claude Code 세션 | ✅ |
| Task 도구로 생성된 서브에이전트 | ✅ |
/agents로 정의한 커스텀 에이전트 | ✅ |
@에이전트명으로 호출한 에이전트 | ✅ |
커스텀 에이전트도 결국 hooks를 통해 실행되기 때문에 전부 캡처됩니다.
실시간으로 보는 건 시작일 뿐. 모든 게 DB에 쌓입니다.
| 질문 | 답변 방법 |
|---|---|
| "어제 Claude가 뭐 했지?" | SQL 쿼리 한 줄 |
| "그 에러 언제 났었지?" | 에러 로그 검색 |
| "어떤 도구를 가장 많이 쓰지?" | GROUP BY 통계 |
| "이 파일 언제 수정했지?" | 파일명으로 필터 |
| "어느 프로젝트에 시간 많이 썼지?" | 프로젝트별 집계 |
span
Before: "에러 많이 난 것 같은데..." After: "이번 주 에러 17건, 주로 빌드 단계에서 발생"
바이브코딩도 데이터로 개선할 수 있습니다.
bash# Bun 설치 (없으면) curl -fsSL https://bun.sh/install | bash # uv 설치 (없으면) curl -LsSf https://astral.sh/uv/install.sh | sh
bash# 클론 git clone https://github.com/disler/claude-code-hooks-multi-agent-observability.git cd claude-code-hooks-multi-agent-observability # 환경변수 cp .env.sample .env # .env 열어서 ANTHROPIC_API_KEY 입력 # 실행 ./scripts/start-system.sh
http://localhost:5173
끝!
bashcp -R .claude /your/project/.claude
.claude/settings.json에서 YOUR_PROJECT_NAME을 내 프로젝트 이름으로 변경:
json"command": "uv run .claude/hooks/send_event.py --source-app 'my-project-name'"
bash# 터미널 1: 대시보드 서버 (켜두기) ./scripts/start-system.sh # 터미널 2: 내 프로젝트 cd /your/project claude
이제 대시보드에서 실시간으로 보입니다!
나: "이 코드 리팩토링해줘"
대시보드:
🔧 Read: src/api/user.ts (파일 읽는 중) 🔧 Read: src/api/auth.ts (파일 읽는 중) 🔧 Write: src/api/user.ts (수정 중) 🔧 Bash: npm run build (빌드 중) ✅ Bash: 성공 🔧 Bash: npm run test (테스트 중) ...
Claude가 뭐하는지 실시간으로 다 보임!
나: "API, 프론트, 테스트 동시에 작업해줘" Claude: Task 도구로 서브에이전트 3개 생성
대시보드:
👥 서브에이전트 1 시작 - API 작업 👥 서브에이전트 2 시작 - 프론트 작업 👥 서브에이전트 3 시작 - 테스트 작업 🔧 서브에이전트 1: Write src/api/user.ts 🔧 서브에이전트 2: Write src/components/Button.tsx ✅ 서브에이전트 3 완료 ...
서브에이전트까지 전부 추적!
🔧 Bash: npm run build ❌ Error: Cannot find module 'lodash' 🔧 Bash: npm install lodash ✅ Bash: npm run build (성공)
어디서 에러 났는지, 어떻게 해결했는지 다 보임!
터미널 1: my-api 프로젝트 (백엔드) 터미널 2: my-frontend 프로젝트 (프론트) 터미널 3: my-docs 프로젝트 (문서)
대시보드 필터로 원하는 것만:
실시간 모니터링은 기본이고, 모든 게 DB에 저장된다는 게 진짜 가치입니다.
나: "이 레거시 코드 전체 리팩토링해줘" (예상 30분)
대시보드 띄워두고 유튜브 보다가...
🛑 작업 완료!
끝났을 때 바로 알 수 있음!
💡 알림 Hook 추가하면 Slack/Discord로도 받을 수 있음
바이브코딩하다 보면 Claude가 뭘 했는지 기억 안 날 때 많잖아요?
sql-- 어제 실행한 모든 Bash 명령어 SELECT * FROM events WHERE tool_name = 'Bash' AND timestamp > date('now', '-1 day') ORDER BY timestamp;
결과:
14:30 npm install axios 14:32 npm run build 14:35 npm run test 15:10 git add . 15:11 git commit -m "Add API client" ...
grep으로 로그 뒤지는 거랑 차원이 다름!
sql-- 이번 주에 발생한 모든 에러 SELECT timestamp, tool_name, tool_response FROM events WHERE tool_response LIKE '%error%' AND timestamp > date('now', '-7 days') ORDER BY timestamp DESC;
"그 에러 언제 났었지?" → 바로 찾음
sql-- 어떤 도구를 가장 많이 썼나? SELECT tool_name, COUNT(*) as count FROM events GROUP BY tool_name ORDER BY count DESC;
결과:
| tool_name | count |
|---|---|
| Read | 234 |
| Write | 156 |
| Bash | 89 |
| Edit | 45 |
sql-- 프로젝트별로 얼마나 작업했나? SELECT source_app, COUNT(*) as events FROM events GROUP BY source_app ORDER BY events DESC;
결과:
| source_app | events |
|---|---|
| my-api | 523 |
| my-frontend | 312 |
| my-docs | 89 |
어느 프로젝트에 시간 많이 썼는지 한눈에!
sql-- src/api/user.ts 파일 변경 이력 SELECT timestamp, tool_name FROM events WHERE tool_input LIKE '%src/api/user.ts%' ORDER BY timestamp;
"이 파일 언제 수정했지?" → 즉시 확인
Claude가 뭔가 할 때마다 즉시 화면에 표시
나중에 "아까 뭐 했더라?" 할 때 검색 가능
어떤 세션이 활발한지 시각적으로 표시
| 상황 | 추천도 |
|---|---|
| Claude 하나만 가끔 씀 | ⭐ 없어도 됨 |
| Claude가 뭐하는지 궁금함 | ⭐⭐⭐⭐ 실시간으로 다 보임 |
| 터미널 2~3개 동시에 씀 | ⭐⭐⭐⭐ 한 화면에서 확인 |
| 서브에이전트 자주 씀 | ⭐⭐⭐⭐⭐필수 |
| "뭐 했더라?" 자주 까먹음 | ⭐⭐⭐⭐ DB에 다 저장됨 |
| 장시간 작업 많음 | ⭐⭐⭐⭐ 띄워두고 다른 일 가능 |
A: 아니요, 내 컴퓨터에서 돌아가는 로컬 도구입니다.
A: 내 컴퓨터의 SQLite 파일에 저장됩니다.
A: 가볍습니다. Bun + SQLite라서 리소스 거의 안 먹음.
A: 기본적으로 개인용입니다. 하지만...
| 방법 | 가능 여부 |
|---|---|
| 같은 컴퓨터에서 여러 터미널 | ✅ 가능 |
| 같은 네트워크에서 IP로 접속 | ⚠️ 가능하지만 비공식 |
| 원격 팀원과 공유 | ❌ 별도 서버 구축 필요 |
팀 공유가 필요하다면: 서버를 공유 가능한 곳에 띄우고 팀원들이
http://서버IP:5173으로 접속하면 됩니다. 단, 인증 기능이 없으니 내부망에서만 사용하세요.
A: 네! 이 도구는 Hooks의 한 가지 활용 예시일 뿐입니다.
/hooks 명령어로 직접 설정 가능bash# 서버 실행 중인지 확인 curl http://localhost:4000/health
bash# .claude 폴더 있는지 확인 ls -la .claude/hooks/ # uv 설치됐는지 확인 uv --version
Claude가 뭐하는지, 에러 어디서 났는지, 이제 다 보입니다.
서브에이전트까지 쓴다면? 필수입니다.
바이브코딩의 눈을 뜨세요. 👀
| 컴포넌트 | 기술 |
|---|---|
| Hook | Python + uv |
| 서버 | Bun + TypeScript |
| DB | SQLite (WAL) |
| 프론트 | Vue 3 + Tailwind |
| 이벤트 | 설명 |
|---|---|
| PreToolUse | 도구 실행 전 |
| PostToolUse | 도구 실행 후 |
| UserPromptSubmit | 사용자 입력 |
| Notification | 알림 |
| Stop | 응답 완료 |
| SubagentStop | 서브에이전트 완료 |
| SessionStart | 세션 시작 |
| SessionEnd | 세션 종료 |
| PreCompact | 컨텍스트 압축 전 |
댓글을 작성하려면 로그인이 필요합니다.