{
  "id": "syft",
  "name": "Syft",
  "homepage": "https://github.com/anchore/syft",
  "description": "CLI tool and library for generating a Software Bill of Materials from container images and filesystems.",
  "executables": [
    "syft"
  ],
  "dotfiles": {
    "paths": [
      "~/.syft.yaml",
      "[configHome]/syft/config.yaml"
    ],
    "secret": [],
    "side_effect": false
  },
  "commands": {
    "format": 1,
    "label": "Generate an SBOM",
    "description": "Scan a container image, directory or archive and print or write an SBOM. Only the output format and source-type options are covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": false,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "s",
        "kind": "help",
        "url": "https://github.com/anchore/syft",
        "revision": "2026-10-27",
        "evidence": "syft alpine:latest\nsyft ./my-project\nsyft <image> -o cyclonedx-json\nsyft <image> -o spdx-json=./spdx.json -o cyclonedx-json=./cdx.json\nsyft --from containers-storage localhost/myimage:latest\n"
      }
    ],
    "field": [
      {
        "id": "source",
        "label": "Scan target",
        "description": "Image reference, directory or archive, e.g. alpine:latest or ./my-project.",
        "type": "string",
        "position": 0,
        "sources": [
          "s"
        ]
      },
      {
        "id": "output",
        "label": "Output format",
        "description": "Format, optionally with =file, e.g. spdx-json=./spdx.json.",
        "type": "string",
        "option": [
          "-o"
        ],
        "multiple": true,
        "suggestions": [
          {
            "value": "cyclonedx-json",
            "label": "CycloneDX JSON"
          },
          {
            "value": "spdx-json",
            "label": "SPDX JSON"
          }
        ],
        "sources": [
          "s"
        ]
      },
      {
        "id": "from",
        "label": "Source type",
        "type": "string",
        "option": [
          "--from"
        ],
        "suggestions": [
          {
            "value": "containers-storage",
            "label": "containers-storage"
          }
        ],
        "sources": [
          "s"
        ]
      }
    ],
    "task": [
      {
        "id": "scan",
        "label": "Scan a target",
        "fields": [
          "source",
          "output"
        ],
        "required": [
          "source"
        ]
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "source",
          "output",
          "from"
        ]
      }
    ]
  }
}
