Skip to content

CLI Commands

Complete reference for all Hookbase CLI commands.

Global Options

These options are available for all commands:

OptionDescription
--jsonOutput as JSON (for scripting)
-y, --yesSkip confirmation prompts
--helpShow help
--versionShow version

Authentication

login

Authenticate with your Hookbase account.

bash
hookbase login

Opens a browser for OAuth authentication. After successful login, credentials are stored locally.

Options:

OptionDescription
--api-key <key>Use API key instead of browser auth

logout

Log out and clear stored credentials.

bash
hookbase logout

whoami

Display current authentication status.

bash
hookbase whoami
hookbase whoami --json

Aliases: status

Output:

Hookbase CLI Status

User:         [email protected]
Display Name: John Doe
Organization: my-company

API Keys

Manage API keys for programmatic access.

api-keys list

List all API keys (values are masked).

bash
hookbase api-keys list
hookbase api-keys ls --json

Aliases: keys list, keys ls

api-keys create

Create a new API key.

bash
hookbase api-keys create
hookbase api-keys create --name "CI/CD Key" --scopes read,write --expires 90

Options:

OptionDescription
-n, --name <name>API key name
-s, --scopes <scopes>Comma-separated scopes (read, write)
-e, --expires <days>Expiration in days
-y, --yesSkip confirmation

WARNING

The API key is only shown once after creation. Store it securely!

api-keys revoke

Revoke an API key.

bash
hookbase api-keys revoke key_abc123
hookbase api-keys revoke key_abc123 --yes

Aliases: api-keys delete

Sources

Manage webhook sources (ingest endpoints).

sources list

List all sources.

bash
hookbase sources list
hookbase sources ls --json

sources create

Create a new source interactively or with options.

bash
# Interactive
hookbase sources create

# With options
hookbase sources create --name "GitHub Webhooks" --slug "github" --provider github

Options:

OptionDescription
-n, --name <name>Source name
-s, --slug <slug>URL slug (auto-generated if not provided)
-p, --provider <provider>Provider: github, stripe, shopify, slack, linear, custom
-y, --yesSkip confirmation

sources get

Show source details.

bash
hookbase sources get src_abc123
hookbase sources show src_abc123 --json

Aliases: sources show

sources update

Update a source.

bash
hookbase sources update src_abc123 --name "New Name"
hookbase sources update src_abc123 --inactive

Options:

OptionDescription
-n, --name <name>New name
-p, --provider <provider>New provider
-d, --description <desc>New description
--activeSet source as active
--inactiveSet source as inactive

sources delete

Delete a source.

bash
hookbase sources delete src_abc123
hookbase sources rm src_abc123 --yes

Aliases: sources rm

sources rotate-secret

Rotate the signing secret for a source.

bash
hookbase sources rotate-secret src_abc123

Destinations

Manage webhook destinations (delivery targets).

destinations list

List all destinations.

bash
hookbase destinations list
hookbase dest ls --json

Aliases: dest list, dest ls

destinations create

Create a new destination.

bash
# Interactive
hookbase destinations create

# With options
hookbase destinations create \
  --name "Production API" \
  --url "https://api.myapp.com/webhooks" \
  --method POST

Options:

OptionDescription
-n, --name <name>Destination name
-u, --url <url>Destination URL
-m, --method <method>HTTP method: POST, PUT, PATCH
-y, --yesSkip confirmation

destinations get

Show destination details.

bash
hookbase destinations get dst_xyz789
hookbase dest show dst_xyz789 --json

Aliases: dest get, dest show

destinations update

Update a destination.

bash
hookbase destinations update dst_xyz789 --url "https://api.myapp.com/v2/webhooks"
hookbase dest update dst_xyz789 --inactive

Options:

OptionDescription
-n, --name <name>New name
-u, --url <url>New URL
-m, --method <method>New HTTP method
--activeSet destination as active
--inactiveSet destination as inactive

destinations delete

Delete a destination.

bash
hookbase destinations delete dst_xyz789
hookbase dest rm dst_xyz789 --yes

Aliases: dest delete, dest rm

destinations test

Send a test webhook to a destination.

bash
hookbase destinations test dst_xyz789

Routes

Manage webhook routes (source → destination mappings).

routes list

List all routes.

bash
hookbase routes list
hookbase routes ls --json

routes create

Create a new route.

bash
# Interactive
hookbase routes create

# With options
hookbase routes create \
  --name "GitHub to Slack" \
  --source src_abc123 \
  --destination dst_xyz789

Options:

OptionDescription
-n, --name <name>Route name
-s, --source <sourceId>Source ID
-d, --destination <destId>Destination ID
-p, --priority <priority>Priority (higher = runs first)
-y, --yesSkip confirmation

routes get

Show route details.

bash
hookbase routes get rte_abc123
hookbase routes show rte_abc123 --json

Aliases: routes show

routes update

Update a route.

bash
hookbase routes update rte_abc123 --name "New Route Name"
hookbase routes update rte_abc123 --inactive

Options:

OptionDescription
-n, --name <name>New name
-s, --source <sourceId>New source ID
-d, --destination <destId>New destination ID
-p, --priority <priority>New priority
--activeSet route as active
--inactiveSet route as inactive

