Choose Your Setup Method

The fastest way to get started with Unhook is using our VS Code extension:
1

Install Extension

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)
  3. Search for “Unhook - Webhook Development”
  4. Click Install
2

Authenticate

  1. Click the Unhook icon in the Activity Bar
  2. Click “Sign in to Unhook” in the status bar
  3. Complete the OAuth flow in your browser
3

Configure

Create an unhook.yml file in your workspace:
webhookUrl: https://unhook.sh/your-org/your-webhook-name
destination:
  - name: local
    url: http://localhost:3000/api/webhooks
delivery:
  - source: "*"
    destination: local
4

Start Receiving Webhooks

  1. Create a webhook URL at unhook.sh/app
  2. Configure your provider to use the Unhook URL
  3. View events in the VS Code sidebar as they arrive
The VS Code extension provides a complete webhook development environment with real-time monitoring, request replay, and team collaboration features. Learn more →

Configuration

Basic Configuration

Create an unhook.yml file in your project root:
# Required: Your unique webhook URL
webhookUrl: https://unhook.sh/your-org/your-webhook-name

# Optional: Enable debug mode
debug: false

# Optional: Enable telemetry
telemetry: true

# Required: Array of destination endpoints
destination:
  - name: local
    url: http://localhost:3000/api/webhooks
    ping: true  # Optional: Health check configuration

# Optional: Array of webhook sources
source:
  - name: stripe
  - name: github

# Required: Array of delivery rules
delivery:
  - source: "*"  # Optional: Source filter (defaults to "*")
    destination: local  # Name of the destination from 'destination' array

Environment Variables

Configure via environment variables:
# Core settings
WEBHOOK_ID=wh_your_webhook_id
WEBHOOK_DEBUG=true
WEBHOOK_TELEMETRY=true

# Destination settings
WEBHOOK_DESTINATION_0_NAME=local
WEBHOOK_DESTINATION_0_URL=http://localhost:3000/api/webhooks
WEBHOOK_DESTINATION_0_PING=true

# Source settings
WEBHOOK_SOURCE_0_NAME=stripe
WEBHOOK_SOURCE_1_NAME=github

# Delivery settings
WEBHOOK_DELIVERY_0_SOURCE=*
WEBHOOK_DELIVERY_0_DESTINATION=local

Provider Setup

Stripe

  1. Go to your Stripe Dashboard
  2. Click “Add Endpoint”
  3. Enter your Unhook URL:
https://unhook.sh/wh_your_webhook_id

GitHub

  1. Go to your repository settings
  2. Navigate to “Webhooks”
  3. Click “Add webhook”
  4. Enter your Unhook URL:
https://unhook.sh/wh_your_webhook_id

Clerk

  1. Go to your Clerk Dashboard
  2. Navigate to “Webhooks”
  3. Click “Add Endpoint”
  4. Enter your Unhook URL:
https://unhook.sh/your-org/your-webhook-name

Team Development

Shared Configuration

Teams can share a single webhook configuration:
webhookUrl: https://unhook.sh/your-org/your-team-webhook
destination:
  - name: dev1
    url: http://localhost:3000/api/webhooks
    ping: true
  - name: dev2
    url: http://localhost:3001/api/webhooks
    ping: true
source:
  - name: clerk
  - name: stripe
delivery:
  - source: clerk
    destination: dev1
  - source: stripe
    destination: dev2

Team Features

  • Shared Webhook URL: All team members use the same webhook URL
  • Individual Routing: Each developer can receive specific webhook types
  • Request History: View and replay requests across the team
  • Real-time Monitoring: See incoming requests in real-time
  • Team Dashboard: Monitor team activity and webhook status

Security Features

  • API key authentication for private webhooks
  • Method restrictions
  • Source restrictions
  • Request body size limits
  • Header filtering
  • End-to-end encryption

Authentication

Authentication data is stored locally at ~/.unhook/auth-storage.json:
  • Authentication state
  • User tokens
  • Organization ID
  • Basic user info
To clear auth data:
rm ~/.unhook/auth-storage.json

Next Steps

Support