Wush
What is Wush?
Section titled “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:
- No need to set up or trust a relay server for authentication.
- Powered by WireGuard for secure, fast, and reliable connections.
- Automatic peer-to-peer connections over UDP.
- Endless possibilities with
rsync,ssh, and more.
Commands
Section titled “Commands”Usage:
wush <subcommand>
Start the wush server:
wush serveOpen a shell to the wush host:
wush sshTransfer files to the wush host using rsync:
wush rsync local-file.txt :/path/to/remote/fileCopy a single file to the host:
wush cp local-file.txtSubcommands:
| Command | Meaning |
|---|---|
cp | Transfer files. |
port-forward | Forward ports. |
rsync | Transfer files over rsync. |
serve | Run the wush server. |
ssh | Open a shell. |
version | Show wush version. |
Options:
wush --versionPrint the version and exit.
Install
Section titled “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
Section titled “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.
-
Open CMD from the folder where Wush is located, then run:
Terminal window ./wush serve
-
Copy the
Auth key. -
On the client machine, run:
Terminal window wush cp 2.png
-
2.pngis the file we want to send from Linux to Windows. -
Paste the key from the host machine into the client console.
How it looks:

You can also use Wush for remote access to a machine’s console.
The connection is established with an auth key.
For host:
wush serveFor client:
wush sshCredits
Section titled “Credits”Source: GitHub Coder-Wush