동기
Claude Code가 긴 작업을 돌리는 동안 다른 일을 한다. 그러다 보면 작업이 끝났는데도 모르고 있는 시간이 길어진다. 모니터 알림은 화면을 봐야 알고, 사운드 알림은 음악을 듣고 있으면 묻힌다.
물리적인 알림 — 책상 위에서 깃발이 올라가고 부저가 짧게 울리는 것 — 이 가장 안 놓친다는 가설.
하드웨어 구성
- ESP32-S3 — Wi-Fi + 충분한 GPIO
- SG90 서보 — 깃발을 올렸다 내림
- 수동 부저 — 짧은 비프
- WS2812 LED 4개 — 작업 상태 색상
케이스는 3D 프린트로 4cm × 4cm × 6cm. 책상 모서리에 둘 만한 크기다.
Claude Code 연동
Claude Code의 hooks 시스템이 핵심이다. `~/.claude/settings.json`에서 `Stop` 이벤트에 후크를 등록하면, 작업 완료 시 임의 명령어가 실행된다.
그 명령어가 ESP32의 로컬 IP(10.181.70.41)로 HTTP POST를 보낸다. ESP32는 받자마자 서보를 90도 회전 → 부저 3번 → LED 초록색 점등 시퀀스를 실행한다.
부수 효과
예상 못 한 효과: 작업 시작 시점에도 hook을 걸어 둘 수 있다. `PreToolUse`에 빨간 LED, `PostToolUse`에 노란 LED. Claude가 무슨 도구를 부르고 있는지 책상 옆에서 색으로 볼 수 있다.
사실상 Claude Code의 외장 LED 인디케이터가 된 셈이다.
만들면서 배운 것
Claude Code hooks는 단순한 알림 트리거가 아니다. 로컬 IoT와 LLM 에이전트를 연결하는 표준 인터페이스로 쓸 수 있다.
다음 단계는 책상 위 알림함에서 데스크 전체로 확장하는 것. 책상 조명, 음악 플레이어, 거실 스마트 플러그까지 hook으로 연결하면 작업 흐름이 환경 전체로 펼쳐진다.