認識Claude Code Hooks
https://docs.anthropic.com/en/docs/claude-code/hooks-guide
https://docs.anthropic.com/en/docs/claude-code/hooks
Claude Code Hooks 是什麼?
Hooks 是你在 Claude Code 不同階段,可以自訂執行的 shell 命令或腳本,會在特定事件觸發時自動執行。它可以讓你建立穩定而非隨機的行為,不必透過提示讓 Claude 記得執行特定動作,適合作業自動化、格式化、權限控管等用途
支援的觸發事件
Claude Code 提供以下幾種 hook 事件:
- PreToolUse:在 Claude 使用工具前觸發,可控制是否要阻擋或允許
- PostToolUse:工具使用後觸發,適合執行後續處理
- Notification:Claude 發出通知(如等待回應)時觸發
- UserPromptSubmit:使用者送出 prompt 時觸發
- Stop:主要互動結束時觸發(非中斷行為)
- SubagentStop:子任務完成後觸發
如何設定
在專案資料夾底下的 .claude/settings.toml
或 .claude/settings.json
加上 hook 配置。例如:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "jq -r '\"\\(.tool_input.command) - \\(.tool_input.description // \"No description\")\"' >> ./.claude/bash-command-log.txt"
}
]
}
]
}
}
安裝jq
以下是常見的 jq 安裝指令,也可以直接請Claude Code幫忙安裝jq:
Windows:
# 使用 Scoop
scoop install jq
# 使用 Chocolatey
choco install jq
# 使用 winget
winget install jqlang.jq
macOS:
# 使用 Homebrew
brew install jq
# 使用 MacPorts
sudo port install jq
Linux (Ubuntu/Debian):
sudo apt update
sudo apt install jq
Linux (CentOS/RHEL):
sudo yum install jq
# 或
sudo dnf install jq
Linux (Arch):
sudo pacman -S jq
使用結果
這樣就可以有一個文字檔紀錄過去Claude Code曾做過的事情囉
