紀錄Claude Code曾經下過的指令

認識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曾做過的事情囉