
Okay so i think this section is one of the most useful ones for a normal user:
Send and receive files
To receive files, run a drop box and share the printed tailcat address:
$ tailcat recv ~/inbox
# 🐈 Server listening with new address: tcXXXXXXXXX
The sender then runs:
$ tailcat cp report.pdf tcXXXXXXXXX:
tailcat cp runs the system scp with the connection routed through
tailcat, so you get its usual progress display, and -r for
directory trees. The drop box is write-only: senders can’t list the
directory, read anything back, or touch existing files.
To offer files instead, serve a directory read-only (the default) or read-write:
$ tailcat serve files # current directory, read-only
$ tailcat serve --files=/pub:rw files # a given directory, read-write
$ tailcat ls -l tcXXXXXXXXX
$ tailcat cp tcXXXXXXXXX:report.pdf .


And this can presumably hopefully finally fucking condemn hamachi to the grave, maybe?
Forward local ports to a tailcat server
To make ports served by a tailcat server available as ordinary local TCP ports (for browsers, database clients, or other tools that do not support SOCKS or stdio), run
forwardwith the server’s tailcat address:A local port of 0 asks the operating system for a free port; each listener prints its address once it’s listening.
To forward local ports to assets on the network reachable by an exit-node server, run the server in exit-node mode and specify each remote IP address and port in the mapping:
This forwards
127.0.0.1:3001to172.23.52.30:3001and127.0.0.1:17170to172.23.52.31:17170through the exit-node server.By default, listeners bind to
127.0.0.1and diagnostic logs are suppressed. Pass--verbosebefore the subcommand to enable verbose networking logs. Use--bind=0.0.0.0only when clients on other machines should be able to connect:Press Ctrl-C to stop forwarding.