Skip to content
Chokri Hammedi edited this page Aug 2, 2026 · 2 revisions

Usage

Wirecat uses subcommands for the main workflows:

wcat connect [options] HOST PORT
wcat listen  [options] HOST PORT
wcat send    [options] FILE HOST PORT
wcat recv    [options] FILE HOST PORT
wcat relay   [options] LEFT RIGHT
wcat broker  [options] HOST PORT
wcat proxy   [options] HOST PORT

Common Options

-u, --udp                  use UDP
-4                         force IPv4
-6                         force IPv6
-k, --keep-open            accept sequential clients
-v, --verbose              verbose logging
--json                     structured JSON logs
--hex                      hex dump traffic
--chat                     broker chat labels and control-byte escaping
-U, --unix                 use Unix domain sockets; HOST is socket path
--sctp                     use SCTP stream sockets
--vsock                    use Linux AF_VSOCK; HOST is CID or any for listen
--timeout SEC              connection and idle timeout
--tls                      enable TLS
--quic                     use QUIC single-stream transport
--tls-verify               verify TLS peer certificate (client default)
--tls-insecure             disable TLS peer verification
--ca-file FILE             TLS CA bundle for verification
--sni NAME                 TLS SNI and hostname verification name
--alpn NAME                TLS/QUIC ALPN value (default wcat/1)
--cert FILE                TLS server certificate
--key FILE                 TLS server private key
--client-cert FILE         TLS client certificate
--client-key FILE          TLS client private key
--require-client-cert      require verified TLS client certificate
--proxy URL                socks5://host:port or http://host:port
--exec PATH                bridge peer to process
--pty                      allocate PTY for --exec
--max-clients N            broker client limit, 1-256 (default 64)
--broker-buffer N          broker per-client output buffer bytes
--allow LIST               accept only IP/CIDR peers in comma list
--deny LIST                reject IP/CIDR peers in comma list

Basic TCP

wcat connect example.com 80
wcat listen 0.0.0.0 4444
wcat listen --keep-open 0.0.0.0 4444

UDP

wcat connect -u 192.0.2.10 53
wcat listen -u 0.0.0.0 5353

IPv4 And IPv6

wcat connect -4 example.com 80
wcat connect -6 example.com 80
wcat listen :: 4444

File Transfer

Receiver:

wcat recv ./archive.tar 0.0.0.0 9000

Sender:

wcat send ./archive.tar 192.0.2.10 9000

Process And PTY

Use --exec to bridge a peer to a process. Use --pty for interactive shells or programs that expect terminal behavior.

wcat listen --exec /usr/bin/tee 127.0.0.1 9001
wcat listen --pty --exec /bin/bash 0.0.0.0 4444

JSON And Hex Output

wcat connect --json example.com 80
wcat connect --hex example.com 80
wcat connect --json --hex example.com 80

JSON logs are intended for scripts and CI checks. Hex output is intended for manual traffic inspection.

Clone this wiki locally