keebai CLI is the fastest way to manage outbound webhooks from your terminal. Under the hood it uses the same /v1/webhooks endpoints as the API, with UX tuned for interactive workflows.
Installation
Quickstart: 5 minutes to your first event
1
Log in
~/.keebai/credentials.json (chmod 600).2
Create a subscription
3
Validate with a synthetic event
data._test: true) to your URL. If your endpoint verifies the signature and returns 2xx, you’ll see:4
Validate with real traffic
Send a WhatsApp message to your channel’s number. Your endpoint should receive a
whatsapp.message.received with a shape compatible with the Meta Cloud API.Available commands
keebai webhooks new
Prints the secret only once. Save it immediately.
keebai webhooks list
keebai webhooks test <id>
Dispatches a synthetic event (data._test: true) to the configured endpoint.
keebai webhooks deliveries <id>
History of recent delivery attempts.
event_id, event_type, status (pending / success / failed / dead), status_code, attempts, duration_ms, last_error.
keebai webhooks rotate <id>
Generates a new secret. The old one is invalidated immediately. Asks for confirmation.
new. For zero-downtime rotation, see the strategy in security.
keebai webhooks delete <id>
Deletes the subscription. Future events are not sent. Asks for confirmation.
Global flags
CI/CD
For pipeline use, override the token via env and skip the credentials file:KEEBAI_API_TOKEN takes precedence over ~/.keebai/credentials.json. The PAT must have the webhooks:read and/or webhooks:manage scopes depending on the commands you intend to run.
See also
Signature verification
How to validate
X-Keebai-Signature in your endpoint.Event catalog
Full list of types and
data shapes.REST endpoints
Same operations over HTTP, no CLI required.
Connect WhatsApp via CLI
keebai whatsapp connect and the equivalent API.Connect WhatsApp via QR
keebai whatsapp connect --qr — QR pairing scanned straight from the terminal.Connect WhatsApp from the CLI
There are two pairing modes:--qr mode draws the code in your terminal, refreshes it automatically, and once scanned prints the channel_id of the new channel. SSE flow details in POST /v1/channels/whatsapp/connect (QR mode).
Once a channel is connected (either Cloud API or QR), send messages with the same command:
POST /v1/messages with a text message, which detects the channel type (Cloud API vs QR) and routes accordingly. Templates and bulk are not supported against QR channels.