Have you ever needed to quickly send a file, directory, or even some text from one computer to another? Maybe you don’t have SSH set up, or any way of using
scp. If you are talking to a friend and want to quickly send them a file there are many ways of doing it but I think Magic Wormhole is one of the quickest (after setup). Once installed you can issue a send command and be presented with an “short and human-pronounceable” code which you use with the receive command on the other computer.
The code can be found on Github and the documentation on Read the Docs.
Magic Wormhole may be available in your package manager or you can install from
pip. These are the steps I took to setup.
First I created a python virtual environment then installed the
python3 -m virtualenv /path/to/wormhole_venv source /path/to/wormhole_venv/bin/activate (wormhole_venv) pip install magic-wormhole (wormhole_venv) deactivate
To make my life a little easier I created a link to the
wormhole command in a directory in my $PATH
ln -s /path/to/wormhole_venv/bin/wormhole ~/bin/wormhole
Now I can send a file to a friend
wormhole send funny.jpg Sending 254.7 kB file named 'funny.jpg' Wormhole code is: 2-hemisphere-ruffled On the other computer, please run: wormhole receive 2-hemisphere-ruffled
Wormhole waits for the transfer to take place. On my friend’s computer they can receive the file
wormhole receive 2-hemisphere-ruffled Receiving file (254.7 kB) into: funny.jpg ok? (Y/n): Y Receiving (->tcp:127.0.0.1:33985).. 100%|████████████████████████████████████████| 255k/255k [00:00<00:00, 1.77MB/s] Received file written to funny.jpg
My send is now complete
Sending (<-127.0.0.1:41324).. 100%|████████████████████████████████████████| 255k/255k [00:00<00:00, 54.1MB/s] File sent.. waiting for confirmation Confirmation received. Transfer complete.
This is a one time only code and the wormhole is only open for the duration of the transfer.
You can also send arbitrary text
wormhole send --text "hello friend"
The great thing about this tool is that you don’t need any prior credentials or connection to the system like you would with SSH. It is also possible to run your own Mailbox server if you so desire.