CLI Commands
Complete reference for all Hookbase CLI commands.
Global Options
These options are available for all commands:
| Option | Description |
|---|---|
--json | Output as JSON (for scripting) |
-y, --yes | Skip confirmation prompts |
--help | Show help |
--version | Show version |
Authentication
login
Authenticate with your Hookbase account.
hookbase loginOpens a browser for OAuth authentication. After successful login, credentials are stored locally.
Options:
| Option | Description |
|---|---|
--api-key <key> | Use API key instead of browser auth |
logout
Log out and clear stored credentials.
hookbase logoutwhoami
Display current authentication status.
hookbase whoami
hookbase whoami --jsonAliases: status
Output:
Hookbase CLI Status
User: [email protected]
Display Name: John Doe
Organization: my-companyAPI 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 --jsonAliases: 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 90Options:
| Option | Description |
|---|---|
-n, --name <name> | API key name |
-s, --scopes <scopes> | Comma-separated scopes (read, write) |
-e, --expires <days> | Expiration in days |
-y, --yes | Skip 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 --yesAliases: api-keys delete
Sources
Manage webhook sources (ingest endpoints).
sources list
List all sources.
hookbase sources list
hookbase sources ls --jsonsources create
Create a new source interactively or with options.
# Interactive
hookbase sources create
# With options
hookbase sources create --name "GitHub Webhooks" --slug "github" --provider githubOptions:
| Option | Description |
|---|---|
-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, --yes | Skip confirmation |
sources get
Show source details.
hookbase sources get src_abc123
hookbase sources show src_abc123 --jsonAliases: sources show
sources update
Update a source.
hookbase sources update src_abc123 --name "New Name"
hookbase sources update src_abc123 --inactiveOptions:
| Option | Description |
|---|---|
-n, --name <name> | New name |
-p, --provider <provider> | New provider |
-d, --description <desc> | New description |
--active | Set source as active |
--inactive | Set source as inactive |
sources delete
Delete a source.
hookbase sources delete src_abc123
hookbase sources rm src_abc123 --yesAliases: sources rm
sources rotate-secret
Rotate the signing secret for a source.
hookbase sources rotate-secret src_abc123Destinations
Manage webhook destinations (delivery targets).
destinations list
List all destinations.
hookbase destinations list
hookbase dest ls --jsonAliases: 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 POSTOptions:
| Option | Description |
|---|---|
-n, --name <name> | Destination name |
-u, --url <url> | Destination URL |
-m, --method <method> | HTTP method: POST, PUT, PATCH |
-y, --yes | Skip confirmation |
destinations get
Show destination details.
hookbase destinations get dst_xyz789
hookbase dest show dst_xyz789 --jsonAliases: 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 --inactiveOptions:
| Option | Description |
|---|---|
-n, --name <name> | New name |
-u, --url <url> | New URL |
-m, --method <method> | New HTTP method |
--active | Set destination as active |
--inactive | Set destination as inactive |
destinations delete
Delete a destination.
hookbase destinations delete dst_xyz789
hookbase dest rm dst_xyz789 --yesAliases: dest delete, dest rm
destinations test
Send a test webhook to a destination.
hookbase destinations test dst_xyz789Routes
Manage webhook routes (source → destination mappings).
routes list
List all routes.
hookbase routes list
hookbase routes ls --jsonroutes create
Create a new route.
# Interactive
hookbase routes create
# With options
hookbase routes create \
--name "GitHub to Slack" \
--source src_abc123 \
--destination dst_xyz789Options:
| Option | Description |
|---|---|
-n, --name <name> | Route name |
-s, --source <sourceId> | Source ID |
-d, --destination <destId> | Destination ID |
-p, --priority <priority> | Priority (higher = runs first) |
-y, --yes | Skip confirmation |
routes get
Show route details.
hookbase routes get rte_abc123
hookbase routes show rte_abc123 --jsonAliases: routes show
routes update
Update a route.
hookbase routes update rte_abc123 --name "New Route Name"
hookbase routes update rte_abc123 --inactiveOptions:
| Option | Description |
|---|---|
-n, --name <name> | New name |
-s, --source <sourceId> | New source ID |
-d, --destination <destId> | New destination ID |
-p, --priority <priority> | New priority |
--active | Set route as active |
--inactive | Set route as inactive |
routes delete
Delete a route.
hookbase routes delete rte_abc123
hookbase routes rm rte_abc123 --yesAliases: routes rm
Tunnels
Manage localhost tunnels for local development.
tunnels list
List all tunnels.
hookbase tunnels list
hookbase tunnel ls --jsonAliases: tunnel list, tunnel ls
tunnels create
Create a new tunnel without connecting.
hookbase tunnels create
hookbase tunnels create --name "Dev Tunnel" --subdomain myappOptions:
| Option | Description |
|---|---|
-n, --name <name> | Tunnel name |
-s, --subdomain <subdomain> | Custom subdomain (Pro plan) |
-y, --yes | Skip 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:
| Option | Description |
|---|---|
-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 3000tunnels get
Show tunnel details.
hookbase tunnels get tun_abc123
hookbase tunnel show tun_abc123 --jsonAliases: tunnels show, tunnel show
tunnels status
Get live tunnel status.
hookbase tunnels status tun_abc123tunnels disconnect
Disconnect a tunnel (keep for later use).
hookbase tunnels disconnect tun_abc123tunnels delete
Delete a tunnel permanently.
hookbase tunnels delete tun_abc123
hookbase tunnel rm tun_abc123 --yesAliases: tunnels rm, tunnel rm
tunnels monitor
Launch the tunnel monitor TUI for real-time request logging.
hookbase tunnels monitor tun_abc123 3000See TUI Dashboard for more details.
Cron Jobs
Manage scheduled webhook jobs.
cron list
List all cron jobs.
hookbase cron list
hookbase cron ls --jsoncron 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:
| Option | Description |
|---|---|
-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, --yes | Skip confirmation |
cron get
Show cron job details.
hookbase cron get cron_abc123
hookbase cron show cron_abc123 --jsonAliases: cron show
cron update
Update a cron job.
hookbase cron update cron_abc123 --schedule "0 * * * *"
hookbase cron update cron_abc123 --inactivecron delete
Delete a cron job.
hookbase cron delete cron_abc123
hookbase cron rm cron_abc123 --yesAliases: cron rm
cron enable
Enable a disabled cron job.
hookbase cron enable cron_abc123cron disable
Disable a cron job without deleting it.
hookbase cron disable cron_abc123cron status
Show the status and next run time for a cron job.
hookbase cron status cron_abc123Output:
Cron Job: Health Check
Schedule: */5 * * * *
Status: Active
Last Run: 2024-01-15 10:30:00 (success)
Next Run: 2024-01-15 10:35:00cron follow
Stream cron job executions in real-time.
hookbase cron follow
hookbase cron follow --job cron_abc123
hookbase cron watchAliases: cron watch
Options:
| Option | Description |
|---|---|
--job <cronId> | Filter by cron job ID |
cron builder
Interactive cron expression builder.
hookbase cron builderLaunches 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_abc123Events
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 --jsonOptions:
| Option | Description |
|---|---|
-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 --jsonAliases: events show
events follow
Stream live events in real-time.
hookbase events follow
hookbase events stream --source src_abc123Aliases: 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 --jsonOptions:
| Option | Description |
|---|---|
-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 --jsonAliases: deliveries show
deliveries replay
Replay a failed delivery.
hookbase deliveries replay del_abc123
hookbase deliveries replay del_abc123 --yesdeliveries 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 --yesOptions:
| Option | Description |
|---|---|
--status <status> | Filter by status (default: failed) |
-l, --limit <number> | Max deliveries to replay (default: 50) |
-y, --yes | Skip confirmation (replay all) |
TUI Dashboard
Launch the interactive Text User Interface for managing webhooks.
dashboard
Launch the full interactive dashboard.
hookbase dashboard
hookbase dashAliases: dash
Features:
- Tab navigation: Use
Tabor number keys1-6to 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:
| Key | Action |
|---|---|
1-6 | Quick switch to tab |
Tab | Next tab |
Shift+Tab | Previous tab |
↑/↓ | Navigate lists |
Enter | Select/drill down |
Esc | Go back |
q | Quit |
r | Refresh data |
n | Create new (in list views) |
d | Delete (in detail views) |
tunnel monitor
Launch focused tunnel monitoring with live request logging.
hookbase tunnels monitor tun_abc123 3000Features:
- 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 --followOptions:
| Option | Description |
|---|---|
-l, --limit <number> | Number of events (default: 50) |
-f, --follow | Follow live events |
forward
Quick forward webhooks to a URL.
hookbase forward https://myapp.com/webhookconfig
Show current configuration.
hookbase config
hookbase config --json
hookbase config --pathOptions:
| Option | Description |
|---|---|
--json | Output as JSON |
--path | Show config file path only |
Environment Variables
Configure the CLI using environment variables:
| Variable | Description |
|---|---|
HOOKBASE_API_KEY | API key for authentication |
HOOKBASE_API_URL | Custom API URL |
HOOKBASE_ORG_ID | Default organization ID |
HOOKBASE_DEBUG | Enable debug logging |
# Example: CI/CD usage
export HOOKBASE_API_KEY="whr_live_abc123..."
export HOOKBASE_ORG_ID="org_xyz789"
hookbase sources listExamples
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 3000Interactive 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 UICI/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" \
--yesDebug 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 --yesLive Monitoring
# Stream events in terminal
hookbase events follow
# Or use the TUI Live view
hookbase dashboard
# Press '6' for Live analytics view