SessionStart、UserPromptSubmit、PreToolUse、PermissionRequest、PostToolUse、PreCompact、Stop 事件钩子配置。
复制下面这句话,粘贴给 Claude Code、Codex、Cursor 等 AI 编程工具,它会读取安装说明并在你确认后完成安装。
请阅读 https://ai.atlankj.com/install/asset/gh-planning-with-files-e0d49d7b68bb ,按照其中的说明把「planning-with-files Hooks · codex-hooks」安装到你(当前 AI 工具)中。执行前先告诉我将运行的命令和写入的位置,等我确认。
查看 AI 将读取的安装说明正在读取 GitHub 原文…
内容来自 GitHub 原始文件,由原作者维护。在 GitHub 查看
{
"description": "Codex lifecycle hooks for planning-with-files plugin installs",
"hooks": {
"SessionStart": [
{
"matcher": "startup|resume|clear|compact",
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/run_sh.py\" session-start.sh",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA==",
"statusMessage": "Loading planning context"
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/run_sh.py\" user-prompt-submit.sh",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA=="
}
]
}
],
"PreToolUse": [
{
"matcher": "Bash|apply_patch|Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/pre_tool_use.py\"",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA==",
"statusMessage": "Checking plan before tool use"
}
]
}
],
"PermissionRequest": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/permission_request.py\"",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA=="
}
]
}
],
"PostToolUse": [
{
"matcher": "apply_patch|Edit|Write",
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/post_tool_use.py\"",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA==",
"statusMessage": "Reviewing changes against plan"
}
]
}
],
"PreCompact": [
{
"matcher": "*",
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/run_sh.py\" pre-compact.sh",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA==",
"statusMessage": "Preparing planning context before compact"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "python3 \"${PLUGIN_ROOT}/.codex/hooks/stop.py\"",
"commandWindows": "powershell.exe -NoLogo -NoProfile -NonInteractive -EncodedCommand JgAgACgASgBvAGkAbgAtAFAAYQB0AGgAIAAkAGUAbgB2ADoAUABMAFUARwBJAE4AXwBSAE8ATwBUACAAJwAuAGMAbwBkAGUAeABcAGgAbwBvAGsAcwBcAHAAdwBmAC0AaABvAG8AawAuAGMAbQBkACcAKQAgAHAAbAB1AGcAaQBuAF8AZABpAHMAcABhAHQAYwBoAC4AcAB5AA==",
"timeout": 30
}
]
}
]
}
}