November 28, 2020

265 words 2 mins read

nakabonne/pbgopy

nakabonne/pbgopy

Copy and paste between devices

repo name nakabonne/pbgopy
repo link https://github.com/nakabonne/pbgopy
homepage
language Go
size (curr.) 676 kB
stars (curr.) 485
created 2020-11-25
license MIT License

pbgopy

Release go.dev reference

pbgopy acts like pbcopy/pbpaste but for multiple devices. It lets you share data across devices like you copy and paste.

Demo

Installation

Binary releases are available through here.

MacOS

brew install nakabonne/pbgopy/pbgopy

RHEL/CentOS

rpm -ivh https://github.com/nakabonne/pbgopy/releases/download/v0.2.0/pbgopy_0.2.0_linux_amd64.rpm

Debian/Ubuntu

wget https://github.com/nakabonne/pbgopy/releases/download/v0.2.0/pbgopy_0.2.0_linux_amd64.deb
apt install ./pbgopy_0.2.0_linux_amd64.deb

Arch Linux

AUR package is available: pbgopy

yay pbgopy

Go

go get github.com/nakabonne/pbgopy

Docker

docker run --rm nakabonne/pbgopy pbgopy help

Usage

First up, you start the pbgopy server which works as a shared clipboard for devices. It listens on port 9090 by default. You must allow access to this port for each device you want to share data with.

pbgopy serve

Populate the address of the host where the above process is running into the PBGOPY_SERVER environment variable. Then put the data entered in STDIN into the server with:

export PBGOPY_SERVER=http://host.xz:9090
pbgopy copy <foo.png

Paste it on another device with:

export PBGOPY_SERVER=http://host.xz:9090
pbgopy paste >foo.png

End-to-end encryption

pbgopy comes with a built-in ability to encrypt/decrypt with a common key, hence allows you to perform end-to-end encryption without working with external tools.

pbgopy copy -p your-password <secret.txt

Then decrypt with the same password:

pbgopy paste -p your-password

Authentication

You can perform a minimum of authentication via an HTTP Basic Authentication.

pbgopy serve -a user:pass
pbgopy copy -a user:pass <foo.png
pbgopy paste -a user:pass >foo.png

TTL

You can set TTL for the cache. Give 0s for disabling it. Default is 24h.

pbgopy serve --ttl 10m

Inspired By

comments powered by Disqus