claude-code-hooks-daemon은(는) 무엇을 하나요?
Claude Code용 데몬 기반 훅 시스템으로, 지연 시작, 자동 종료 및 프로젝트 수준 핸들러 확장성을 제공합니다.
개요
이 프로젝트는 Claude Code의 기존 훅 시스템을 확장하여, 훅을 데몬(백그라운드 장기 실행 프로세스)으로 실행할 수 있게 합니다. 이를 통해 더 복잡하고 시간이 오래 걸리는 작업을 Claude Code 세션의 성능에 영향을 주지 않고 처리할 수 있습니다.
주요 기능
- 지연 시작 (Lazy Startup): 데몬은 실제로 필요할 때만 시작됩니다. 불필요한 리소스 소비를 방지합니다.
- 자동 종료 (Auto-Shutdown): 더 이상 활성 작업이 없으면 데몬이 자동으로 종료되어 백그라운드 프로세스를 정리합니다.
- 프로젝트 수준 핸들러: 각 프로젝트는 자체 핸들러 세트를 정의할 수 있어, 다양한 프로젝트에 맞게 동작을 사용자 정의할 수 있습니다.
- 확장성: 핸들러 시스템은 플러그인 방식으로 설계되어, 필요에 따라 쉽게 새로운 핸들러를 추가할 수 있습니다.
설치
# 저장소 클론
git clone https://github.com/Edmonds-Commerce-Limited/claude-code-hooks-daemon.git
# 의존성 설치
cd claude-code-hooks-daemon
npm install
사용법
- Claude Code 설정에서 훅을 활성화하거나, 이 저장소의 훅 시스템을 직접 사용합니다.
- 프로젝트 루트에
hooks디렉토리를 만들고 원하는 핸들러 스크립트를 추가합니다. - 데몬이 자동으로 시작되어 프로젝트별 핸들러를 감지하고 실행합니다.
예시 핸들러 (hooks/post-commit.js):
module.exports = async (context) => {
console.log('커밋 후 훅 실행 중...');
// 여기에 사용자 정의 로직 추가 (예: 자동 포맷팅, 린트 검사 등)
};
설정
환경 변수 또는 설정 파일을 통해 데몬 동작을 커스터마이징할 수 있습니다.
| 변수 | 설명 | 기본값 |
|---|---|---|
DAEMON_PORT | 데몬이 사용할 포트 | 9876 |
AUTO_SHUTDOWN_TIMEOUT | 비활성 상태 후 자동 종료 전 대기 시간 (밀리초) | 60000 |
HOOKS_DIR | 핸들러 스크립트 디렉토리 경로 | ./hooks |
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.