JetBrains Plugin

The Unhook JetBrains plugin brings powerful webhook monitoring and debugging capabilities to all JetBrains IDEs, including IntelliJ IDEA, WebStorm, PyCharm, and more.

Overview

The JetBrains plugin provides:

  • Real-time webhook event monitoring within your IDE
  • Webhook payload inspection and debugging
  • Event replay functionality for testing
  • Team collaboration features
  • Seamless integration with your development workflow

Supported IDEs

The Unhook plugin works with all JetBrains IDEs:

IntelliJ IDEA

Ultimate and Community editions

WebStorm

JavaScript and TypeScript development

PyCharm

Python development (Professional and Community)

PhpStorm

PHP development

GoLand

Go development

Rider

.NET development

Installation

From JetBrains Marketplace

  1. Open your JetBrains IDE
  2. Go to Settings/Preferences (Ctrl+Alt+S / Cmd+,)
  3. Navigate to Plugins
  4. Search for “Unhook”
  5. Click Install

From Plugin Repository

  1. Download the plugin from JetBrains Plugin Repository
  2. Install from disk in your IDE’s plugin settings
  3. Restart your IDE

Quick Start

  1. Sign in to Unhook:

    • Open the Unhook tool window (View → Tool Windows → Unhook)
    • Click “Sign In” and follow the authentication flow
  2. View webhook events:

    • The Unhook tool window shows real-time webhook events
    • Events are automatically updated as they arrive
  3. Inspect and replay events:

    • Click on any event to view detailed information
    • Use the “Replay” button to resend webhooks to your local server

Features

Real-time Webhook Monitoring

Monitor webhook events directly in your IDE:

Live Event Feed

See webhook events as they arrive from providers

Event Details

Inspect headers, payloads, and response data

Status Tracking

Track success/failure status and response times

Provider Filtering

Filter events by provider (Stripe, GitHub, Clerk, etc.)

Webhook Event Inspection

Dive deep into webhook data with comprehensive inspection tools:

{
  "event": {
    "id": "evt_1234567890",
    "provider": "stripe",
    "type": "payment_intent.succeeded",
    "timestamp": "2024-01-15T10:30:00.000Z",
    "status": "success"
  },
  "request": {
    "method": "POST",
    "url": "https://unhook.sh/wh_stripe_prod",
    "headers": {
      "content-type": "application/json",
      "stripe-signature": "..."
    },
    "body": {
      "id": "pi_123",
      "object": "payment_intent",
      "amount": 1000,
      "currency": "usd"
    }
  },
  "response": {
    "status": 200,
    "headers": {...},
    "body": {...},
    "duration": 245
  }
}

Event Replay

Test your webhook handlers by replaying events:

  1. Select an event from the event list
  2. Click “Replay Event” button
  3. Monitor the response in real-time
  4. Debug any issues with your webhook handler

Team Collaboration

Work seamlessly with your team on webhook development:

  • Shared webhook URLs: Use the same webhook URL across your team
  • Real-time updates: See when team members are active
  • Event sharing: Share specific events with team members for debugging

Configuration

Project Configuration

Create an unhook.yaml file in your project root:

webhookId: "wh_your_webhook_id"
server:
  apiUrl: "https://app.unhook.sh"
destination:
  - name: "local"
    url: "http://localhost:3000/api/webhooks"
delivery:
  - destination: "local"

Plugin Settings

Configure the plugin through IDE settings:

  1. Open Settings/Preferences (Ctrl+Alt+S / Cmd+,)
  2. Navigate to Tools → Unhook
  3. Configure settings:
    • Auto-refresh interval
    • Notification preferences
    • Default webhook ID
    • API endpoint

Environment Variables

Set configuration via environment variables:

# API configuration
NEXT_PUBLIC_API_URL=https://app.unhook.sh
NEXT_PUBLIC_WEBHOOK_BASE_URL=https://unhook.sh

# Authentication
UNHOOK_API_KEY=your_api_key

Usage Guide

Opening the Unhook Tool Window

  1. View → Tool Windows → Unhook
  2. Or use the Unhook icon in the tool window bar
  3. The tool window appears at the bottom of your IDE

