The hookstream CLI exposes 19 command groups and 50+ subcommands. Every command supports the global flags below, and every list/get command supports --json for machine-readable output.

Run hookstream <command> --help at any time to see options for a specific command.

Global flags

Available on every command. Global flags must come before the subcommand: hookstream --json sources list.

--api-key <key>stringpath

Use a specific API key for this command. Overrides HOOKSTREAM_API_KEY and the config file.

--base-url <url>stringpathdefault: https://hookstream.io

Override the API base URL — useful for staging or self-hosted instances.

--jsonflagpath

Output JSON instead of formatted text. Every command supports this. Designed to pipe into jq.

-h, --helpflagpath

Show help for any command or subcommand.

-V, --versionflagpath

Print the CLI version.

Commands

Manage CLI authentication. See CLI Authentication for the full device-flow walkthrough.

bash
# Browser login (opens hookstream.io/cli-auth, 15min TTL)hookstream login# Don't open a browser — print the URL and code instead (headless / SSH)hookstream login --no-browser# Skip the first-run wizardhookstream login --no-wizard# Interactive prompt for key (fallback)hookstream login -i# Save a key you already havehookstream login --api-key hs_live_abc123...# Show current user, org, and projecthookstream whoami# Clear stored credentialshookstream logout

Interactive onboarding. Asks for a name and provider template, creates a source, and prints the ingest URL with a ready-to-run curl command.

bash
hookstream init

Runs automatically after hookstream login if you have zero sources. Skip with hookstream login --no-wizard.

Manage inbound webhook sources — the endpoints that receive events.

bash
# Listhookstream sources listhookstream sources list --status active# Create (with optional provider template)hookstream sources create "My Webhook" --template stripehookstream sources create "GitHub Events" --slug github-events --template github# Get detailshookstream sources get <source-id># Delete (-f skips confirmation)hookstream sources delete <source-id> -f# List available templateshookstream sources templates

Manage where events are delivered. Supports 8 destination types including HTTP, AWS SQS/S3/EventBridge, GCP Pub/Sub, Kafka, RabbitMQ, and WebSocket broadcast.

bash
# Listhookstream destinations listhookstream destinations list --status active --type http# HTTP destinationhookstream destinations create "My API" \ --url https://api.example.com/webhooks --method POST# HTTP with auth + custom headershookstream destinations create "Slack" \ --url https://hooks.slack.com/... \ --header "Authorization:Bearer token" \ --auth-type bearer_token --timeout 10000# Non-HTTP destination (SQS, S3, Pub/Sub, etc.)hookstream destinations create "My Queue" --type aws_sqs \ --provider-config '{"queue_url":"https://sqs.us-east-1.amazonaws.com/...","region":"us-east-1"}'# Get detailshookstream destinations get <dest-id># Circuit breakerhookstream destinations circuit <dest-id>hookstream destinations circuit-reset <dest-id># Deletehookstream destinations delete <dest-id> -f

Route events from a source to a destination. Supports content-based filters (9 operators) and JSONata transforms.

bash
# Listhookstream connections list# Createhookstream connections create "My Pipeline" \ --source <source-id> --destination <dest-id># Create with content-based filterhookstream connections create "Payments Only" \ --source <src> --destination <dest> \ --filter '[{"field":"body.type","operator":"eq","value":"payment.completed"}]'# Get detailshookstream connections get <conn-id># Deletehookstream connections delete <conn-id> -f

Inspect received events with headers, payload, and full delivery history.

bash
# List recent events (supports cursor pagination)hookstream events listhookstream events list --source <source-id> --method POST --limit 50# Full event detail (headers + payload)hookstream events get <event-id># Retry all deliveries for an eventhookstream events retry <event-id># Replay to a specific URL (bypasses connections)hookstream events replay <event-id> --to http://localhost:3000/webhook

Each delivery attempt (initial + retries) is tracked individually.

bash
# Listhookstream deliveries listhookstream deliveries list --event <event-id> --status failed# Detailhookstream deliveries get <attempt-id># Manual retryhookstream deliveries retry <attempt-id># Dead-letter queuehookstream deliveries dlq

