Cmd. /loop
세션이 열려 있는 동안 프롬프트 또는 슬래시 명령을 주기적으로 반복 실행하는 번들 스킬
핵심 요약
/loop [interval] [prompt](별칭/proactive)는 세션이 열려 있는 동안 프롬프트나 슬래시 명령을 반복 실행하는 번들 스킬입니다.- 간격+프롬프트는 고정 주기(cron), 프롬프트만 주면 Claude가 1분~1시간에서 self-pacing, 둘 다 생략하면 내장 유지보수 프롬프트를 돕니다.
- 최소 간격 1분, 한 세션 최대 50개 작업, 반복 작업은 생성 후 7일이 지나면 마지막 한 번 실행 후 삭제됩니다(v2.1.72 이상).
- 세션 스코프라 새 대화를 시작하면 사라지고, Claude Code가 실행 중·idle일 때만 발화하며 놓친 발화는 보충되지 않습니다.
.claude/loop.md로 빈/loop의 기본 프롬프트를 대체할 수 있고,CLAUDE_CODE_DISABLE_CRON=1로 스케줄러 전체를 끌 수 있습니다.
명령어 원본 선언
/loop [interval] [prompt]공식 설명 요약
/loop은 세션이 열려 있는 동안 프롬프트를 반복 실행하는 번들 스킬(bundled skill) 입니다. 공식 문서 설명은 이렇습니다.
Skill. Run a prompt repeatedly while the session stays open. Omit the interval and Claude self-paces between iterations. Omit the prompt and, where available, Claude runs an autonomous maintenance check or the prompt in
.claude/loop.md. Example:/loop 5m check if the deploy finished. Alias:/proactive
간격(interval)과 프롬프트(prompt)는 둘 다 선택이라, 무엇을 넘기느냐에 따라 동작이 달라집니다.
| 입력한 것 | 예시 | 동작 |
|---|---|---|
| 간격 + 프롬프트 | /loop 5m check the deploy | 프롬프트를 고정 주기(cron) 로 실행 |
| 프롬프트만 | /loop check the deploy | 매 반복마다 Claude가 선택한 간격(self-pacing) 으로 실행 |
| 간격만, 또는 아무것도 없음 | /loop, /loop 15m | 내장 유지보수 프롬프트를 실행. loop.md가 있으면 그 내용으로 대체 |
프롬프트 자리에 다른 명령을 넘겨도 됩니다. /loop 20m /review-pr 1234처럼 패키징된 워크플로를 매 반복 재실행하는 식입니다.
별칭은 /proactive입니다. 내부적으로는 CronCreate / CronList / CronDelete 도구로 동작합니다.
최소 지원 버전
v2.1.72이상 — 공식 문서가 "Scheduled tasks require Claude Code v2.1.72 or later"로 명시.claude --version으로 확인하세요.v2.1.72:CLAUDE_CODE_DISABLE_CRON환경변수로 스케줄러 비활성화 지원v2.1.105:/proactive별칭 추가v2.1.113: 대기 중인 wakeup을Esc로 취소, wakeup 메시지 명확화
사용법
고정 주기 실행
간격과 프롬프트를 함께 주면 Claude가 cron 식으로 변환해 작업을 등록하고, 주기와 작업 ID를 알려줍니다.
/loop 5m check if the deployment finished and tell me what happened- 간격은
30m처럼 앞쪽 토큰으로 두거나every 2 hours처럼 뒤쪽 절로 둘 수 있습니다. - 지원 단위:
s(초),m(분),h(시),d(일). cron은 1분 단위이므로 초는 분으로 올림 처리됩니다. 7m,90m처럼 깔끔한 cron 스텝에 맞지 않는 간격은 가장 가까운 값으로 반올림되고, Claude가 무엇을 선택했는지 알려줍니다.- 최소 간격은 1분입니다.
다른 슬래시 명령을 반복할 수도 있습니다.
/loop 10m /statsClaude가 간격을 스스로 정하게 (self-pacing)
간격을 생략하면 Claude가 매 반복마다 1분~1시간 사이에서 간격을 동적으로 정합니다. 빌드가 끝나가거나 PR이 활발하면 짧게, 진행 중인 일이 없으면 길게 잡습니다. 고른 지연과 그 이유는 각 반복 끝에 출력됩니다.
/loop check whether CI passed and address any review comments동적 /loop에서는 Claude가 Monitor 도구를 직접 쓰기도 합니다. Monitor는 백그라운드 스크립트의 출력 라인을 스트리밍해 폴링 자체를 없애므로, 토큰 효율이 더 좋고 반응도 빠른 경우가 많습니다.
프롬프트 생략 — 내장 유지보수 프롬프트
프롬프트를 생략하면 Claude는 내장 유지보수 프롬프트를 사용합니다. 매 반복마다 순서대로 다음을 수행합니다.
- 대화에서 끝나지 않은 작업 이어서 진행
- 현재 브랜치의 PR 돌보기: 리뷰 코멘트, 실패한 CI, 머지 충돌
- 대기 중인 일이 없으면 버그 헌트·단순화 같은 정리 패스 수행
이 범위 밖의 새 작업은 시작하지 않습니다. push·삭제처럼 되돌릴 수 없는 동작은 transcript가 이미 승인한 흐름을 이어갈 때만 진행됩니다.
/loop/loop만 입력하면 동적 간격으로, /loop 15m처럼 간격을 붙이면 고정 주기로 유지보수 프롬프트를 돌립니다.
loop.md로 기본 프롬프트 커스터마이징
loop.md 파일은 내장 유지보수 프롬프트를 사용자 지정 지시문으로 대체합니다. 빈 /loop에 쓰일 단일 기본 프롬프트를 정의하는 셈이라, 커맨드라인에 프롬프트를 직접 넘기면 무시됩니다.
| 경로 | 범위 |
|---|---|
.claude/loop.md | 프로젝트 단위. 두 파일이 모두 있으면 이쪽이 우선 |
~/.claude/loop.md | 사용자 단위. 자체 파일이 없는 모든 프로젝트에 적용 |
- 정해진 구조 없는 일반 Markdown입니다.
/loop프롬프트를 직접 입력하듯 작성하면 됩니다. - 수정 사항은 다음 반복부터 반영되므로 루프가 도는 중에도 지시문을 다듬을 수 있습니다.
- 25,000바이트를 넘는 내용은 잘립니다(truncated).
좋은 사용 예
- 배포 진행 상태를 5분마다 자동 확인 (
/loop 5m check the deploy) - CI 통과 여부와 리뷰 코멘트를 self-pacing으로 점검 (
/loop check whether CI passed) - 장기 빌드 진행률을 동적 간격으로 반복 리포트
- 패키징된 워크플로를 주기적으로 재실행 (
/loop 20m /review-pr 1234) .claude/loop.md에 정의한 팀 공통 유지보수 루틴을 빈/loop로 자동 실행
비슷한 명령어 추천
| 명령어 | 차이점 | 언제 선택 |
|---|---|---|
/loop | 세션 내 주기적·자율 반복 실행 (스킬) | 세션 중 빠른 폴링·모니터링·정기 점검 |
/goal | 조건 충족까지 매 턴 작업을 이어감 | 간격이 아니라 목표 달성 기준으로 반복할 때 |
/schedule | Anthropic 클라우드 routine(원격 스케줄) 관리 | 머신·세션과 무관하게 항시 돌려야 할 때 |
/batch | 대규모 변경을 독립 단위로 분해해 병렬 실행 | 일회성 일괄 작업이 목적일 때 |
/tasks | 현재 세션 백그라운드 작업 목록 확인 | 진행 중인 작업 상태를 점검할 때 |
활용 사례
- 배포 후 헬스체크 엔드포인트를 5분 간격으로 확인
- 장애 대응 중 에러 로그를 self-pacing으로 스캔
- PR 머지 직전 CI·리뷰 코멘트를 자동으로 돌보기(babysit)
- 장기 빌드 진행률 자동 리포트
주의사항
- 세션 스코프입니다. 작업은 현재 대화에만 존재하고, 새 대화를 시작하면 모두 사라집니다.
claude --resume/--continue로 재개하면 만료되지 않은 작업(7일 이내 생성된 반복 작업, 아직 실행 시각이 지나지 않은 일회성)이 복원됩니다. - 7일 만료: 반복 작업은 생성 후 7일이 지나면 마지막으로 한 번만 실행되고 스스로 삭제됩니다. 더 오래 돌리려면 만료 전에 재생성하거나 Routines / Desktop scheduled tasks를 쓰세요.
- 작업은 Claude Code가 실행 중이고 idle일 때만 발화합니다. 터미널을 닫거나 세션이 종료되면 멈춥니다.
- 놓친 발화는 보충(catch-up)되지 않습니다. 긴 요청 처리 중 예정 시각이 지나면 idle이 될 때 한 번만 발화합니다.
- 스케줄러는 매초 due 작업을 검사해 낮은 우선순위로 큐에 넣으며, 프롬프트는 응답 도중이 아니라 턴 사이에 발화합니다.
- 한 세션에는 예약 작업을 최대 50개까지 둘 수 있고, 각 작업에는 8자리 ID가 붙습니다.
- 너무 짧은 간격(예: 매분)은 API 사용량 급증의 원인이 될 수 있습니다.
- 중지: 다음 반복을 대기하는 동안
Esc를 누르면 pending wakeup이 지워져 더 이상 발화하지 않습니다. self-paced 모드에서는 작업이 확실히 끝나면 Claude가 다음 wakeup을 잡지 않아 스스로 종료할 수도 있습니다. 고정 주기 루프는 직접 멈추거나 7일이 지나기 전까지 계속 돕니다. - 환경변수
CLAUDE_CODE_DISABLE_CRON=1을 설정하면 스케줄러 전체가 비활성화되어 cron 도구와/loop를 쓸 수 없게 되고, 이미 예약된 작업도 발화를 멈춥니다. - Bedrock·Vertex AI·Microsoft Foundry에서는 동작이 다릅니다. 간격 없는 프롬프트는 고정 10분 주기로 돌고, 프롬프트 없는
/loop와loop.md는 동작하지 않고 사용법 메시지만 출력됩니다. /proactive는/loop의 별칭이니 내부 문서에서는 한 이름으로 통일하는 편이 낫습니다.
출처
- Commands: https://code.claude.com/docs/en/commands
- Run prompts on a schedule: https://code.claude.com/docs/en/scheduled-tasks