ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Claude Code 钩子配置教程:4 步让 AI 编码助手自动纠错

Claude Code 钩子配置教程:4 步让 AI 编码助手自动纠错 Claude Code 钩子配置教程4 步让 AI 编码助手自动纠错【免费下载链接】claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code你让 Claude Code 在仓库里搜代码它生成了一条grep命令——还没执行PreToolUse 钩子就拦了下来提示改用更快的rg甚至直接把命令改写好再放行全程不用你动手。这就是 Claude Code 自定义配置里钩子Hooks机制带来的效果在 AI 编码助手真正调用工具之前插进一段属于你自己的检查逻辑。读完这篇你能做到用正则给 AI 的命令立规矩哪类该提醒、哪类该拦截、哪类直接改写一个 JSON 骨架加 4 步安装把钩子真正接进 Claude Code钩子没反应时用一张排错表定位权限、路径、格式三类最常见故障把常用命令偏好沉淀成规则元组走通 AI 编码助手个性化最省力的路径 2 分钟看懂钩子机制一句话讲清原理这一节解决一个基本问题钩子到底是什么、它什么时候会跑。钩子Hooks就是在特定事件触发时运行的你的脚本Claude Code 在关键节点把工具名、命令内容等上下文以 JSON 喂给你的脚本你据此决定放行、拦截还是改写。目前支持的主要事件有事件触发时机典型用途是否常用PreToolUse工具使用前命令验证、修改或阻止执行最常用PostToolUse工具使用后结果处理、日志记录常用PreGitCommandGit 命令执行前工作流验证较少用⚙️ 让钩子跑起来的最小配置JSON 骨架 4 步安装这一节解决脚本写好了怎么让 Claude Code 真的调用它。钩子配置写在用户主目录下的.claude-code/config.json里项目本身不附带这个文件路径与格式细节可查README.md。下面是 PreToolUse 钩子的最小 JSON 骨架{ hooks: { PreToolUse: [{ matcher: Bash, hooks: [{type: command, command: python3 /path/to/script.py}] }] } }三个字段各管一件事matcher限定哪个工具会触发钩子写Bash就是只在 AI 调用终端工具时运行type是钩子类型目前只支持command执行一条外部命令command就是钩子触发时实际运行的命令。这套骨架就是 Claude Code 钩子配置教程的最小闭环按顺序做 4 步即可生效创建或编辑.claude-code/config.json填入上面的骨架给钩子脚本加执行权限chmod x examples/hooks/bash_command_validator_example.py把command里的占位路径换成脚本在你机器上的真实绝对路径重启 Claude Code让新配置生效️ 从「提醒」到「自动改写」命令验证规则怎么写这一节解决规则怎么写先让钩子开口提醒再让它动手改写命令。命令验证规则的格式是一个元组正则表达式负责匹配命令模式提示消息负责在匹配命中时给出建议。示例脚本bash_command_validator_example.py里的_VALIDATION_RULES列表就是一组这样的元组(r^grep\b(?!.*\|), Use rg (ripgrep) instead of grep for better performance and features)想新增规则照葫芦画瓢往里加一条就行比如想管住curl直接下载文件的行为就追加正则r^curl\s?https?://\S\s-o\b提示消息写成改用wget --timeout10 --tries3 URL更稳妥。验证逻辑用白话讲_validate_command拿着每条规则的正则去匹配输入命令匹配命中就把对应的提示消息收集起来全都不中则返回空列表。钩子靠退出码与 Claude Code 对话——exit 0表示放行exit 2表示阻止执行此时 stderr 里的提示会回传给 AI 看。进阶玩法是把提醒升级成自动改写脚本不再只给建议而是直接把grep替换成rg、把find -name改写成rg --files -g再通过 stdout 输出形如{command: 新命令}的 JSONClaude Code 便拿改写后的命令去执行——从提醒你改变成直接帮你改。 钩子不生效先看这张排错速查表这一节帮你省掉最烦的排查过程配完钩子没反应、报错、行为不符预期基本都在表里。定位前先绕开 Claude Code直接给脚本喂一份模拟输入确认它本身工作正常echo {tool_name: Bash, tool_input: {command: grep hello *.txt}} | python3 examples/hooks/bash_command_validator_example.py这条命令正常情况下应输出验证建议、退出码为 2。脚本本身没问题再看下面的表现象可能原因处理办法钩子完全没触发配置里command路径不对或改完没重启核对为脚本真实绝对路径重启 Claude Code执行时报权限错误脚本缺少可执行权限补上chmod x配置报错或被忽略JSON 格式写错多逗号、少引号用claude-code config validate校验格式说不清钩子到底做了什么没看执行日志tail -f ~/.claude-code/logs/claude-code.log跟踪触发事件与输出 继续往下玩把钩子变成你的规则库这一节给你三个能立刻上手的延伸方向。第一配一个PostToolUse钩子在命令跑完之后做结果处理或写日志与 PreToolUse 前后呼应第二接PreGitCommand钩子在 Git 命令执行前插一道工作流验证管住提交与推送流程第三把_VALIDATION_RULES里攒下的正则整理成自己的规则库——这就是 AI 编码助手个性化最直接的形态也方便原样分享给同事复用。更多钩子示例见examples/hooks/目录配置选项与高级功能的说明在README.md功能与配置变更动态可翻CHANGELOG.md。下一步行动打开bash_command_validator_example.py按你的工具链偏好加一条只属于自己的规则填进.claude-code/config.json跑通一次拦截——从提醒到自动改写只差一个退出码的距离。【免费下载链接】claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.项目地址: https://gitcode.com/GitHub_Trending/cl/claude-code创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表