Claude Code를 -p 없이 24시간 구동하는 방법: 직접 구현하는 훅 공유
My AI runs 24/7 on Claude Code without -p. Here's the hook to do it yourself.
핵심 요약
Claude Code를 별도 크레딧 소모 없이 24시간 상시 구동할 수 있는 자동화 훅(Heartbeat)을 개발하여 공유함.
- 자동화 훅 — -p 옵션 없이도 Claude Code를 24시간 상시 구동 가능하게 함.
- 상태 비저장 방식 — 매 메시지마다 세션을 새로 시작하여 컨텍스트 오염을 방지함.
- 구독제 활용 — 별도의 SDK 크레딧 소모 없이 기존 구독 플랜으로 운영 가능함.
- 간편한 연동 — inbox/outbox 파일 기반으로 텍스트나 JSON 입력을 처리함.
6월 15일 크레딧 변경 관련 스레드를 보고, SDK 크레딧 없이도 사용할 수 있는 -p 대체용 훅을 만들었습니다.
edit: 별 29개라니! 제 첫 진짜 레포네요 \o/
많은 분들이 보조금 지원되던 -p 사용이 중단되어 속상해하고 계시죠. 저는 기존 구독을 유지하면서도 대화형 모드에서 동일한 상태 비저장(stateless), 한 번에 한 메시지씩 처리하는 동작을 구현했습니다.
작동 방식:
- 슈퍼바이저가 대화형 모드로 Claude Code를 실행합니다.
- 스톱 훅이 inbox 파일을 폴링하여 새 메시지를 확인합니다.
- 메시지가 도착하면 훅이 이를 주입합니다 — 세션당 한 메시지.
- 에이전트가 이를 처리하고 outbox 파일에 응답을 작성합니다.
- 슈퍼바이저가 세션을 종료하고 새로운 컨텍스트로 재시작합니다.
- 다음 메시지는 깨끗한 세션에서 시작됩니다 —
-p와 같은 진정한 상태 비저장 운영.
유휴 상태일 때 훅은 내부적으로 폴링하며 최소한의 틱(~20 토큰)으로 대기합니다. 유휴 대기로 인한 컨텍스트 팽창은 없습니다.
장점:
- 메시지당 상태 비저장 —
-p처럼 각 작업마다 새로운 컨텍스트를 가짐. - SDK 크레딧 불필요 — 대화형 모드는 기존 구독을 사용함.
- 자율성 — inbox를 감시하고 메시지를 처리하며 응답을 작성함.
- 저렴한 유휴 비용 — 작업 대기 중 토큰 오버헤드가 최소화됨.
- 일반 텍스트 또는 JSON —
echo "fix the bug" >> io/inbox.jsonl명령어로 바로 작동. - 병렬 처리 — 필요한 만큼 터미널을 실행 가능.
감수해야 할 점:
- 메시지당 시작 비용 (~500 토큰, CLAUDE.md 읽기).
- 터미널당 하나의 세션 (하지만 터미널은 원하는 만큼 실행 가능).
- 터미널 필요 (백그라운드 실행을 위해
screen이나tmux사용 권장). - 컨텍스트 초기화를 도와준 /u/prototypebydesign 님께 감사드립니다.
약 100줄 정도의 자바스크립트 코드입니다. MIT 라이선스입니다.
GitHub: https://github.com/Siigari/claude-heartbeat
제 개인 AI 프로젝트(Convergence)를 위해 만들었습니다. 이 하트비트 훅이 기반이 되어 그 위에 완전한 성격 시스템을 구축했습니다. 질문 있으시면 언제든 환영합니다.

