Skip to content
katana edited this page Aug 3, 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
--multi                    accept concurrent listen sessions with prompt control
-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/multi 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

Multi-Client Listen Mode

wcat listen --multi 0.0.0.0 4444
wcat listen --multi --max-clients 16 0.0.0.0 4444

In --multi mode, stdin targets the active peer. Lines beginning with : are handled by the local control prompt:

:help                         show multi command help
:sessions, :s                 list connected sessions
:use N, :u N                  make session N active
:next, :n                     switch to the next session
:prev, :p                     switch to the previous session
:info N, :i N                 show session state, peer, and traffic counters
:rename N NAME                assign a display name to session N
:attach [N], :at N            attach stdin directly to session N
:detach, :back, back          leave attached mode
Ctrl-]                        leave attached mode
:send N TEXT                  send one line to session N
:all TEXT, :a TEXT            broadcast one line to all sessions
:kill N, :k N                 close session N
:clear, :c                    clear the prompt screen
:quit, :q                     stop the multi listener

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