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

WebSocket

Live-stream incoming webhooks in real-time. Connects via WebSocket with auto-reconnect.

Usage:
hookpipe tail [endpoint-id] [options]
OptionDescription
[endpoint-id]Endpoint to stream (auto-selects first if omitted)
--methodFilter by HTTP method (GET, POST, etc.)
--pathFilter by URL path substring
--jsonOutput 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]
OptionDescription
-n, --limit <n>Number of webhooks to show (default: 10, max: 200)
--methodFilter by HTTP method
--jsonOutput 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]
OptionDescription
<webhook-id>The request_id of the captured webhook
--target <url>Required. URL to replay to
--endpoint <id>Endpoint ID (auto-detected if omitted)
--jsonOutput 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]
OptionDescription
--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
--jsonOutput raw JSON
$ hookpipe filter --method POST
$ hookpipe filter --path /stripe --method POST
$ hookpipe filter --method DELETE --json | jq '.headers'

Environment Variables

VariableRequiredDescription
HOOKPIPE_API_KEY Yes Your HookPipe API key
HOOKPIPE_API_URL No API base URL (default: https://hookpipe.dev)