A command-line tool that makes it easy to pipe between machines.
Learn more at Convey: Pipe between machines
echo "Hello world" | convey vibrant_allen
convey vibrant_allen Hello world
- Pipe between hosts with an idiomatic interface using the standard
- Easily pipe files between hosts.
- Does not require any open ports between your clients.
- Short channel names allow for easy typing such as
- Supports colors through ANSI escape codes.
- Supports Linux, macOS and Windows.
- No dependencies to install.
- Powered by NATS, a CNCF project.
- Pre-configured to use our hosted service so you can get started right away.
- Data in encrypted in transit with TLS and encrypted in the in-memory store.
- Data is deleted after 10 minutes of inactivity or 24 hours.
- Self-hosting is available if you'd prefer.
mkdir -p ~/bin wget -qO ~/bin/convey https://get.convey.sh/linux chmod +x ~/bin/convey ~/bin/convey -h
mkdir -p ~/bin curl -sLo ~/bin/convey https://get.convey.sh/macos chmod +x ~/bin/convey ~/bin/convey -h
Invoke-WebRequest https://get.convey.sh/windows -OutFile convey.exe .\convey.exe -h
2. Configure Keyfile
Configure a keyfile. This can be a local filepath, accessible URL or file download link.
convey configure --keyfile FILE
The keyfile should be a secret file that can be easily accessed on the machines you want to use
Your keyfiles don't leave your machine. We create a fingerprint from this file and use that fingerprint only.
Some examples are:
- a text file (e.g.
- an image file
- a file with randomly generated bytes - how to
- raw URL to gist - GitHub gist
3. First Use
echo "Hello world" | convey <ID>
convey <ID> Hello world
If you're looking for further ideas on what you can use this application for, see these examples.
Set configuration with the
convey configure command.
Usage: convey configure [flags] Flags: --keyfile string URL or local path to keyfile (at least 64 bytes is required) --long-names Use standard uuid format for channel names --overwrite Overwrite current configuration --fingerprint string (advanced) If you know the fingerprint you want to use (SHAKE-256 hex), you can set it directly instead of using --keyfile --nats-cacert string (advanced) Local path to CA certificate used by NATS server --nats-cluster string (advanced) NATS cluster id --nats-url string (advanced) NATS server url -h, --help help for configure
By default, configuration is loaded from
go get -u github.com/derekbekoe/convey cd $GOPATH/src/github.com/derekbekoe/convey go run main.go
For convenience, we've provided a hosted service that
convey uses by default.
This hosted service uses TLS to ensure communications are encrypted.
Alternatively, you can host your own NATS Streaming Server and configure
convey to use that server.
Convey source code is available under the MIT License.