id = "hookdeck" name = "Hookdeck CLI" homepage = "https://hookdeck.com/" description = "CLI for Hookdeck: forward webhooks to localhost, manage and query Event Gateway resources." executables = ["hookdeck"] [dotfiles] # https://github.com/hookdeck/hookdeck-cli#default-configuration-location — # the upstream CLI documents ~/.config/hookdeck/config.toml (and XDG_CONFIG_HOME # on Unix) as its global configuration file. Local .hookdeck/config.toml is # repository-scoped and is deliberately not a user dotfile path here. paths = ["[configHome]/hookdeck/config.toml"] exclude = [] secret = [] side_effect = false # The same upstream README documents api_key at the top level and inside named # profile tables; both forms are credentials and must not be synced in clear. [[dotfiles.secret_paths]] file = "[configHome]/hookdeck/config.toml" match = { key_path = ["api_key", "*.api_key"] } [commands] format = 1 label = "Hookdeck" description = "Forward webhooks to a local server with hookdeck listen. Login and Event Gateway resource management are outside this form." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false } [[commands.subcommand]] path = ["listen"] label = "Forward webhooks to localhost" description = "Start a session that forwards events to a local port or URL." [[commands.subcommand.source]] id = "readme" kind = "help" url = "https://github.com/hookdeck/hookdeck-cli/blob/main/README.md" evidence = """ hookdeck listen [flags] --path string Sets the path to which events are forwarded (e.g., /webhooks or /api/stripe) --output string Output mode: interactive (full UI), compact (simple logs), quiet (only fatal errors) (default "interactive") --max-connections int Maximum concurrent connections to local endpoint (default: 50, increase for high-volume testing) --filter-body string Filter events by request body using Hookdeck filter syntax (JSON) --filter-headers string Filter events by request headers using Hookdeck filter syntax (JSON) --filter-query string Filter events by query parameters using Hookdeck filter syntax (JSON) --filter-path string Filter events by request path using Hookdeck filter syntax (JSON) """ [[commands.subcommand.field]] id = "target" label = "Port or URL" type = "string" position = 0 sources = ["readme"] [[commands.subcommand.field]] id = "source" label = "Source alias" type = "string" position = 1 sources = ["readme"] [[commands.subcommand.field]] id = "connection" label = "Connection query" type = "string" position = 2 sources = ["readme"] [[commands.subcommand.field]] id = "path" label = "Forward path" type = "string" option = ["--path"] sources = ["readme"] [[commands.subcommand.field]] id = "output" label = "Output mode" type = "enum" option = ["--output"] choices = [{ value = "interactive", label = "Interactive" }, { value = "compact", label = "Compact" }, { value = "quiet", label = "Quiet" }] sources = ["readme"] [[commands.subcommand.field]] id = "max_connections" label = "Max connections" type = "integer" option = ["--max-connections"] sources = ["readme"] [[commands.subcommand.field]] id = "filter_body" label = "Body filter (JSON)" type = "string" option = ["--filter-body"] sources = ["readme"] [[commands.subcommand.field]] id = "filter_headers" label = "Headers filter (JSON)" type = "string" option = ["--filter-headers"] sources = ["readme"] [[commands.subcommand.task]] id = "listen" label = "Forward a source to localhost" fields = ["target", "source", "path"] required = ["target"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["target", "source", "connection", "path", "output"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["max_connections", "filter_body", "filter_headers"]