CClaude Code Catalog
전체 Hooks

세션 종료 시 백업

Stop중급Hook 타입: stop

세션 종료 시 백업은 Stop 이벤트에 연결되어 세션이 종료되기 전에 포괄적인 백업을 생성합니다. 세션 중 수정된 모든 파일 목록을 캡처하고, commit되지 않은 변경 사항이 있으면 git stash를 생성하며, 수행한 작업의 간략한 요약을 생성하고, 모든 것을 타임스탬프가 포함된 디렉터리에 저장합니다. 이를 통해 세션 간에 작업이 손실되지 않으며 중단된 곳에서 쉽게 재개할 수 있습니다. 백업은 설정 가능한 보존 기간 이후 정리됩니다.

백업세션복구git stash영속성

Hook 코드

#!/bin/bash # Session Backup on Stop Hook # Saves session context when Claude Code stops BACKUP_DIR="${HOME}/.claude/backups" TIMESTAMP=$(date +%Y%m%d_%H%M%S) SESSION_DIR="$BACKUP_DIR/session_$TIMESTAMP" RETENTION_DAYS=14 mkdir -p "$SESSION_DIR" # Record modified files echo "=== Session Backup: $TIMESTAMP ===" > "$SESSION_DIR/summary.md" echo "" >> "$SESSION_DIR/summary.md" # List recently modified files (last 2 hours) echo "## Modified Files" >> "$SESSION_DIR/summary.md" find . -name '*.ts' -o -name '*.tsx' -o -name '*.js' -o -name '*.py' | xargs stat -f "%m %N" 2>/dev/null | sort -rn | head -20 | awk '{print "- " $2}' >> "$SESSION_DIR/summary.md" # Save git status and diff echo "" >> "$SESSION_DIR/summary.md" echo "## Git Status" >> "$SESSION_DIR/summary.md" git status --short >> "$SESSION_DIR/summary.md" 2>/dev/null # Save full diff of uncommitted changes git diff > "$SESSION_DIR/uncommitted.diff" 2>/dev/null git diff --cached > "$SESSION_DIR/staged.diff" 2>/dev/null # Create stash if there are uncommitted changes if [ -n "$(git status --porcelain 2>/dev/null)" ]; then STASH_MSG="claude-session-backup-$TIMESTAMP" git stash push -m "$STASH_MSG" --keep-index 2>/dev/null echo "Stashed uncommitted changes: $STASH_MSG" git stash pop --quiet 2>/dev/null fi # Prune old backups find "$BACKUP_DIR" -maxdepth 1 -name "session_*" -type d -mtime +$RETENTION_DAYS -exec rm -rf {} \; 2>/dev/null echo "Session backup saved to $SESSION_DIR" exit 0

이 Hook을 Claude Code 설정 또는 .claude/settings.json에 추가하면 활성화됩니다.

실행 미리보기

세션 종료 시 백업

세션 종료 시 백업에 대해

Claude Code Hooks는 Claude 작업 중 특정 이벤트에 반응하여 커스텀 셸 명령을 자동으로 실행합니다. 세션 종료 시 백업은(는) 중급 수준의 Stop Hook으로, 개발 워크플로우의 핵심 시점에서 작업을 자동화하여 수동 단계를 줄이고 팀 전체의 일관성을 유지합니다.