Skip to content
Wiki is under a full-reconstruction. Please be patient and look for updates!

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.

Usage:

wush <subcommand>

Start the wush server:

Terminal window
wush serve

Open a shell to the wush host:

Terminal window
wush ssh

Transfer files to the wush host using rsync:

Terminal window
wush rsync local-file.txt :/path/to/remote/file

Copy a single file to the host:

Terminal window
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:

Terminal window
wush --version

Print the version and exit.

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.

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.

  1. Open CMD from the folder where Wush is located, then run:

    Terminal window
    ./wush serve

    wushserve

  2. Copy the Auth key.

  3. On the client machine, run:

    Terminal window
    wush cp 2.png

    wushcp

  4. 2.png is the file we want to send from Linux to Windows.

  5. Paste the key from the host machine into the client console.

How it looks:

wushgif

You can also use Wush for remote access to a machine’s console.

The connection is established with an auth key.

For host:

Terminal window
wush serve

For client:

Terminal window
wush ssh

Source: GitHub Coder-Wush