#compdef hummingbird

_arguments \
    {--allowuaf,-6}'[Allow unused address families]:options:(yes no default)' \
    {--alt-proxy,-A}'[Enable alternative proxy module]' \
    {--auth-retry,-Y}'[Retry connection on auth failure]' \
    {--auto-sess,-a}'[Request autologin session]' \
    {--cache-password,-H}'[Cache password]:options:(password)' \
    {--cipher,-C}'[Encrypt packets with specific cipher algorithm]:options:(AES-128-GCM AES-192-GCM AES-256-GCM CHACHA20-POLY1305)' \
    {--compress,-c}'[Compression mode]:options:(yes no asym)' \
    {--dc,-D}'[Dynamic challenge/response cookie]:options:(cookie)' \
    {--def-keydir,-k}'[Default key direction]:options:(bi 0 1)' \
    '--epki-ca[Simulate external PKI cert supporting intermediate/root certs]:options:(ca)' \
    '--epki-cert[Simulate external PKI cert]:options:(cert)' \
    '--epki-key[Simulate external PKI private key]:options:(key)' \
    {--eval,-e}'[Evaluate profile only]' \
    {--gremlin,-G}'[Gremlin info]:options:(send_delay_ms recv_delay_ms send_drop_prob recv_drop_prob)' \
    {--gui-version,-E}'[Set custom gui version]:options:(text)' \
    {--help,-h}'[Show this help page]' \
    {--ignore-dns-push,-i}'[Ignore DNS push request and use system DNS settings]' \
    '--list-data-ciphers[List supported data ciphers]' \
    '--mtu[WireGuard MTU]:options:(value)' \
    {--ncp-disable,-n}'[Disable negotiable crypto parameters]' \
    {--network-lock,-N}'[Network filter and lock mode]:options:(on iptables nftables pf off)' \
    '--allow-private-network[Allow private IPv4 and IPv6 network classes to pass to and from the network filter]:options:(on off)' \
    '--allow-ping[Allow ping to pass to and from the network filter]:options:(on off input output)' \
    '--allow-ipv6ndp[Allow IPv6 NDP to pass to and from the network filter]:options:(on off)' \
    {--no-cert,-x}'[Disable client certificate]' \
    {--password,-p}'[Password]:options:(password)' \
    {--peer-info,-I}'[Peer info key/value list in the form K1=V1,K2=V2,...]' \
    {--persist-tun,-j}'[Keep TUN interface open across reconnects]' \
    {--pk-password,-z}'[Private key password]:options:(password)' \
    {--port,-R}'[Port override]:options:(value)' \
    {--proto,-P}'[Protocol override]:options:(udp tcp)' \
    {--proxy-basic,-b}'[Allow HTTP basic auth]' \
    {--proxy-host,-y}'[HTTP proxy]:options:(hostname ip)' \
    {--proxy-password,-W}'[HTTP proxy password]:options:(password)' \
    {--proxy-port,-q}'[HTTP proxy port]:options:(value)' \
    {--proxy-username,-U}'[HTTP proxy username]:options:(username)' \
    '--recover-network[Recover network settings after a crash or unexpected exit]' \
    '--remove-wireguard-device[Remove any existing WireGuard tunnel device after a crash or unexpected exit]' \
    {--response,-r}'[Static response]:options:(response)' \
    {--server,-s}'[Server override]:options:(hostname ip)' \
    '--ssl-debug[SSL debug level]:options:(value)' \
    {--tcp-queue-limit,-l}'[Size of TCP packet queue (1-65535]:options:(value)' \
    {--tcprof-override,-X}'[Tls-cert-profile override]:options:(legacy preferred ...)' \
    {--timeout,-t}'[Timeout]:options:(seconds)' \
    {--tvm-override,-M}'[Tls-version-min override]:options:(disabled default tls_1_x)' \
    {--username,-u}'[Username]:options:(username)' \
    {--version,-v}'[Show version info]' \
    '*::files:_files'
