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