hostwh
v0.1.13
Published
HostWebhook CLI — stream and forward webhook events
Maintainers
Readme
hostwh
Early Access — This CLI is in early access. The interface may change between versions. We'd love your feedback — report an issue if you run into anything.
HostWebhook CLI — receive, inspect, and forward webhook events to your local machine.
Stream live webhook traffic from hostwebhook.com directly into your terminal. No port-forwarding, no ngrok, no firewall rules.
Install
npm install -g hostwhRequires Node.js 18+.
Quick start
# 1. Create an account (or log in if you already have one)
hostwh signup
# or: hostwh login
# 2. Create a temporary tunnel to forward webhooks locally
hostwh forward http://localhost:3001/webhooks
# Copy the displayed ingress URL into Stripe/GitHub/etc.
# Press Ctrl+C to stop — endpoint is auto-deletedCommands
hostwh signup
Create a new HostWebhook account. Prompts for name, email, and password. A verification email is sent — run hostwh login after clicking the link.
hostwh signuphostwh login
Authenticate with your HostWebhook account.
hostwh loginhostwh logout
Remove stored credentials.
hostwh logouthostwh create
Interactively create a new endpoint. Prompts for name, target URL, description, and max retries.
hostwh createYou can also pass flags to skip prompts:
hostwh create --name "my-app" --url https://myapp.com/webhooks| Flag | Description |
|------|-------------|
| -n, --name <name> | Endpoint name |
| -u, --url <url> | Target URL (production URL) |
| -d, --description <text> | Optional description |
| -r, --retries <n> | Max retries after a failed delivery (default: 3). A retry is an additional attempt — 3 retries means up to 4 total attempts. Plan limits apply (Free: max 3, Pro: max 10). |
After creation you'll get an ingress URL — give it to Stripe, GitHub, or any service that sends webhooks.
hostwh listen <id>
Stream webhook events in real-time for an endpoint.
hostwh listen <id>Tunnel mode — forward to localhost
hostwh listen <id> --forward http://localhost:3001/webhooksIn tunnel mode the CLI intercepts each delivery and proxies it to your local server, then reports the HTTP status back to the platform. This is the primary workflow for local development.
| Flag | Description |
|------|-------------|
| -f, --forward <url> | Forward events to a local URL |
| --show-payload | Print the full JSON payload |
| --show-headers | Print forwarded request headers |
Example output:
my-app a1b2c3d4 active
Tunnel → http://localhost:3001/webhooks press Ctrl+C to stop
12:04:01 tunnel a1b2c3d4 http://localhost:3001/webhooks HTTP 200 43ms
12:04:08 tunnel b2c3d4e5 http://localhost:3001/webhooks HTTP 200 31mshostwh endpoints
List all your endpoints.
hostwh endpointsSubcommands
hostwh endpoints create # Create a new endpoint
hostwh endpoints show <id> # Show details and ingress URL
hostwh endpoints delete <id> # Delete an endpoint and all its datahostwh delete <id>
Delete an endpoint and permanently remove all its events and delivery history.
hostwh delete <id>
hostwh delete <id> --yes # Skip confirmation prompthostwh forward <local-url>
Create a temporary tunnel endpoint, forward all incoming webhooks to your local server, and automatically delete the endpoint when you press Ctrl+C.
hostwh forward http://localhost:3001/webhooksThis is the fastest way to test webhooks locally without creating a permanent endpoint. When you stop the session the endpoint is cleaned up automatically.
| Flag | Description |
|------|-------------|
| --show-payload | Print the full JSON payload for each event |
| --show-headers | Print forwarded request headers |
Example output:
Creating temporary endpoint...
Ingress URL https://api.hostwebhook.com/in/whk_abc123...
Copy this URL into Stripe, GitHub, or any webhook provider.
Tunnel active → http://localhost:3001/webhooks press Ctrl+C to stop and delete
12:10:01 tunnel a1b2c3d4 http://localhost:3001/webhooks HTTP 200 38ms
12:10:14 tunnel b2c3d4e5 http://localhost:3001/webhooks HTTP 200 41ms
Deleting temporary endpoint...
Endpoint deleted.Note: If the process is killed forcefully (e.g.
kill -9) the endpoint remains under the nameforward-<8chars>and can be deleted from the dashboard or withhostwh delete.
hostwh upgrade
Upgrade the CLI to the latest version.
hostwh upgradeEndpoint IDs
All commands accept either the full UUID or just the last 8 characters shown in the endpoint list:
hostwh listen a1b2c3d4
hostwh delete a1b2c3d4Local development workflow
Ephemeral (no setup required)
hostwh forward http://localhost:3001/webhooksCopy the displayed ingress URL into Stripe, GitHub, or any service. Stop with Ctrl+C — endpoint is deleted automatically.
Persistent (reuse the same URL across sessions)
- Create a permanent endpoint:
hostwh create --name "stripe-dev" --url https://myapp.com/webhooks- Copy the ingress URL and configure it in your webhook provider
- Run the tunnel locally:
hostwh listen <id> --forward http://localhost:3001/webhooks --show-payload- Trigger a webhook — it appears in your terminal and is forwarded to your local server instantly
Support
Found a bug or have a feature request? Report an issue on our website.
Privacy
Your webhook data is yours. HostWebhook is built with privacy as a core principle:
- Your payloads stay between you and your endpoints — we never sell, share, or use your data for training.
- Encryption in transit — all traffic between the CLI, the platform, and your endpoints is sent over TLS.
- Minimal data retention — event payloads are stored only for delivery and debugging, and are automatically purged based on your plan's retention window.
- No tracking, no analytics — the CLI does not collect telemetry or usage data.
License
MIT
