Claude Code 扩展开发实战:钩子与自定义命令快速上手 Claude Code 扩展开发实战:钩子与自定义命令快速上手【免费下载链接】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 自动完成。Claude Code 是跑在终端里的 AI 编码工具,能执行日常任务、解释复杂代码、处理 Git 工作流;而 Claude Code 扩展开发就是让它适配你习惯的方式——用钩子拦截工具调用,用自定义命令封装固定流程。读完这篇 Claude Code 钩子教程,你能写出第一个 PreToolUse 钩子脚本,并把它和自定义命令组合成「提交前自动检查」这类工作流。 认识钩子机制:四种钩子类型与触发时机钩子(Hook)本质上是一段你自己的脚本,Claude Code 会在关键时刻自动把它拉起来执行。脚本从标准输入读到一个 JSON,里面写着工具名、工具参数这些上下文;处理完之后,用退出码告诉宿主自己的决定。整个过程不改动 Claude Code 本体,等于在工具执行前后插进了你自己的逻辑。四种钩子类型与触发时机如下:钩子类型触发时机典型用途PreToolUse工具调用前命令验证、危险操作拦截PostToolUse工具调用后结果处理、日志记录PreCommand命令解析前参数改写、上下文注入PostCommand命令执行后输出整理、状态同步四种类型里,PreToolUse 是最常用的,后面的教程就围绕它展开。第一步:Claude Code 扩展开发环境准备安装或更新 Claude Code,一条命令:npm install -g anthropic-ai/claude-code然后建一个独立目录放你的扩展,最小结构长这样:my-first-hook/ ├── validator.py └── config.json脚本可以放任意位置,但config.json里要能引用到它的绝对路径。更多安装选项见项目 README.md。第二步:写出第一个 PreToolUse 钩子脚本以「把 grep 命令自动换成更快的 rg」为例。钩子脚本干三件事:读 stdin 的 JSON、按规则判断、用退出码表态。最小骨架如下:#!/usr/bin/env python3 import json, sys def main(): data json.load(sys.stdin) # 钩子输入:JSON 从 stdin 读 if data.get(tool_name) ! Bash: sys.exit(0) # 不是 Bash,直接放行 command data[tool_input].get(command, ) if command.startswith(grep): print(建议用 rg 替代 grep, filesys.stderr) sys.exit(2) # 退出码 2 拦截,原命令不执行 sys.exit(0) # 退出码 0 放行 main()退出码是钩子机制里最重要的约定:0 放行,2 拦截;拦截时原命令不会执行,你打到 stderr 的信息会反馈给 Claude。接着把脚本挂到 PreToolUse 上,config.json长这样:{ hooks: { PreToolUse: [ { matcher: Bash, hooks: [ { type: command, command: python3 /abs/path/validator.py } ] } ] } }三个字段:matcher 匹配工具名,Bash 表示只拦 bash 调用;type 固定为 command;command 写脚本的绝对路径。最后注册配置:claude config hooks add --config ./config.json两个习惯值得养成:给 JSON 解析加上异常捕获,避免脚本自己崩掉把主流程卡死;钩子执行要快,别在里面做耗时的事。第三步:自定义命令与工作流组合自定义命令和钩子的分工不同:钩子被动触发,命令主动调用,适合统一入口触发一整段流程。一个最小示例:import { ClaudeCommand } from anthropic-ai/claude-code; export const formatCheck: ClaudeCommand { name: format-check, description: 提交前格式化检查, arguments: [{ name: file, description: 目标文件, required: true }], async execute(args) { return 检查并格式化: ${args.file}; } };两者搭起来,三种组合最常用:提交前让 PostToolUse 钩子跑格式化检查,发现没格式化的文件直接拦截;用一个命令解析本次改动,自动生成符合规范的提交信息;推送前用另一个命令串起测试套件,全绿才允许推。记住这个分工:钩子管拦截,命令管编排。排错与发布:钩子不生效时怎么查钩子不生效、或者行为不对时,先开调试模式看完整输出:claude --debug再往脚本开头加一行调试日志,确认钩子真的被调用了:print(fHook input: {data}, filesys.stderr)⚠️ 日志没出现,基本就两个原因:config.json 里写成了相对路径,或 matcher 和工具名对不上。本地跑通后再考虑分享:把脚本放进仓库的 examples/hooks/ 目录,风格对齐现有示例;写一份简短文档,说明配置字段和退出码约定;然后发到社区讨论区,让更多人看到你的 Claude Code 自定义命令方案。成熟后还可以做成插件,放进 plugins/ 目录。到这里,你已经能给 Claude Code 加上自己的规则:钩子在关键时刻拦一刀,命令把流程串起来。后续可以往三个方向深入:解析更复杂的命令参数、让多个钩子按顺序协同、对接外部 API 把检查结果写回 CI。【免费下载链接】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),仅供参考

相关新闻

最新新闻

其他的 Agent 设计范式与 Agent 和 Workflow的区别

其他的 Agent 设计范式与 Agent 和 Workflow的区别

摘要:在大型语言模型(LLM)的应用落地浪潮中,“Agent(智能体)”与“Workflow(工作流)”已成为被频繁提及却也最容易混淆的两个核心概念。究竟什么是真正的 Agent?它与传统…

2026/8/28 11:19:58
具身智能规模化落地:从VLA模型到树莓派小车的最小系统实践

具身智能规模化落地:从VLA模型到树莓派小车的最小系统实践

具身智能喊了好几年,从实验室里的机械臂抓取,到工厂里的质检分拣,再到家庭服务机器人,大家都在等一个“真正能规模落地”的拐点。但拐点不是靠换一台更贵的机械臂、加更多传感器就能出现的,真正的变量在机器人“大脑”…

2026/8/28 11:19:58
Python学生信息管理系统:从基础菜单到工业级设计的实战指南

Python学生信息管理系统:从基础菜单到工业级设计的实战指南

1. 项目概述与核心价值 最近在整理教学资料时,翻出了几年前带学生做的一个经典练手项目——用Python实现一个学生信息管理系统。这个项目几乎是每个Python初学者在掌握了基础语法和数据结构后,第一个有完整交互逻辑的实战案例。而整个系统的“门面”和“…

2026/8/28 11:19:58
RVV Benchmark实战:从环境到选型的关键解读

RVV Benchmark实战:从环境到选型的关键解读

RVV benchmark 最近讨论度明显上来了,尤其是 SiFive P870、Lanxin LX500、Epic Semi Contrail AIx 这三类 RISC-V 处理器被放在一起对比的时候。它们都支持 RISC-V 向量扩展 RVV,但定位差得很远:有的是通用高性能 IP,有的是面向 A…

2026/8/28 11:19:58
动态规划建模实战:从核心思想到代码实现与避坑指南

动态规划建模实战:从核心思想到代码实现与避坑指南

1. 从“走迷宫”到“最优路径”:动态规划的核心思想 最近在带学生做数学建模竞赛,发现很多同学一遇到多阶段决策问题,比如资源分配、生产计划、最短路径优化,第一反应就是上启发式算法或者机器学习。这当然没错,但往往…

2026/8/28 11:19:58
让搜索替你找上门:Tech Interview Handbook 面试准备内容 SEO 落地 7 步拆解

让搜索替你找上门:Tech Interview Handbook 面试准备内容 SEO 落地 7 步拆解

让搜索替你找上门:Tech Interview Handbook 面试准备内容 SEO 落地 7 步拆解 【免费下载链接】tech-interview-handbook Curated coding interview preparation materials for busy software engineers 项目地址: https://gitcode.com/GitHub_Trending/te/tech-in…

2026/8/28 11:14:58