1P by gurm0608 8시간전 | ★ favorite | 댓글과 토론

회사에서 Claude Code 세션을 여러 개 띄워놓고 작업하는데, 어떤 세션이 입력을 기다리는 건지 놓치는 일이 많았습니다. 사무실이라 소리를 켤 수도 없고요.

Claude Code에 Hook을 이용해 도구 호출 전후로 외부 명령을 실행할 수 있는데, 보통 린트나 로깅 용도로 쓰이지만 이걸로 좀 다른 걸 해봤습니다.

Hook 이벤트를 받아서 바탕화면에 이모지 캐릭터로 띄워주는 위젯을 만들었습니다. 세션을 여러 개 돌리면 각각 따로 추적해서 나란히 보여줍니다.

demo gif

이모지로 상태를 매핑하다 보니 웃고 당황하고 조는 모습이 재밌어서, 그냥 펫이라고 부르기로 했습니다.

Claude Code hooks → claude-pet --hook → TCP(:19876) → Tauri(Rust) → WebView  

Hook은 이벤트마다 프로세스가 생겼다 사라져서 상태를 유지할 수가 없습니다. 그래서 앱 쪽에 TCP 서버를 두고, Hook이 발생할 때마다 JSON을 쏴주는 구조로 만들었습니다. Tauri 2 + Rust로 만들어서 바이너리가 8MB 정도고, curl ... | sh 한 줄로 설치하면 Hook 등록까지 자동으로 됩니다.

테마 3개 내장(로봇, 고양이, 과일), JSON으로 커스텀 테마도 만들 수 있고, Windows에서 쓰고 있고, macOS/Linux 빌드도 있는데 아직 직접 테스트는 못 했습니다. MIT.

GitHub: https://github.com/IMMINJU/claude-pet

피드백 환영합니다.