Viewing Webhook Events

  1. Open the Unhook tool window
  2. Browse events in the event list
  3. Click on an event to view details
  4. Use filters to find specific events

Inspecting Event Details

When you click on a webhook event, you’ll see:

1

Event Information

  • Event ID, provider, type, and timestamp
  • Success/failure status and response time
2

Request Details

  • HTTP method and URL
  • Headers and request body
  • Provider-specific metadata
3

Response Information

  • HTTP status code
  • Response headers and body
  • Processing duration

Replaying Events

  1. Select an event from the event list
  2. Click “Replay Event” in the event details
  3. Monitor the replay in real-time
  4. Check your application logs for the replayed event

Debugging Failed Events

When webhooks fail, the plugin helps you debug:

Integration Examples

Stripe Webhooks

# unhook.yaml
webhookId: "wh_stripe_prod"
destination:
  - name: "stripe-handler"
    url: "http://localhost:3000/api/webhooks/stripe"
delivery:
  - destination: "stripe-handler"

Monitor Stripe payment events in real-time and replay them for testing.

GitHub Webhooks

# unhook.yaml
webhookId: "wh_github_repo"
destination:
  - name: "github-handler"
    url: "http://localhost:3000/api/webhooks/github"
delivery:
  - destination: "github-handler"

Track repository events like pushes, pull requests, and issues.

Clerk Authentication

# unhook.yaml
webhookId: "wh_clerk_auth"
destination:
  - name: "auth-handler"
    url: "http://localhost:3000/api/webhooks/clerk"
delivery:
  - destination: "auth-handler"

Monitor user authentication events and session changes.

Advanced Features

Custom Event Filtering

Filter events by various criteria:

  • Provider: Filter by Stripe, GitHub, Clerk, etc.
  • Status: Show only successful or failed events
  • Time range: Filter by recent events
  • Event type: Filter by specific event types

Event Export

Export webhook events for analysis:

  1. Select events in the event list
  2. Right-click and choose “Export Events”
  3. Choose format (JSON, CSV)
  4. Download the exported file

Performance Monitoring

Track webhook performance metrics:

  • Response times: Monitor how fast your endpoints respond
  • Success rates: Track webhook delivery success
  • Error patterns: Identify common failure causes

IDE Integration

The plugin integrates seamlessly with your IDE:

  • Project-aware: Automatically detects project configuration
  • Run configurations: Create run configurations for webhook testing
  • Debug integration: Use IDE debugger with webhook replay
  • Version control: Track webhook configuration changes

Troubleshooting

Common Issues

Debug Mode

Enable debug mode for detailed logging:

  1. Open Settings/Preferences (Ctrl+Alt+S / Cmd+,)
  2. Navigate to Tools → Unhook
  3. Enable “Debug Mode”
  4. Check the IDE log for plugin messages

Plugin Logs

View plugin logs for troubleshooting:

  1. Help → Diagnostic Tools → Debug Log Settings
  2. Add “com.unhook” to the loggers
  3. Restart your IDE
  4. Check the log file for detailed information

Best Practices

  1. Keep the tool window open: Monitor webhooks while coding
  2. Use event replay: Test your handlers with real data
  3. Filter events: Focus on relevant events for your development
  4. Export for analysis: Save important events for later review
  5. Collaborate with team: Share events for debugging sessions
  6. Use project configuration: Keep webhook settings in version control

Keyboard Shortcuts

ActionWindows/LinuxmacOS
Open Unhook tool windowAlt+UCmd+U
Refresh eventsCtrl+RCmd+R
Replay selected eventCtrl+Shift+RCmd+Shift+R
Export eventsCtrl+Shift+ECmd+Shift+E

IDE-Specific Features

IntelliJ IDEA

  • Run configurations: Create webhook testing run configurations
  • Debug integration: Use the debugger with webhook replay
  • Project structure: Organize webhook configurations in project structure

WebStorm

  • JavaScript debugging: Debug webhook handlers with full JavaScript support
  • TypeScript support: Full TypeScript integration for webhook development
  • Node.js integration: Seamless Node.js debugging

PyCharm

  • Python debugging: Debug Python webhook handlers
  • Django/Flask integration: Framework-specific webhook support
  • Virtual environment: Use project virtual environments

Next Steps