{
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume|clear",
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/session_start_context.py\"",
"timeout": 10,
"statusMessage": "Loading compact repository context"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/user_prompt_context.py\"",
"timeout": 5,
"statusMessage": "Routing prompt context"
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash|apply_patch|Edit|Write",
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_tool_context_router.py\"",
"timeout": 10,
"statusMessage": "Routing tool context"
}
]
}
],
"PostToolUse": [
{
"matcher": "Bash|apply_patch|Edit|Write",
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/post_tool_working_state.py\"",
"timeout": 10,
"statusMessage": "Updating Codex working state"
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/pre_compact_snapshot.py\"",
"timeout": 10,
"statusMessage": "Saving pre-compact working state"
}
]
}
],
"PostCompact": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/post_compact_rehydrate.py\"",
"timeout": 10,
"statusMessage": "Rehydrating compacted context"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "/usr/bin/env python3 \"$(git rev-parse --show-toplevel)/.codex/hooks/stop_working_state.py\"",
"timeout": 10,
"statusMessage": "Saving Codex working state"
}
]
}
]
}
}