routes delete

Delete a route.

bash
hookbase routes delete rte_abc123
hookbase routes rm rte_abc123 --yes

Aliases: routes rm

Tunnels

Manage localhost tunnels for local development.

tunnels list

List all tunnels.

bash
hookbase tunnels list
hookbase tunnel ls --json

Aliases: tunnel list, tunnel ls

tunnels create

Create a new tunnel without connecting.

bash
hookbase tunnels create
hookbase tunnels create --name "Dev Tunnel" --subdomain myapp

Options:

OptionDescription
-n, --name <name>Tunnel name
-s, --subdomain <subdomain>Custom subdomain (Pro plan)
-y, --yesSkip confirmation

tunnels start

Create and connect a tunnel in one step. This is the most common way to start a tunnel.

bash
hookbase tunnels start 3000
hookbase tunnel s 3000 --name "My App"

Aliases: tunnel start, tunnel s

Options:

OptionDescription
-n, --name <name>Tunnel name (default: tunnel-<port>)
-s, --subdomain <subdomain>Custom subdomain (Pro plan)

Output:

✓ Tunnel created

┌─────────────────────────────────────────────┐
│ Tunnel Info                                 │
├─────────────────────────────────────────────┤
│ Public URL: https://api.hookbase.app/t/abc  │
│ Local:      http://localhost:3000           │
│ Subdomain:  abc-xyz-123                     │
└─────────────────────────────────────────────┘

✓ Connected!
Forwarding https://api.hookbase.app/t/abc → localhost:3000

Press Ctrl+C to stop the tunnel
────────────────────────────────────────────────
Incoming requests:

tunnels connect

Connect to an existing tunnel.

bash
hookbase tunnels connect tun_abc123 3000

tunnels get

Show tunnel details.

bash
hookbase tunnels get tun_abc123
hookbase tunnel show tun_abc123 --json

Aliases: tunnels show, tunnel show

tunnels status

Get live tunnel status.

bash
hookbase tunnels status tun_abc123

tunnels disconnect

Disconnect a tunnel (keep for later use).

bash
hookbase tunnels disconnect tun_abc123

tunnels delete

Delete a tunnel permanently.

bash
hookbase tunnels delete tun_abc123
hookbase tunnel rm tun_abc123 --yes

Aliases: tunnels rm, tunnel rm

tunnels monitor

Launch the tunnel monitor TUI for real-time request logging.

bash
hookbase tunnels monitor tun_abc123 3000

See TUI Dashboard for more details.

Cron Jobs

Manage scheduled webhook jobs.

cron list

List all cron jobs.

bash
hookbase cron list
hookbase cron ls --json

cron create

Create a new cron job.

bash
hookbase cron create
hookbase cron create \
  --name "Health Check" \
  --schedule "*/5 * * * *" \
  --destination dst_xyz789 \
  --payload '{"type": "health_check"}'

Options:

OptionDescription
-n, --name <name>Job name
-s, --schedule <cron>Cron expression
-d, --destination <destId>Destination ID
--payload <json>JSON payload
--group <groupId>Cron group ID
-y, --yesSkip confirmation

cron get

Show cron job details.

bash
hookbase cron get cron_abc123
hookbase cron show cron_abc123 --json

Aliases: cron show

cron update

Update a cron job.

bash
hookbase cron update cron_abc123 --schedule "0 * * * *"
hookbase cron update cron_abc123 --inactive

cron delete

Delete a cron job.

bash
hookbase cron delete cron_abc123
hookbase cron rm cron_abc123 --yes

Aliases: cron rm

cron enable

Enable a disabled cron job.

bash
hookbase cron enable cron_abc123

cron disable

Disable a cron job without deleting it.

bash
hookbase cron disable cron_abc123

cron status

Show the status and next run time for a cron job.

bash
hookbase cron status cron_abc123

Output:

Cron Job: Health Check
Schedule: */5 * * * *
Status:   Active
Last Run: 2024-01-15 10:30:00 (success)
Next Run: 2024-01-15 10:35:00

cron follow

Stream cron job executions in real-time.

bash
hookbase cron follow
hookbase cron follow --job cron_abc123
hookbase cron watch

Aliases: cron watch

Options:

OptionDescription
--job <cronId>Filter by cron job ID

cron builder

Interactive cron expression builder.

bash
hookbase cron builder

Launches an interactive TUI to build cron expressions with a visual schedule preview.

cron groups

Manage cron groups.

bash
hookbase cron groups list
hookbase cron groups create --name "Health Checks"
hookbase cron groups delete cgrp_abc123

Events

View and stream webhook events.

events list

List recent events.

bash
hookbase events list
hookbase events ls --limit 100 --source src_abc123
hookbase events list --status failed --json

Options:

OptionDescription
-l, --limit <number>Number of events (default: 50)
-s, --source <sourceId>Filter by source
--status <status>Filter: delivered, failed, pending

events get

Show event details with payload.

bash
hookbase events get evt_abc123
hookbase events show evt_abc123 --json

