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