> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unhook.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Get started with Unhook in under 5 minutes

## Choose Your Setup Method

<Tabs>
  <Tab title="VS Code Extension">
    The fastest way to get started with Unhook is using our VS Code extension:

    <Steps>
      <Step title="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**
      </Step>

      <Step title="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
      </Step>

      <Step title="Configure">
        Create an `unhook.yml` file in your workspace:

        ```yaml theme={null}
        webhookUrl: https://unhook.sh/your-org/your-webhook-name
        destination:
          - name: local
            url: http://localhost:3000/api/webhooks
        delivery:
          - source: "*"
            destination: local
        ```
      </Step>

      <Step title="Start Receiving Webhooks">
        1. Create a webhook URL at [unhook.sh/app](https://unhook.sh/app)
        2. Configure your provider to use the Unhook URL
        3. View events in the VS Code sidebar as they arrive
      </Step>
    </Steps>

    <Note>
      The VS Code extension provides a complete webhook development environment with real-time monitoring, request replay, and team collaboration features. [Learn more →](/vscode-extension)
    </Note>
  </Tab>

  <Tab title="CLI">
    <Steps>
      <Step title="Installation">
        Install Unhook using your preferred package manager:

        ```bash theme={null}
        # Using npx (recommended)
        npx @unhook/cli init

        # Using bunx
        bunx @unhook/cli init

        # Using pnpm
        pnpm dlx @unhook/cli init

        # Using deno
        deno run --allow-net --allow-read --allow-write npm:@unhook/cli init
        ```
      </Step>

      <Step title="Initialize Project">
        Run the initialization command:

        ```bash theme={null}
        npx @unhook/cli init
        ```

        This will:

        * Open your browser for authentication
        * Create an `unhook.yml` file
        * Configure your webhook endpoints
      </Step>

      <Step title="Start Your Webhook">
        Start the webhook to begin receiving webhooks:

        ```bash theme={null}
        npx @unhook/cli listen
        ```
      </Step>

      <Step title="Configure Your Webhook Provider">
        Set up your webhook provider with the provided Unhook URL:

        ```bash theme={null}
        https://unhook.sh/your-org/your-webhook-name
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>

## Configuration

### Basic Configuration

Create an `unhook.yml` file in your project root:

```yaml theme={null}
# 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:

```bash theme={null}
# 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](https://dashboard.stripe.com/webhooks)
2. Click "Add Endpoint"
3. Enter your Unhook URL:

```bash theme={null}
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:

```bash theme={null}
https://unhook.sh/wh_your_webhook_id
```

### Clerk

1. Go to your [Clerk Dashboard](https://dashboard.clerk.dev)
2. Navigate to "Webhooks"
3. Click "Add Endpoint"
4. Enter your Unhook URL:

```bash theme={null}
https://unhook.sh/your-org/your-webhook-name
```

## Team Development

### Shared Configuration

Teams can share a single webhook configuration:

```yaml theme={null}
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:

```bash theme={null}
rm ~/.unhook/auth-storage.json
```

## Next Steps

<CardGroup>
  <Card title="VS Code Extension" icon="code" href="/vscode-extension">
    Complete webhook development environment in VS Code
  </Card>

  <Card title="Team Setup" icon="users" href="/team-setup">
    Learn how to configure Unhook for your entire team
  </Card>

  <Card title="Dashboard" icon="gauge" href="/dashboard">
    Monitor and debug your webhooks in real-time
  </Card>

  <Card title="Provider Guides" icon="plug" href="/providers">
    Detailed setup guides for all supported webhook providers
  </Card>
</CardGroup>

## Support

* [Documentation](https://docs.unhook.sh)
* [GitHub Issues](https://github.com/unhook-sh/unhook/issues)
* [Discord Community](https://discord.gg/unhook)