Aliases: events show

events follow

Stream live events in real-time.

bash
hookbase events follow
hookbase events stream --source src_abc123

Aliases: events stream

Press Ctrl+C to stop streaming.

Deliveries

View and manage webhook deliveries.

deliveries list

List deliveries.

bash
hookbase deliveries list
hookbase deliveries ls --status failed
hookbase deliveries list --destination dst_xyz789 --json

Options:

OptionDescription
-l, --limit <number>Number of deliveries (default: 50)
-e, --event <eventId>Filter by event
-r, --route <routeId>Filter by route
-d, --destination <destId>Filter by destination
--status <status>Filter: success, failed, pending, retrying

deliveries get

Show delivery details including response.

bash
hookbase deliveries get del_abc123
hookbase deliveries show del_abc123 --json

Aliases: deliveries show

deliveries replay

Replay a failed delivery.

bash
hookbase deliveries replay del_abc123
hookbase deliveries replay del_abc123 --yes

deliveries bulk-replay

Replay multiple failed deliveries.

bash
# Interactive selection
hookbase deliveries bulk-replay

# Replay all failed (with confirmation)
hookbase deliveries bulk-replay --status failed --limit 100

# Skip confirmation
hookbase deliveries bulk-replay --yes

Options:

OptionDescription
--status <status>Filter by status (default: failed)
-l, --limit <number>Max deliveries to replay (default: 50)
-y, --yesSkip confirmation (replay all)

TUI Dashboard

Launch the interactive Text User Interface for managing webhooks.

dashboard

Launch the full interactive dashboard.

bash
hookbase dashboard
hookbase dash

Aliases: dash

Features:

  • Tab navigation: Use Tab or number keys 1-6 to switch views
  • Overview: Quick stats and recent activity
  • Sources: List, view details, create, delete sources
  • Destinations: List, view details, create, delete destinations
  • Tunnels: List, view details, create, connect, delete tunnels
  • Events: Browse recent events with status
  • Live: Real-time analytics with auto-refresh

Keyboard shortcuts:

KeyAction
1-6Quick switch to tab
TabNext tab
Shift+TabPrevious tab
↑/↓Navigate lists
EnterSelect/drill down
EscGo back
qQuit
rRefresh data
nCreate new (in list views)
dDelete (in detail views)

tunnel monitor

Launch focused tunnel monitoring with live request logging.

bash
hookbase tunnels monitor tun_abc123 3000

Features:

  • Real-time request/response logging
  • Status code highlighting
  • Response time tracking
  • Session statistics

Convenience Commands

logs

View recent webhook events (alias for events list).

bash
hookbase logs
hookbase logs --limit 100
hookbase logs --follow

Options:

OptionDescription
-l, --limit <number>Number of events (default: 50)
-f, --followFollow live events

forward

Quick forward webhooks to a URL.

bash
hookbase forward https://myapp.com/webhook

config

Show current configuration.

bash
hookbase config
hookbase config --json
hookbase config --path

Options:

OptionDescription
--jsonOutput as JSON
--pathShow config file path only

Environment Variables

Configure the CLI using environment variables:

VariableDescription
HOOKBASE_API_KEYAPI key for authentication
HOOKBASE_API_URLCustom API URL
HOOKBASE_ORG_IDDefault organization ID
HOOKBASE_DEBUGEnable debug logging
bash
# Example: CI/CD usage
export HOOKBASE_API_KEY="whr_live_abc123..."
export HOOKBASE_ORG_ID="org_xyz789"
hookbase sources list

Examples

Quick Start

bash
# Login
hookbase login

# Create a source for GitHub webhooks
hookbase sources create --name "GitHub" --provider github

# Create a destination
hookbase destinations create --name "My API" --url "https://api.myapp.com/webhooks"

# Create a route
hookbase routes create --name "GitHub to API" --source src_xxx --destination dst_xxx

# Start local development tunnel
hookbase tunnels start 3000

Interactive Dashboard

bash
# Launch TUI dashboard
hookbase dashboard

# Navigate with Tab or 1-6
# Create resources with 'n'
# Delete with 'd' (requires confirmation)
# Connect to tunnels directly from the UI

CI/CD Pipeline

bash
#!/bin/bash
set -e

export HOOKBASE_API_KEY="${HOOKBASE_API_KEY}"
export HOOKBASE_ORG_ID="${HOOKBASE_ORG_ID}"

# Create or update resources
hookbase sources create \
  --name "CI/CD" \
  --slug "cicd" \
  --provider custom \
  --yes 2>/dev/null || true

hookbase destinations update dst_build \
  --url "${BUILD_SERVER_URL}/webhook" \
  --yes

Debug Failed Webhooks

bash
# List failed deliveries
hookbase deliveries list --status failed

# View details
hookbase deliveries get del_abc123

# Replay after fixing the issue
hookbase deliveries replay del_abc123

# Bulk replay all failed
hookbase deliveries bulk-replay --yes

Live Monitoring

bash
# Stream events in terminal
hookbase events follow

# Or use the TUI Live view
hookbase dashboard
# Press '6' for Live analytics view

Released under the MIT License.