View aggregated metrics — hybrid query (real-time raw for the last 48h, pre-aggregated for longer windows).

bash
# Overview stats (events, success rate, p95 latency)hookstream metrics overview# Volume over timehookstream metrics volume --granularity hourhookstream metrics volume --granularity day --source <source-id>

Send test events and stream webhooks live to your terminal.

bash
# Send a test event to a sourcehookstream test <source-id>hookstream test <source-id> --payload '{"action":"test"}'hookstream test <source-id> --file payload.json -H "X-Custom:value"hookstream test <source-id> --method PUT --payload '{"update":true}'# Stream webhooks live (creates an ephemeral URL)hookstream listen# Forward to local dev serverhookstream listen --forward http://localhost:3000/webhook# Show full payloads (default truncates for readability)hookstream listen --full

hookstream listen connects over WebSocket to the EventStream Durable Object and prints each event as it arrives. Pair it with hookstream test in another terminal for end-to-end local dev.

Topics let one event fan out to multiple destinations via subscriptions. Each subscription supports its own filters and transforms.

bash
# Listhookstream topics list# Createhookstream topics create "Orders" --slug orders# Subscribe a destination to a topichookstream topics subscribe <topic-id> <destination-id># Publish an eventhookstream topics publish orders --data '{"type":"order.created","id":"ord_123"}'# Unsubscribehookstream topics unsubscribe <topic-id> <subscription-id># Deletehookstream topics delete <topic-id> -f

Replay events from a time window to any destination, with optional rate limiting.

bash
# Create a replay jobhookstream replay create --destination <dest-id> \ --from 2026-03-01T00:00:00Z --to 2026-03-07T00:00:00Z# Scoped + throttledhookstream replay create --destination <dest-id> \ --from <iso> --to <iso> \ --source <source-id> --rate-limit 100 --max-events 5000# Check job statushookstream replay status <job-id>

Jobs are stored in KV with auto-expiry. See Event replay for background.

Issues are auto-created when deliveries fail consistently. Use them to triage, mute, or bulk-retry.

bash
# Listhookstream issues listhookstream issues list --status allhookstream issues list --status resolved --limit 20# Detailhookstream issues get <issue-id># Update statushookstream issues update <issue-id> --status resolvedhookstream issues update <issue-id> --status muted# Retry all failed deliveries for this issuehookstream issues retry <issue-id>

Alert rules fire on delivery failures, high latency, volume spikes, and more. Every rule targets a notification channel.

bash
# Listhookstream alerts list# Createhookstream alerts create "High Failure Rate" \ --type failure_rate --channel <channel-id>hookstream alerts create "Latency Alert" \ --type high_latency --channel <channel-id> \ --threshold 5000 --source <source-id># Detailhookstream alerts get <alert-id># Deletehookstream alerts delete <alert-id> -f

Notification channels receive alert events. Supports webhook (Slack, PagerDuty, Discord, etc.) and email.

bash
# Listhookstream channels list# Createhookstream channels create "Slack" \ --type webhook --url https://hooks.slack.com/...hookstream channels create "PagerDuty" \ --type webhook --url https://events.pagerduty.com/...# Detailhookstream channels get <channel-id># Send a test notificationhookstream channels test <channel-id># Deletehookstream channels delete <channel-id> -f

Collections turn inbound webhooks into queryable tables via last-write-wins upsert.

bash
# Listhookstream collections list# Detailhookstream collections get <collection-id># Stats (record count, inferred schema)hookstream collections stats <collection-id># Exporthookstream collections export <collection-id>hookstream collections export <collection-id> --format csv --output data.csv

Applications group outbound endpoints for your customers (Standard Webhooks).

bash
# Listhookstream applications list# Createhookstream applications create "My App"hookstream applications create "Notifications" --uid my-app-001# Detailhookstream applications get <app-id># Deletehookstream applications delete <app-id> -f

View current plan and monthly usage counters.

bash
# Current month usagehookstream billing usage# Active subscriptionhookstream billing subscription
Authentication

Browser device flow, API keys, env vars, and config precedence.

Learn More
API reference

Every CLI command maps to an HTTP endpoint — drop down to the API when you need it.

Learn More