CLI Reference
Stream, inspect, and replay webhooks from your terminal.
Installation
$ npm install -g hookpipe-cli
Authentication
$ export HOOKPIPE_API_KEY=hpk_your_api_key_here
Create an API key at hookpipe.dev/settings or via POST /api/auth/keys
hookpipe tail
WebSocketLive-stream incoming webhooks in real-time. Connects via WebSocket with auto-reconnect.
Usage:
hookpipe tail [endpoint-id] [options]
| Option | Description |
|---|---|
| [endpoint-id] | Endpoint to stream (auto-selects first if omitted) |
| --method | Filter by HTTP method (GET, POST, etc.) |
| --path | Filter by URL path substring |
| --json | Output raw JSON (jq-compatible) |
# Stream all webhooks
$ hookpipe tail
# Stream specific endpoint, POST only
$ hookpipe tail a1b2c3d4-... --method POST
# Pipe to jq for custom filtering
$ hookpipe tail --json | jq 'select(.body | contains("payment"))'
HookPipe · Live Stream
Endpoint: a1b2c3d4-e5f6-7890-abcd-ef1234567890
Waiting for webhooks… (Ctrl+C to stop)
ℹ Connected to live stream.
2024-01-01T12:00:01.000Z POST /stripe/webhooks [req_7f8e9d0a-...]
Content-Type: application/json
X-Stripe-Signature: t=1704067201,v1=abc...
{"type":"payment_intent.succeeded","data":{"object":{"amount":2000}}}
hookpipe list
Show the last N captured webhooks from an endpoint.
Usage:
hookpipe list [endpoint-id] [options]
| Option | Description |
|---|---|
| -n, --limit <n> | Number of webhooks to show (default: 10, max: 200) |
| --method | Filter by HTTP method |
| --json | Output raw JSON |
$ hookpipe list
$ hookpipe list a1b2c3d4-... --limit 25
$ hookpipe list a1b2c3d4-... --method POST --json | jq '.[0].request_id'
hookpipe replay
Replay a captured webhook to any public HTTPS URL.
Usage:
hookpipe replay <webhook-id> --target <url> [options]
| Option | Description |
|---|---|
| <webhook-id> | The request_id of the captured webhook |
| --target <url> | Required. URL to replay to |
| --endpoint <id> | Endpoint ID (auto-detected if omitted) |
| --json | Output raw JSON |
# Get the request ID first
$ hookpipe list a1b2c3d4-... --limit 1 --json | jq '.[0].request_id'
"req_7f8e9d0a-..."
# Replay it
$ hookpipe replay req_7f8e9d0a-... --target https://staging.myapp.com/webhooks
⚠️ Private IPs (localhost, 10.x, 192.168.x, etc.) are blocked to prevent SSRF attacks.
hookpipe filter
Live stream with method and/or path filters. Shorthand for hookpipe tail --method X --path Y.
Usage:
hookpipe filter [--method <method>] [--path <path>] [options]
| Option | Description |
|---|---|
| --method <method> | Only show webhooks with this HTTP method |
| --path <path> | Only show webhooks whose path contains this string |
| --endpoint <id> | Endpoint to stream from |
| --json | Output raw JSON |
$ hookpipe filter --method POST
$ hookpipe filter --path /stripe --method POST
$ hookpipe filter --method DELETE --json | jq '.headers'
Environment Variables
| Variable | Required | Description |
|---|---|---|
| HOOKPIPE_API_KEY | Yes | Your HookPipe API key |
| HOOKPIPE_API_URL | No | API base URL (default: https://hookpipe.dev) |