/tech/synchronously send files of any size securely with magic wormhole

fun and convenient for small files but also an amazing solution for massive files

solution to a v specific problem

have you ever wanted to send something too big for email or your chosen chat client and had to find some megaupload style website to use? even if you find a site that isn’t too sketchy, you need to sign in, upload the file, get a link, and then send the link to the other person. if you want to send the file securely, you also need to encrypt it on your computer and then communicate keys or a password to the other person. what a mess.

magic wormhole is the solution to exactly this problem. although, it is also delightfully fun to shoot small files back and forth too. the name really is fitting; there is something deeply tantalizing about feeding something into the portal and poof!! - it pops out the other end.
 

getting magic wormhole is genuinely easy

if you want to snag the package for your os:
sudo apt install magic-wormhole is all you need if you are on a debian based system
sudo pacman -S magic-wormhole will do it on arch
choco install magic-wormhole works on windows (you will need to have chocolatey first)

if you hate the terminal and insist on a gui wrapper:
warp is a desktop gui for gnome
rymdport is a cross-platform desktop gui
wormhole william is an android gui
wormhole app is an ios gui

using wormhole in the terminal is simple

wormhole send [filepath] to send files (codephrase will be provided for you to pass to other person)
wormhole recieve [codephrase] to receive files
if you are the receiver, make sure your current directory is where you want the file(s) when you run the command

optionally:
wormhole send --code-length 4 [filepath] will make the codephrase four words long for more security (likely unneeded)
wormhole send --no-qr [filepath] will prevent the qr code from being displayed for a more clean look
the qr code can also be prevented using a system variable; check the documentation
you can also have the receiver go first; check the documentation


my personal bashrc config for wormhole (totally unnecessary)

wormhole() {
  if [ “$1” = “send” ]; then
    shift
    command wormhole send –code-length 4 –no-qr “$@”
  elif [ “$1” = “fast” ]; then
    shift
    command wormhole send –code-length 2 –no-qr “$@”
  else
    command wormhole “$@”
  fi
}


tags: explainer security tools