Integrate brrr with Claude

Claude Code supports hooks, which can run commands at specific lifecycle events such as when Claude finishes, sends a notification, or is about to use a tool. That makes it a good fit for brrr.

The easiest route is brrr-cli, which installs Claude hooks for you. If you want full control, you can also edit ~/.claude/settings.json yourself and invoke your webhook with curl.

Use brrr-cli

brrr-cli sets up Claude Code integration by updating ~/.claude/settings.json. It installs hooks for Claude finishing, permission prompts, and user-question prompts.

Learn more on GitHub.

Configure Claude hooks manually with curl

Claude Code also lets you define hooks directly in ~/.claude/settings.json. The example below sends a push when Claude finishes, when a permission prompt appears, and when Claude is about to ask you a question.

JSON
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "curl -X POST \"https://api.brrr.now/v1/🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈\" -d 'Claude Code finished responding.'"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": "permission_prompt",
        "hooks": [
          {
            "type": "command",
            "command": "curl -X POST \"https://api.brrr.now/v1/🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈\" -d 'Claude Code is waiting for a permission approval.'"
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "AskUserQuestion",
        "hooks": [
          {
            "type": "command",
            "command": "curl -X POST \"https://api.brrr.now/v1/🙈🙈🙈🙈🙈🙈🙈🙈🙈🙈\" -d 'Claude Code is asking a question.'"
          }
        ]
      }
    ]
  }
}

This keeps the integration simple. Each hook just sends a plain text body to your webhook using curl, like the basic examples in the docs.

Learn more about Claude's hooks in the official documentation.

About the hook payload

Claude command hooks receive JSON input on stdin. The exact payload depends on the event, but it includes context about what Claude is doing, such as the event type, matcher-relevant fields, and event-specific data.

If you want to include more context later, you can replace the direct curl call with a small script that reads stdin, extracts the fields you care about, and formats a more detailed notification.

brrr-cli uses Claude's hook payload to send richer notifications with more context than the minimal direct curl setup.