Skip to content
Convey is a command-line tool that makes it easy to pipe between machines
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmd
samples
.gitignore
.travis.yml
LICENSE
README.md
main.go

README.md

Convey

Version Build Status

A command-line tool that makes it easy to pipe between machines.

Learn more at Convey: Pipe between machines

echo "Hello world" | convey
21f50fba373e11e9990a72000872a940
convey 21f50fba373e11e9990a72000872a940
Hello world

Features

  • Pipe between hosts with an idomatic interface using the standard | symbol.
  • Easily pipe files between hosts.
  • Does not require any open ports between your clients.
  • Configure it to use short channel names instead of UUIDs for easy typing such as vibrant_allen.
  • Supports colors through ANSI escape codes.
  • Supports Linux, macOS and Windows.
  • No dependencies to install.
  • Powered by NATS, a CNCF project.

Getting Started

Install

Linux

wget -qO ~/bin/convey https://get.convey.sh/linux
chmod +x ~/bin/convey
~/bin/convey -h

macOS

curl -sLo ~/bin/convey https://get.convey.sh/macos
chmod +x ~/bin/convey
~/bin/convey -h

Windows

Invoke-WebRequest https://get.convey.sh/windows -OutFile convey.exe
.\convey.exe -h

Demo Mode

A demo mode is available using the --demo flag.

echo "Hello world" | convey --demo
<ID>
convey --demo <ID>
Hello world

Demo mode uses the demo.nats.io server over a TLS connection with channels expiring after 30 minutes of creation or 10 minutes of inactivity.

Use this mode for experimental and getting started purposes only.

Configuration

Set configuration with the convey configure command.

convey configure --nats-url nats://localhost:4222 --nats-cluster test-cluster

By default, configuration is loaded from $HOME/.convey.yaml.

This is an example of .convey.yaml:

NatsURL: nats://localhost:4223
NatsClusterID: test-cluster

Use the --config flag on the command line to change the config file used if needed.

NATS Streaming Server

You can host your own NATS Streaming Server and configure convey to use that server.

Deploy to a local Docker container

docker run -p 4222:4222 nats-streaming:linux
convey configure --nats-url nats://localhost:4222 --nats-cluster test-cluster

You will need to use the --unsecure flag as TLS will not be enabled through this local container.

Development

Set up

go get -u github.com/derekbekoe/convey
cd $GOPATH/src/github.com/derekbekoe/convey
go run main.go

Multi-platform Builds

go get github.com/mitchellh/gox
gox -ldflags "-X github.com/derekbekoe/convey/cmd.VersionGitCommit=$(git rev-list -1 HEAD) -X github.com/derekbekoe/convey/cmd.VersionGitTag=VERSION" -os="linux darwin" -arch="amd64" -output="bin/{{.Dir}}_{{.OS}}_{{.Arch}}"

See https://golang.org/doc/install/source#environment

Examples

Click to expand each gif.

Convey with Top Convey for file piping Convey with millisecond date Convey with Cloud Shell

License

Convey source code is available under the MIT License.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.