Skip to main content
Use Wush when you need direct peer-to-peer transfer or temporary shell access without standing up a full VPN.

What is Wush?

Wush is a command line tool that lets you transfer files and open shells over a peer-to-peer WireGuard connection. It’s similar to magic-wormhole, but:
  1. No need to set up or trust a relay server for authentication.
  2. Powered by WireGuard for secure, fast, and reliable connections.
  3. Automatic peer-to-peer connections over UDP.
  4. Endless possibilities with rsync, ssh, and more.

Commands

Usage: wush <subcommand> Start the wush server:
wush serve
Open a shell to the wush host:
wush ssh
Transfer files to the wush host using rsync:
wush rsync local-file.txt :/path/to/remote/file
Copy a single file to the host:
wush cp local-file.txt
Subcommands:
CommandMeaning
cpTransfer files.
port-forwardForward ports.
rsyncTransfer files over rsync.
serveRun the wush server.
sshOpen a shell.
versionShow wush version.
Options:
wush --version
Print the version and exit.

Install

Download from GitHub Releases. We tested the program using machines running Windows and Linux (with a GUI). For Windows, extract files to a folder and drive of your choice. Transferred files will be sent to/from there. On Linux, install it using your preferred method. Files (for us) were saved/sent to/from the home directory.

How to use

Now let’s transfer a PNG file from one machine to another. In this example, Windows acts as the host and Linux is the client.
Treat the auth key as a secret. Share it only with the intended recipient and rotate by starting a new session.
1

Start the host session

Open CMD from the folder where Wush is located, then run:
./wush serve
wushserveCopy the Auth key.
2

Send a file from the client

On the client machine, run:
wush cp 2.png
wushcp2.png is the file we want to send from Linux to Windows.
3

Paste the auth key and confirm transfer

Paste the key from the host machine into the client console.
How it looks: wushgif

SSH

You can also use Wush for remote access to a machine’s console. The connection is established with an auth key. For host:
wush serve
For client:
wush ssh

Credits

Source: GitHub Coder-Wush