有人读完了Claude Code的源码(它是一个npm包,源码就在你的node_modules里),发现了大量未在官方文档中记录的功能。这些功能包括Hook系统的高级用法、自定义Agent、Skills系统、以及各种隐藏的配置选项。如果你是Claude Code用户,这篇文章能帮你解锁很多隐藏能力。
配置文件结构
Claude Code的配置分散在几个位置:
个人配置:~/.claude/settings.json——只有你自己能看到
项目配置:.claude/settings.json——可以提交到git,团队共享
Skills:~/.claude/skills/<name>/SKILL.md(个人)或 .claude/skills/<name>/SKILL.md(项目)
Agents:~/.claude/agents/<name>.md(个人)或 .claude/agents/<name>.md(项目)
Hook脚本:放在~/.claude/hooks/目录下,记得chmod +x加执行权限
项目级别的.claude/目录可以提交到git和团队共享,个人级别的是你自己的。
Hook系统:文档差距最大的部分
官方文档告诉你Hook接收JSON输入、exit code 2可以阻止操作。但文档没告诉你的是,Hook可以在stdout返回JSON来实现更多功能:
updatedInput——在工具执行前重写它的输入。你可以在运行时修改命令参数。
permissionDecision——强制”allow”或”deny”,不再弹出确认提示。这对自动化流程非常有用。
permissionDecisionReason——解释你的决定,会在UI中显示给用户。
additionalContext——向对话上下文注入额外信息。比如自动注入项目文档、代码规范等。
watchPaths——设置文件监听,当指定文件变化时自动触发FileChanged事件。
initialUserMessage——在会话开始时预置内容到用户消息中。适合自动化场景。
自定义Agent
Claude Code支持自定义Agent,你可以在.claude/agents/目录下创建markdown文件来定义Agent的行为。每个Agent文件就是一个角色定义,可以指定系统提示词、工具权限、上下文等。
这对团队特别有用——你可以为不同角色(前端、后端、测试)创建不同的Agent配置,每个人使用最适合自己的AI助手。
Skills系统
Skills是Claude Code的技能系统,允许你为Claude添加领域特定的知识和能力。通过创建SKILL.md文件,你可以教Claude如何处理特定任务——比如代码审查规范、部署流程、项目特定的编码标准等。
Skills和Agent的区别在于:Skills是知识和流程,Agent是角色和权限。两者可以组合使用。
实用隐藏功能
以下是源码中发现的一些实用功能:
1. 努力程度控制:Opus 4.8引入的effort控制,在API层面也有对应参数。简单任务用低effort省token,复杂任务用高effort要质量。
2. 自动文件监听:通过watchPaths,你可以让Claude自动监听配置文件变化,实现”改了配置就重新加载”的效果。
3. 权限预设:通过Hook的permissionDecision,你可以为常用操作预设权限,不再每次都弹确认框。
4. 上下文注入:通过additionalContext,你可以在每次对话开始时自动注入项目文档、API规范、代码风格指南等。
5. 会话预置:通过initialUserMessage,你可以为自动化场景预置标准指令。
配置示例
一个实用的settings.json配置:
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"command": "~/.claude/hooks/check-bash.sh"
}
]
},
"permissions": {
"allow": ["Read", "Glob", "Grep"],
"deny": ["WebSearch"]
}
}
这个配置会在每次执行Bash命令前运行检查脚本,并预设了文件读取的权限。
注意事项
1. 这些发现来自@anthropic-ai/claude-code@2.1.87版本,未记录的功能可能在后续版本中变化。
2. 源码中有些功能标记为”experimental”,可能不稳定。
3. Hook系统功能强大但也危险——错误的Hook配置可能导致Claude Code行为异常。
4. 建议在项目级别使用配置,而不是全局配置,这样更容易管理和回滚。
总结
Claude Code的文档覆盖了基本功能,但源码里藏着大量高级特性。Hook系统的JSON返回能力、自定义Agent、Skills系统——这些功能让Claude Code从一个简单的AI编程工具变成了一个可高度定制的开发平台。如果你是重度用户,值得花时间研究这些隐藏功能。
















暂无评论内容