_zshot() {
    local i cur prev opts cmd
    COMPREPLY=()
    if [[ "${BASH_VERSINFO[0]}" -ge 4 ]]; then
        cur="$2"
    else
        cur="${COMP_WORDS[COMP_CWORD]}"
    fi
    prev="$3"
    cmd=""
    opts=""

    for i in "${COMP_WORDS[@]:0:COMP_CWORD}"
    do
        case "${cmd},${i}" in
            ",$1")
                cmd="zshot"
                ;;
            *)
                ;;
        esac
    done

    case "${cmd}" in
        zshot)
            opts="-f -t -c -l -q -x -y -H -s -h -V --file-name --output-type --input-mimetype --config --license-key --license-json --status-file --wait-for --timeout --no-timeout --no-fail --log-level --log-chrome-to-stderr --quiet --no-preview --software-rendering --open-source-licenses --diagnostics --install-skill --completions --llm-info --llm-info-spec --license-info --refresh-license --trial --eula --browser-width --browser-height --device --device-list --device-list-json --formats --formats-json --cli-schema --flag-docs-json --request-schema --llm-debug --llm-usage --device-scale-factor --user-agent --accept-language --platform --emulate-media --emulate-dark-mode --emulate-mobile-device --emulate-touch-points --emulate-geolocation --emulate-timezone --emulate-vision-deficiency --emulate-disable-bluetooth --emulate-disable-usb --emulate-disable-serial --emulate-memory --emulate-hardware-concurrency --emulate-gpu-vendor --emulate-gpu-renderer --skip-robot-instructions --remove-modals --full-page --header --web-bot-auth --cookie --storage --storage-limit --storage-chrome-profile --storage-firefox-profile --storage-safari-profile --storage-chrome-profile-key --javascript --javascript-file --proxy-server --proxy-auth --image-width --image-height --image-selector --image-duration --image-framerate --bmp-pixel-format --video-width --video-height --video-selector --video-framerate --video-duration --pdf-landscape --pdf-width --pdf-height --pdf-scale --pdf-prefer-css-page-size --pdf-generate-tagged-pdf --pdf-generate-document-outline --markdown-no-title --markdown-format --markdown-selector --markdown-embed-content --llm-format-prompt --llm-format-expects --llm-format-model --llm-no-screenshot-labels --navigate --navigator-type --navigator-escalation-max --navigator-credential --navigator-credential-helper --navigator-credential-secret --navigator-credential-helper-timeout --navigator-credential-helper-env --navigator-credential-env --navigator-credential-origin --navigator-file --navigator-data --navigator-data-json --navigator-file-timeout --navigator-file-size-limit --navigator-goal --navigator-max-steps --navigator-renders-when-impossible --navigator-stall-escalation --navigator-step-timeout --navigator-initial-scope --navigator-allow-url --navigator-deny-url --navigator-captures-video --navigator-captures-playwright --navigator-captures-puppeteer --navigator-session-archived --navigator-video-width --navigator-video-height --navigator-video-shows-captions --navigator-video-captions-position --navigator-video-shows-pointer --har --har-capture-bodies --archive-body-size-limit --network-log --warc --warc-no-gzip --archive-cdx --sqlite --crawl-url-is-sitemap --crawl-sitemap-max-depth --crawl-allow-url --crawl-deny-url --crawl-delay --crawl-concurrency --crawl-page-timeout --crawl-links --crawl-media-sources --crawl-link-depth --crawl-link-selector --crawl-max-links --archive-spill-max-bytes --axtree --axtree-only-visible --trace --trace-no-gzip --trace-no-screenshots --trace-captures-navigation --pprof-cpu --pprof-memory --pprof-no-gzip --pprof-captures-navigation --pprof-cpu-interval-us --pprof-memory-interval-bytes --no-sandbox --container --chromium-arg --chromium-preference --insecure-web-mode --allow-unsafe-ssl --block-ip-range --block-private-ips --allow-ip-range --ip-blocklist --server-update-blocklist-interval --adblock-rules --server-update-adblock-interval --server --server-bind-address --server-bind-port --server-basic-auth --server-token-auth --server-delegated-auth --server-delegated-auth-timeout --server-prometheus-auth --server-prometheus-bind-address --server-prometheus-bind-port --server-response-header --server-enable-cors --server-signed-url --server-signed-url-max-age --server-additional-asset-expiration --server-cache --server-cache-ttl --server-cache-size-limit --server-max-concurrency --server-queue-requests --server-enable-schema --server-enable-prometheus --server-enable-mcp --mcp-local-server --cdp --cdp-webdriver --help --agent-help --version"
            if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then
                COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
                return 0
            fi
            case "${prev}" in
                --file-name)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -f)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --output-type)
                    COMPREPLY=($(compgen -W "pdf png apng jpg webp jpegxl tiff bmp webm mkv avif gif mp4 mhtml html markdown txt har warc wacz sqlite axtree axtree_json llm_text llm_json goal trace pprof_cpu pprof_memory download" -- "${cur}"))
                    return 0
                    ;;
                -t)
                    COMPREPLY=($(compgen -W "pdf png apng jpg webp jpegxl tiff bmp webm mkv avif gif mp4 mhtml html markdown txt har warc wacz sqlite axtree axtree_json llm_text llm_json goal trace pprof_cpu pprof_memory download" -- "${cur}"))
                    return 0
                    ;;
                --input-mimetype)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --config)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -c)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --license-key)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --license-json)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --status-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --wait-for)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --log-level)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -l)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --install-skill)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --completions)
                    COMPREPLY=($(compgen -W "bash elvish fish powershell zsh" -- "${cur}"))
                    return 0
                    ;;
                --browser-width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -x)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --browser-height)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -y)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --device)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --llm-debug)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --llm-usage)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --device-scale-factor)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --user-agent)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --accept-language)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --platform)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-media)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-touch-points)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-geolocation)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-timezone)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-vision-deficiency)
                    COMPREPLY=($(compgen -W "blurredVision reducedContrast achromatopsia deuteranopia protanopia tritanopia" -- "${cur}"))
                    return 0
                    ;;
                --emulate-memory)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-hardware-concurrency)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-gpu-vendor)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --emulate-gpu-renderer)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --header)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -H)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --web-bot-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --cookie)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage-limit)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage-chrome-profile)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage-firefox-profile)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage-safari-profile)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --storage-chrome-profile-key)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --javascript)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --javascript-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --proxy-server)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --proxy-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --image-width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --image-height)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --image-selector)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --image-duration)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --image-framerate)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --bmp-pixel-format)
                    COMPREPLY=($(compgen -W "bgr24 rgb565le gray8" -- "${cur}"))
                    return 0
                    ;;
                --video-width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --video-height)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --video-selector)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --video-framerate)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --video-duration)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pdf-width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pdf-height)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pdf-scale)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --markdown-format)
                    COMPREPLY=($(compgen -W "common gfm" -- "${cur}"))
                    return 0
                    ;;
                --markdown-selector)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --llm-format-prompt)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --llm-format-expects)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --llm-format-model)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigate)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-type)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-escalation-max)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-helper)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-secret)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-helper-timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-helper-env)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-env)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-credential-origin)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-file)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-data)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-data-json)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-file-timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-file-size-limit)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-goal)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-max-steps)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-stall-escalation)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-step-timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-initial-scope)
                    COMPREPLY=($(compgen -W "origin domain path" -- "${cur}"))
                    return 0
                    ;;
                --navigator-allow-url)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-deny-url)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-captures-video)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-captures-playwright)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-captures-puppeteer)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-video-width)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-video-height)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --navigator-video-captions-position)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --har)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --archive-body-size-limit)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --network-log)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --warc)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --archive-cdx)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --sqlite)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-url-is-sitemap)
                    COMPREPLY=($(compgen -W "auto xml text" -- "${cur}"))
                    return 0
                    ;;
                --crawl-sitemap-max-depth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-allow-url)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-deny-url)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-delay)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-concurrency)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-page-timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-link-depth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-link-selector)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --crawl-max-links)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --archive-spill-max-bytes)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --axtree)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --trace)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pprof-cpu)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pprof-memory)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pprof-cpu-interval-us)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --pprof-memory-interval-bytes)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --chromium-arg)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --chromium-preference)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --block-ip-range)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --allow-ip-range)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --ip-blocklist)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-update-blocklist-interval)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --adblock-rules)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-update-adblock-interval)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-bind-address)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-bind-port)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-basic-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-token-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-delegated-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-delegated-auth-timeout)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-prometheus-auth)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-prometheus-bind-address)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-prometheus-bind-port)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-response-header)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-enable-cors)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-signed-url)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-signed-url-max-age)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-additional-asset-expiration)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-cache)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-cache-ttl)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-cache-size-limit)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-max-concurrency)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --server-queue-requests)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --cdp)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                --help)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                -h)
                    COMPREPLY=($(compgen -f "${cur}"))
                    return 0
                    ;;
                *)
                    COMPREPLY=()
                    ;;
            esac
            COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
            return 0
            ;;
    esac
}

if [[ "${BASH_VERSINFO[0]}" -eq 4 && "${BASH_VERSINFO[1]}" -ge 4 || "${BASH_VERSINFO[0]}" -gt 4 ]]; then
    complete -F _zshot -o nosort -o bashdefault -o default zshot
else
    complete -F _zshot -o bashdefault -o default zshot
fi
