Commands
Complete reference for every hookstream CLI command — authentication, resources, testing, observability, and more.
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.
Use a specific API key for this command. Overrides HOOKSTREAM_API_KEY and the config file.
Override the API base URL — useful for staging or self-hosted instances.
Output JSON instead of formatted text. Every command supports this. Designed to pipe into jq.
Show help for any command or subcommand.
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 wizard hookstream login --no-wizard # Interactive prompt for key (fallback) hookstream login -i # Save a key you already have hookstream login --api-key hs_live_abc123... # Show current user, org, and project hookstream whoami # Clear stored credentials hookstream 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.
bashhookstream 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# List hookstream sources list hookstream sources list --status active # Create (with optional provider template) hookstream sources create "My Webhook" --template stripe hookstream sources create "GitHub Events" --slug github-events --template github # Get details hookstream sources get <source-id> # Delete (-f skips confirmation) hookstream sources delete <source-id> -f # List available templates hookstream 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# List hookstream destinations list hookstream destinations list --status active --type http # HTTP destination hookstream destinations create "My API" \ --url https://api.example.com/webhooks --method POST # HTTP with auth + custom headers hookstream 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 details hookstream destinations get <dest-id> # Circuit breaker hookstream destinations circuit <dest-id> hookstream destinations circuit-reset <dest-id> # Delete hookstream destinations delete <dest-id> -f
Route events from a source to a destination. Supports content-based filters (9 operators) and JSONata transforms.
bash# List hookstream connections list # Create hookstream connections create "My Pipeline" \ --source <source-id> --destination <dest-id> # Create with content-based filter hookstream connections create "Payments Only" \ --source <src> --destination <dest> \ --filter '[{"field":"body.type","operator":"eq","value":"payment.completed"}]' # Get details hookstream connections get <conn-id> # Delete hookstream connections delete <conn-id> -f
Inspect received events with headers, payload, and full delivery history.
bash# List recent events (supports cursor pagination) hookstream events list hookstream events list --source <source-id> --method POST --limit 50 # Full event detail (headers + payload) hookstream events get <event-id> # Retry all deliveries for an event hookstream 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# List hookstream deliveries list hookstream deliveries list --event <event-id> --status failed # Detail hookstream deliveries get <attempt-id> # Manual retry hookstream deliveries retry <attempt-id> # Dead-letter queue hookstream 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 time hookstream metrics volume --granularity hour hookstream metrics volume --granularity day --source <source-id>
Send test events and stream webhooks live to your terminal.
bash# Send a test event to a source hookstream 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 server hookstream 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# List hookstream topics list # Create hookstream topics create "Orders" --slug orders # Subscribe a destination to a topic hookstream topics subscribe <topic-id> <destination-id> # Publish an event hookstream topics publish orders --data '{"type":"order.created","id":"ord_123"}' # Unsubscribe hookstream topics unsubscribe <topic-id> <subscription-id> # Delete hookstream topics delete <topic-id> -f
Replay events from a time window to any destination, with optional rate limiting.
bash# Create a replay job hookstream replay create --destination <dest-id> \ --from 2026-03-01T00:00:00Z --to 2026-03-07T00:00:00Z # Scoped + throttled hookstream replay create --destination <dest-id> \ --from <iso> --to <iso> \ --source <source-id> --rate-limit 100 --max-events 5000 # Check job status hookstream 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# List hookstream issues list hookstream issues list --status all hookstream issues list --status resolved --limit 20 # Detail hookstream issues get <issue-id> # Update status hookstream issues update <issue-id> --status resolved hookstream issues update <issue-id> --status muted # Retry all failed deliveries for this issue hookstream issues retry <issue-id>
Alert rules fire on delivery failures, high latency, volume spikes, and more. Every rule targets a notification channel.
bash# List hookstream alerts list # Create hookstream 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> # Detail hookstream alerts get <alert-id> # Delete hookstream alerts delete <alert-id> -f
Notification channels receive alert events. Supports webhook (Slack, PagerDuty, Discord, etc.) and email.
bash# List hookstream channels list # Create hookstream channels create "Slack" \ --type webhook --url https://hooks.slack.com/... hookstream channels create "PagerDuty" \ --type webhook --url https://events.pagerduty.com/... # Detail hookstream channels get <channel-id> # Send a test notification hookstream channels test <channel-id> # Delete hookstream channels delete <channel-id> -f
Collections turn inbound webhooks into queryable tables via last-write-wins upsert.
bash# List hookstream collections list # Detail hookstream collections get <collection-id> # Stats (record count, inferred schema) hookstream collections stats <collection-id> # Export hookstream collections export <collection-id> hookstream collections export <collection-id> --format csv --output data.csv
Applications group outbound endpoints for your customers (Standard Webhooks).
bash# List hookstream applications list # Create hookstream applications create "My App" hookstream applications create "Notifications" --uid my-app-001 # Detail hookstream applications get <app-id> # Delete hookstream applications delete <app-id> -f
View current plan and monthly usage counters.
bash# Current month usage hookstream billing usage # Active subscription hookstream billing subscription