Test GitHub Webhooks Without Guessing What GitHub Sent
Paste a Catchhook URL into your repo settings. Catchhook reads X-GitHub-Event and X-GitHub-Delivery automatically, and extracts the action field when the payload is parseable JSON — so you see the important context before opening the raw payload.
Your GitHub Test Endpoint
npx @catchhook/tunnel ep_Y2Rda8wNOLX8sxl9Olg3Vemn --key tkey_39f1bb98775649a02049c930fbbaf71f --port 3000curl -X POST https://temp.catchhook.app/hooks/ep_Y2Rda8wNOLX8sxl9Olg3Vemn \
-H "Content-Type: application/json" \
-H "X-GitHub-Event: pull_request" \
-H "X-GitHub-Delivery: test-delivery-123" \
-d '{
"action": "opened",
"pull_request": {
"id": 123,
"number": 42,
"title": "Add webhook debugging",
"state": "open"
},
"repository": {
"full_name": "acme/example"
}
}'Or
to see it appear in real time below.Live Webhook Requests
Watch requests stream in automatically with full headers, payloads, and timestamps.
Streaming Live
Waiting for your first webhook...
Send a test request using the cURL command above or configure GitHub to use your endpoint URL.
How to test GitHub webhooks with Catchhook
Follow these steps to start receiving GitHub events on your temporary endpoint.
Create your temporary endpoint
Copy the URL above.
Add it to GitHub
In GitHub, open your repository, go to Settings → Webhooks → Add webhook. Paste your Catchhook URL as the Payload URL. Set Content type to application/json. Secret is optional for initial testing. Choose individual events to receive.
Send a test delivery
Use GitHub's "Recent Deliveries" test/redeliver controls or trigger a real repo event like opening a pull request, pushing a branch, or creating an issue.
Inspect the full delivery
Catchhook reads X-GitHub-Event and X-GitHub-Delivery for you. You see the event type, action, repository, and actor at the top of every request card. The full JSON payload is one click below.
Tunnel to localhost
Run the Catchhook tunnel command to stream GitHub deliveries to your local app while keeping a debug history in the browser.
Best GitHub events to test
Pull request events
- PR notifications
- CI automation
- review workflows
- internal tooling
X-GitHub-Event: pull_requestPush events
- deploy triggers
- changelog automation
- repo sync jobs
X-GitHub-Event: pushIssues events
- support workflows
- triage automation
- project management integrations
X-GitHub-Event: issuesWorkflow run events
- CI monitoring
- release checks
- build status dashboards
X-GitHub-Event: workflow_runCommon GitHub webhook problems this helps debug
Catchhook helps you diagnose these issues before they reach production.
GitHub says delivery failed
Catchhook helps see:
- whether the request arrived
- response status
- payload body
- headers
- timestamps
I am manually parsing X-GitHub-Event and the action field
Catchhook extracts these automatically and shows them at the top of every request card:
- X-GitHub-Event
- X-GitHub-Delivery
- action
- repository.full_name
I need to replay a GitHub event
GitHub can redeliver recent deliveries, but Catchhook gives you a visible request history and a path to replay or forward captured events as part of your debugging workflow.
My local app is not reachable
Use Catchhook as the public endpoint, then start the CLI tunnel to stream deliveries to your local server.
What you get for free
Free / no signup
- temporary GitHub webhook URL
- live delivery inspection
- full headers and JSON payload
- GitHub event header visibility
- automatic event type and action detection
- response capture (see exactly what was returned)
- cURL test payload
- localhost tunnel command
- short-lived request history
Signup / free trial
- save endpoint
- replay captured deliveries
- longer retention
- conditional Endpoint Actions
- team debugging
- alerts
- AI summaries / generated handler code
- MCP server for AI editors (Claude, Cursor, Windsurf)
Webhook testing with localhost tunneling
Catchhook pairs a public endpoint with automatic GitHub event detection, delivery history, signature verification, and a CLI tunnel for localhost delivery. You can see what GitHub sent even when your local app is offline or returns an error.
When to create a permanent endpoint
Use a temporary endpoint while experimenting with a repo. Create a permanent endpoint when the webhook powers an app, notification system, automation, or production workflow.
Save This GitHub EndpointFrequently Asked Questions
You've captured 0 requests on this temp endpoint.
Create an account to keep this endpoint and continue debugging.
Ready for Production Webhooks?
Plans start at $10/month with a 14-day free trial. No credit card required.
Conditional Endpoint Actions, CSV/JSON export, custom domains, outbound webhooks, AI debugging, and a full REST API.