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.

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.

hookbase logout

whoami

Display current authentication status.

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).

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

Aliases: keys list, keys ls

api-keys create

Create a new API key.

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.

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.

hookbase sources list
hookbase sources ls --json

sources create

Create a new source interactively or with options.

# 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.

hookbase sources get src_abc123
hookbase sources show src_abc123 --json

Aliases: sources show

sources update

Update a source.

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.

hookbase sources delete src_abc123
hookbase sources rm src_abc123 --yes

Aliases: sources rm

sources rotate-secret

Rotate the signing secret for a source.

hookbase sources rotate-secret src_abc123

Destinations

Manage webhook destinations (delivery targets).

destinations list

List all destinations.

hookbase destinations list
hookbase dest ls --json

Aliases: dest list, dest ls

destinations create

Create a new destination.

# 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.

hookbase destinations get dst_xyz789
hookbase dest show dst_xyz789 --json

Aliases: dest get, dest show

destinations update

Update a destination.

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.

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.

hookbase destinations test dst_xyz789

Routes

Manage webhook routes (source → destination mappings).

routes list

List all routes.

hookbase routes list
hookbase routes ls --json

routes create

Create a new route.

# 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.

hookbase routes get rte_abc123
hookbase routes show rte_abc123 --json

Aliases: routes show

routes update

Update a route.

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.

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.

hookbase tunnels list
hookbase tunnel ls --json

Aliases: tunnel list, tunnel ls

tunnels create

Create a new tunnel without connecting.

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.

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.

hookbase tunnels connect tun_abc123 3000

tunnels get

Show tunnel details.

hookbase tunnels get tun_abc123
hookbase tunnel show tun_abc123 --json

Aliases: tunnels show, tunnel show

tunnels status

Get live tunnel status.

hookbase tunnels status tun_abc123

tunnels disconnect

Disconnect a tunnel (keep for later use).

hookbase tunnels disconnect tun_abc123

tunnels delete

Delete a tunnel permanently.

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.

hookbase tunnels monitor tun_abc123 3000

See TUI Dashboard for more details.

Cron Jobs

Manage scheduled webhook jobs.

cron list

List all cron jobs.

hookbase cron list
hookbase cron ls --json

cron create

Create a new cron job.

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.

hookbase cron get cron_abc123
hookbase cron show cron_abc123 --json

Aliases: cron show

cron update

Update a cron job.

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

cron delete

Delete a cron job.

hookbase cron delete cron_abc123
hookbase cron rm cron_abc123 --yes

Aliases: cron rm

cron enable

Enable a disabled cron job.

hookbase cron enable cron_abc123

cron disable

Disable a cron job without deleting it.

hookbase cron disable cron_abc123

cron status

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

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.

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.

hookbase cron builder

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

cron groups

Manage cron groups.

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.

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.

hookbase events get evt_abc123
hookbase events show evt_abc123 --json

Aliases: events show

events follow

Stream live events in real-time.

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.

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.

hookbase deliveries get del_abc123
hookbase deliveries show del_abc123 --json

Aliases: deliveries show

deliveries replay

Replay a failed delivery.

hookbase deliveries replay del_abc123
hookbase deliveries replay del_abc123 --yes

deliveries bulk-replay

Replay multiple failed deliveries.

# 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.

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.

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).

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.

hookbase forward https://myapp.com/webhook

config

Show current configuration.

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
# Example: CI/CD usage
export HOOKBASE_API_KEY="whr_live_abc123..."
export HOOKBASE_ORG_ID="org_xyz789"
hookbase sources list

Examples

Quick Start

# 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

# 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

#!/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

# 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

# Stream events in terminal
hookbase events follow
 
# Or use the TUI Live view
hookbase dashboard
# Press '6' for Live analytics view