{
  "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": {
    "paths": [
      "[configHome]/hookdeck/config.toml"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false,
    "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
    },
    "subcommand": [
      {
        "path": [
          "listen"
        ],
        "label": "Forward webhooks to localhost",
        "description": "Start a session that forwards events to a local port or URL.",
        "source": [
          {
            "id": "readme",
            "kind": "help",
            "url": "https://github.com/hookdeck/hookdeck-cli/blob/main/README.md",
            "evidence": "hookdeck listen <port-or-URL> <source-alias?> <connection-query?> [flags]\n  --path string             Sets the path to which events are forwarded (e.g., /webhooks or /api/stripe)\n  --output string           Output mode: interactive (full UI), compact (simple logs), quiet (only fatal errors) (default \"interactive\")\n  --max-connections int     Maximum concurrent connections to local endpoint (default: 50, increase for high-volume testing)\n  --filter-body string      Filter events by request body using Hookdeck filter syntax (JSON)\n  --filter-headers string   Filter events by request headers using Hookdeck filter syntax (JSON)\n  --filter-query string     Filter events by query parameters using Hookdeck filter syntax (JSON)\n  --filter-path string      Filter events by request path using Hookdeck filter syntax (JSON)\n"
          }
        ],
        "field": [
          {
            "id": "target",
            "label": "Port or URL",
            "type": "string",
            "position": 0,
            "sources": [
              "readme"
            ]
          },
          {
            "id": "source",
            "label": "Source alias",
            "type": "string",
            "position": 1,
            "sources": [
              "readme"
            ]
          },
          {
            "id": "connection",
            "label": "Connection query",
            "type": "string",
            "position": 2,
            "sources": [
              "readme"
            ]
          },
          {
            "id": "path",
            "label": "Forward path",
            "type": "string",
            "option": [
              "--path"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "output",
            "label": "Output mode",
            "type": "enum",
            "option": [
              "--output"
            ],
            "choices": [
              {
                "value": "interactive",
                "label": "Interactive"
              },
              {
                "value": "compact",
                "label": "Compact"
              },
              {
                "value": "quiet",
                "label": "Quiet"
              }
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "max_connections",
            "label": "Max connections",
            "type": "integer",
            "option": [
              "--max-connections"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "filter_body",
            "label": "Body filter (JSON)",
            "type": "string",
            "option": [
              "--filter-body"
            ],
            "sources": [
              "readme"
            ]
          },
          {
            "id": "filter_headers",
            "label": "Headers filter (JSON)",
            "type": "string",
            "option": [
              "--filter-headers"
            ],
            "sources": [
              "readme"
            ]
          }
        ],
        "task": [
          {
            "id": "listen",
            "label": "Forward a source to localhost",
            "fields": [
              "target",
              "source",
              "path"
            ],
            "required": [
              "target"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "target",
              "source",
              "connection",
              "path",
              "output"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "max_connections",
              "filter_body",
              "filter_headers"
            ]
          }
        ]
      }
    ]
  }
}
