agentic-harness

훅 (10)

세션 시작, 도구 실행 전후 같은 라이프사이클 이벤트에서 동작하는 훅 목록입니다. 위험 명령 차단·자동 lint·세션 컨텍스트 주입 등 마지막 방어선 역할을 합니다.

먼저 검증된 것부터 보기

지금 가장 인기 있는 GitHub 하네스 레포 10선

카탈로그를 직접 채우기 전에, GitHub 공개 API 로 검증한 인기 하네스 레포 10개와 “바로 적용” 가이드를 먼저 보시면 시작이 훨씬 빠릅니다.

10선 페이지로 이동 →

무엇을 보는 페이지인가

세션 시작, 도구 실행 전후 같은 순간에 자동으로 붙는 guardrail 목록입니다. 문맥 주입, 위험 명령 차단, 자동 검증이 여기에 속합니다.

어떻게 고르면 좋은가

먼저 event를 보고, 그 다음 matcher와 command를 읽으십시오. hooks는 기능 소개보다 실행 시점과 트리거 조건이 더 중요합니다.

다음 단계

hooks는 rules나 sandbox를 대체하지 않으므로, 심화 가이드와 보안 문서를 같이 보는 편이 좋습니다.

Hooks 심화 보기 →

바로 열어보기

내부 인벤토리만 보지 말고, 관련된 실제 GitHub 저장소와 공식 문서도 같이 열어 보시는 편이 이해가 빠릅니다.

실제로 바로 가져갈 수 있는 starter

아래 항목은 이 저장소가 제공하는 copy-ready starter source에서 생성한 예시입니다. 표시된 경로는 프로젝트에 둘 권장 위치입니다.

codex hooks.json

SessionStart / PreToolUse 최소 Codex hooks starter

Codex

파일 경로

.codex/hooks.json

pre_bash_guard.py

위험한 bash 차단용 Codex hook script starter

Codex

파일 경로

.codex/hooks/pre_bash_guard.py

settings.json

permissions + hooks를 함께 포함한 Claude starter

Claude Code

파일 경로

.claude/settings.json

바로 적용 순서

  1. 1

    먼저 SessionStart와 PreToolUse 두 개만 넣습니다.

  2. 2

    hook 스크립트는 짧고 결정적으로 유지합니다.

  3. 3

    카드의 event와 matcher를 보고, 자기 프로젝트 수명주기와 맞는지 확인합니다.

  4. 4

    무거운 전체 테스트는 hook보다 verify 스크립트로 내리는 편이 안전합니다.

예시 구조

.codex/hooks.json
.codex/hooks/session_start_context.py
.codex/hooks/pre_bash_guard.py

위 구조를 기준으로 자기 프로젝트에 동일한 파일/디렉터리를 만들고, 카드에서 고른 항목 내용을 옮기면 됩니다.

실제로 옮길 위치

.codex/hooks.json + .codex/hooks/*

플랫폼 필터를 먼저 고른 뒤, 카드의 파일 경로와 위 위치를 참고해서 자기 프로젝트에 같은 구조를 만드시면 됩니다.

바로 붙여넣을 프롬프트

이 프로젝트에 맞는 SessionStart와 PreToolUse 중심의 최소 hooks 구조를 만들어줘. 위험 명령 차단과 세션 컨텍스트 주입부터 넣어줘.

카탈로그에서 항목을 읽은 뒤, 위 문장을 그대로 붙여 넣고 프로젝트에 맞는 최소 구조부터 요청하시는 방식이 가장 빠릅니다.

10개 결과 / 전체 10개

PostToolUse Write|Edit

Claude Code

PostToolUse · Write|Edit · Kotlin 파일 자동 lint 검사

bash "$CLAUDE_PROJECT_DIR/.claude/hooks/post_kt_lint.sh"

파일 경로

.claude/settings.json
PostToolUseWrite|Edit

PostToolUse Write|Edit|MultiEdit|ApplyPatch

Codex

PostToolUse · Write|Edit|MultiEdit|ApplyPatch · Kotlin 파일 자동 lint 검사

bash "$(git rev-parse --show-toplevel)/.codex/hooks/post_kt_lint.sh"

파일 경로

.codex/hooks.json
PostToolUseWrite|Edit|MultiEdit|ApplyPatch

PreToolUse Bash

Codex

PreToolUse · Bash · Checking command policy

/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/pre_bash_guard.py"

파일 경로

.codex/hooks.json
PreToolUseBash

PreToolUse Bash

Claude Code

PreToolUse · Bash · 명령 안전 정책 검사 중

/usr/bin/python3 "$CLAUDE_PROJECT_DIR/.claude/hooks/pre_bash_guard.py"

파일 경로

.claude/settings.json
PreToolUseBash

SessionStart

Claude Code

SessionStart · · 저장소 하네스 컨텍스트 로딩

/usr/bin/python3 "$CLAUDE_PROJECT_DIR/.claude/hooks/session_start_context.py"

파일 경로

.claude/settings.json
SessionStart

SessionStart startup|resume

Codex

SessionStart · startup|resume · Loading repository harness context

/usr/bin/python3 "$(git rev-parse --show-toplevel)/.codex/hooks/session_start_context.py"

파일 경로

.codex/hooks.json
SessionStartstartup|resume

PreToolUse 크리덴셜 마스킹

Claude Code

PreToolUse · Bash · Bash 명령 안의 API 키 / 토큰 / 비밀번호 패턴을 차단하거나 마스킹

python3 "$CLAUDE_PROJECT_DIR/.claude/hooks/credential_mask.py"

파일 경로

.claude/settings.json
PreToolUseBash

PostToolUse 민감 출력 필터

Claude Code

PostToolUse · Bash|Read · 도구 출력에서 주민등록번호, API 키, AWS credentials 같은 민감 패턴 자동 마스킹

python3 "$CLAUDE_PROJECT_DIR/.claude/hooks/sensitive_output_filter.py"

파일 경로

.claude/settings.json
PostToolUseBash|Read

SessionStart MCP 허용 목록 주입

Codex

SessionStart · * · 세션 시작 시 허용된 MCP 서버 목록을 컨텍스트에 주입

python3 "$(git rev-parse --show-toplevel)/.codex/hooks/mcp_allowlist.py"

파일 경로

.codex/hooks.json
SessionStart*

PostToolUse 토큰 사용량 집계

Codex

PostToolUse · Bash|Read|Write · 도구 호출 직후 추정 토큰 사용량을 stderr 에 기록해 세션 누적 비용 가시화

python3 "$(git rev-parse --show-toplevel)/.codex/hooks/token_counter.py"

파일 경로

.codex/hooks.json
PostToolUseBash|Read|Write