I also vibe-coded a “fun” holepunch program in python to test out the process a little bit, in case it’s of interest to anyone else:
It has an optional stun command which will hit a stuntman server I am running to get your external IP address and port as viewed by a remote entity. (In bitcoin core we can get this info from our peers, if we don’t already know it).
Swapping this info with a friend (or second machine) and using the peer command at ~ the same time on both instances will attempt a simultaneous connection.
stdin is sent to the other side, so you can send characters, files etc.
We had pretty decent results in testing, although we occasionally had to wait a few seconds for router firewalls to forget about their mappings (when we changed ip addresses but not ports), and were thwarted by one hotel NAT configuration.
As noted in the readme we also tried from within various types of containers, over starlink, through a VPN, and all of those chained together, and still saw success.