The official HookNexus command-line tool. Use it to sign in, manage endpoints, listen for webhooks, inspect requests, and forward live webhooks to a local URL.
- Node.js 18 or newer
npm install -g hooknexusAfter a global install, run hooknexus in your terminal. Some setups also expose the hnx alias (see the bin field in package.json).
# 1. Sign in (GitHub OAuth only for now)
hooknexus login
# 2. Create an endpoint
hooknexus endpoints create
# 3. Start listening
hooknexus listen
# 4. Forward to your machine
hooknexus forward --to http://localhost:3000/webhookhooknexus login
hooknexus logout
hooknexus whoamiloginuses GitHub OAuth- If you are already logged in locally, the CLI asks whether to switch accounts
hooknexus endpoints
hooknexus endpoints ls
hooknexus endpoints create
hooknexus endpoints create --permanent
hooknexus endpoints info <endpoint-id>
hooknexus endpoints delete <endpoint-id>Notes:
- Running
endpointswith no subcommand prints help for that group --permanentis a Plus feature
hooknexus listen
hooknexus listen <endpoint-id>
hooknexus listen <endpoint-id-1> <endpoint-id-2>
hooknexus listen --all
hooknexus listen --json
hooknexus listen --quietNotes:
- With no endpoint argument, the CLI loads endpoints for your account
- If you have exactly one endpoint, it is selected automatically
- If you have several, the CLI prompts you in an interactive terminal
- If you have none, it creates a normal endpoint and continues
hooknexus forward --to http://localhost:3000/webhook
hooknexus forward <endpoint-id> --to http://localhost:3000/webhook
hooknexus forward --to http://localhost:3000 --preserve-path
hooknexus forward --to http://192.168.1.100:8080 --allow-externalNotes:
- Available on Free and Plus
- By default only
localhost,127.0.0.1, and.localtargets are allowed - Use
--allow-externalto forward to a non-local URL - Endpoint selection matches
listenwhen you omit the endpoint id
hooknexus requests
hooknexus requests ls <endpoint-id>
hooknexus requests show <request-id>
hooknexus requests body <request-id>
hooknexus requests replay <request-id> --to http://localhost:3000/webhookNotes:
- Running
requestsalone prints help for that group requests bodypretty-prints JSON when the body parses as JSON- Partial request ids prompt you to run
requests lsfor the full id requests replayis Plus only
hooknexus account info
hooknexus account subscription
hooknexus upgradehooknexus config ls
hooknexus config get apiUrl
hooknexus config set apiUrl https://api.hooknexus.com
hooknexus config set authUrl https://api.infra-hub.hooknexus.com
hooknexus config set timeout 30000
hooknexus config reset
hooknexus config pathConfigurable keys:
apiUrlauthUrlwebUrloutputFormatcolortimeout
hooknexus --help
hooknexus --version
hooknexus --no-color
hooknexus <command> --json| Capability | Free | Plus |
|---|---|---|
| Temporary endpoints | 3 | 10 |
| Permanent endpoints | — | 1 |
| WebSocket listeners | 2 per endpoint | 3 per endpoint |
| Forward to local | Yes | Yes |
| Request replay | — | Yes |
| Request retention | 24 hours | 30 days |
| API key | — | Yes |
Sign in again:
hooknexus loginThe id is often incomplete. List requests for the endpoint:
hooknexus requests ls <endpoint-id>To allow a remote URL, pass:
hooknexus forward --to http://example.com/webhook --allow-externalReplay is not on Free. Upgrade with:
hooknexus upgrade- Business API default:
https://api.hooknexus.com - Auth / billing API default:
https://api.infra-hub.hooknexus.com - After login, a JWT is stored locally
- WebSocket connections send both an
Authorizationheader and a query token
See docs/development.md. Chinese: docs/development.zh-CN.md.