github.com/nakabonne/pbgopy
v0.4.0
#2091 most downloaded on Go modules
nakabonne/pbgopy
What this package is like to depend on
Last release 3 months ago
29 Apr 2026
Ships unpredictably
gaps range from 2 weeks to 4.2 years
Nearly every release is documented
notes for 6 of 6 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
10 releases · first in 2020
1 release in the last 12 months
see the full history below
Release timeline
10 releases · Nov 2020 to Apr 2026Releases
latest 10-
v0.4.029 Apr 2026Release notes
Open source →What's Changed
Clipboard history support
pbgopynow supports clipboard history on the server side.To keep multiple entries, start the server with
--history-limit:pbgopy serve --history-limit 20
Each successful copy creates a history entry.
pastestill returns the latest entry by default:pbgopy copy < first.txt pbgopy copy < second.txt pbgopy paste > latest.txtYou can list stored entries with the new history command:
pbgopy historyExample output:
ID AGE TYPE SIZE LATEST PREVIEW fcd0bc9afd9586c4544c377024d4e3b1 4s text/plain; charset=utf-8 6B * "world" f9db4d7b8befb5d8b86b39e58b695126 9m image/jpeg 1.6MB JPEG image 3144x4192You can paste a specific entry by ID:
pbgopy paste --id f9db4d7b8befb5d8b86b39e58b695126 > foo.jpgUse --history-limit 0 for unlimited in-memory history.
Notes
The default history limit is 1, so existing latest-only workflows continue to work as before.
Changelog
- 454e5ab Set up Buildx for release Docker images (#40)
- 01c66e5 Disable Docker SBOM attestation (#39)
- ed6740f Prepare release workflow for v0.4.0 (#38)
- df6e07d Add clipboard history support (#37)
- 90269e2 Fix CI: update Go versions and golangci-lint (#36)
- 6674985 Fix how to install via Go
- b6f80e7 Update README.md
- 21b29a5 Bump Go to 1.16
- 356c589 Add info on how to use command-line options
-
v0.3.1-0.20220303140503-66749855046b03 Mar 2022 pre-releaseNothing published for this version
-
v0.3.1-0.20211017051947-b6f80e71f39b17 Oct 2021 pre-releaseNothing published for this version
-
v0.3.1-0.20210227002440-21b29a565f2527 Feb 2021 pre-releaseNothing published for this version
-
v0.3.028 Dec 2020Release notes
Open source →pbgopy v0.3.0 is here!! 🎉
It's a feature-packed release with tons of features for secure use.
Hybrid cryptosystem is now available (#25)
pbgopy comes with a built-in end-to-end encryption feature. You can now encrypt with not only the symmetric-key but also your public/private key. If you have already exchanged public keys between devices you want to share data with, this is the way to go.
You can simply encrypt/decrypt by specifying the key file:
pbgopy copy --public-key-file /path/to/public.key <plaintext.txtpbgopy paste --private-key-file /path/to/private.key <plaintext.txtNote that you can only use an RSA key in PEM or DER format.
Specify public/private key via GPG (#27)
You manage your keyring in GPG? The
--gpg-user-id(-u) flag is for you! Suppose you want to encrypt with a public key whose user id isalice:pbgopy copy -u alice <plaintext.txtThen you decrypt it with the private key by specifying the user id on another device:
pbgopy paste -u alice
There are a couple of ways to specify a user ID. Visit here to see the entire list.
Existing symmetric-keys are now available (#23)
As in the past, you can derive the key from password with the
-pflag, which is provided so that you can encrypt/decrypt without previous setting, while this way cannot prevent a dictionary attack. For more safety, it is highly recommended to use a 32-bytes symmetric key generated by other methods. The-kflag or thePBGOPY_SYMMETRIC_KEY_FILEenvironment variable is available to indicate the path to the key file.pbgopy copy -k /path/to/pbgopy.key <plaintext.txtPerformance improvements
- Reduced unnecessary communication when deriving the key from the password (#28)
Breaking changes
- The
PBGOPY_PASSWORD_FILEenvironment variable has been unavailable. - The interface between pbgopy server and client has been slightly changed, hence you will need to update the binaries on all devices to use this version.
Changelog
0af2a5b Add information on how to use hybrid cryptography (#29)
06d10e8 Ensure to give back stderr when GPG failed
cc6ca28 Add check if multiple keys are specified
f2a81ac Stop using salt when deriving key from password (#28)
4d255f4 Enable to specify public/private key via GPG (#27)
8f4ca3a Support encrypted private keys (#26)
31b8bab Enable hybrid cryptosystem (#25)
f11af4c Rename encryption parameters
50bc455 Add functions to encrypt/decrypt with RSA (#24)
b61ded0 Slice off leading and trailing white space of key
b4d10bc Enable to directly give symmetric-key (#23)
efbe459 Make the hash function commonDocker images
docker pull nakabonne/pbgopy:latestdocker pull nakabonne/pbgopy:v0.3.0docker pull nakabonne/pbgopy:v0.3
-
v0.2.113 Dec 2020Release notes
Open source →pbgopy v0.2.1 is here.
- Support
--from-clipboardoption to put the data at the clipboard on your OS. - Enable to set password via the
PBGOPY_PASSWORD_FILEenvironment variable. - Expose
/lastupdatedendpoint to tell when to update the current content. This is for the extension tool for pbgopy
Changelog
87286c2 Add description to tell how to use --from-clipboard option
2bb3509 Merge pull request #21 from thealamu/iss#17
5db914a Remove unneeded log
5652c16 Merge pull request #12 from name-schema/automating-password-entry-issue-5
4c95f4a Default read source to stdin
76dd4ea Allow setting --max-size on clipboard source
8c7b720 Merge pull request #20 from IvarWithoutBones/nix-readme
317dd4b Add Nix installation instructions
24f7564 Merge branch 'main' into automating-password-entry-issue-5
32ef963 Issue #5 - Addressed CR comments
18cba7a Use strong pseudo-random number generator for salt
e67fd38 Remove unneeded private function
ffc124a Handle the case of cache not found
5281a59 Read data from clipboard if option is specified
7f8595e Register a from-clipboard flag
fc73b4c Remove unneeded multi getter
46e20b8 Be more clear cache key name
a792f24 Merge pull request #16 from thealamu/feat/lastupdated
3363c6f Update installation instructions
7553882 Test lastupdated path
7ce9148 Update timestamp in cache on put
3c587cd Implement handler for getting lastupdated timestamp
4932bed Register the lastupdated path
8e0c51a Issue #5 - Automating Password EntryDocker images
docker pull nakabonne/pbgopy:latestdocker pull nakabonne/pbgopy:v0.2.1docker pull nakabonne/pbgopy:v0.2
- Support
-
v0.2.005 Dec 2020Release notes
Open source →pbgopy v0.2.0 is here 🎉
Support basic authentication
You can now perform a minimum of authentication via an HTTP Basic Authentication.
pbgopy serve -a user:pass
pbgopy copy -a user:pass <foo.pngpbgopy paste -a user:pass >foo.pngMax size is now configurable
--max-sizeoption is now availablepbgopy copy --max-size 100mb
pbgopy paste --max-size 100mb
And fixed an encryption vulnerability
Changelog
c2094de Add authentication section
f3764ac Add max-size option to paste command
b0c75a1 Contain modified part of datasize
4bf3404 Merge pull request #10 from thealamu/iss#2
0c5478d Update tests, add float datasize test
1ad54dd Remove unnecessary comments
61ae8c5 Check single error results on the same line
43ff909 Fix failing tests
d9ee796 Add tests for readNoMoreThan and datasizeToBytes
46a0a69 Don't allocate buffer memory ahead of time
d6978d1 Allow users specify human-readable data sizes
bff38f6 Fix lint errors
025c7d9 Fail when copy data exceeds defined maxSize (#1)
d903987 Merge pull request #14 from azunymous/main
9fa846f Change create server to be private
0fcfd7e Merge pull request #13 from pjvds/patch-2
c1b4d79 Merge pull request #11 from name-schema/no-empty-nonce-issue-4
d011c7e Add server tests for copy and paste
adc20a5 Add basic authentication to commands
4d97c1c docs: add AUR package to README
2ada86e Issue #4 - Made GetNonce func private
4fbed2c Issue #4 - Adding back the RandomBytes function
4c39fec Issue #4 - Stop using an empty nonce for GCM
b77c9c2 Rename crypt package to crypto
5e99fdb Modularize encryption/decryption package (#9)
416dc4f Put salt into cache for concurrent use
497dfb1 Derive a secure encryption key based on the password (#8)
9e86a26 Update demo to clarify it uses different devicesDocker images
docker pull nakabonne/pbgopy:latestdocker pull nakabonne/pbgopy:v0.2.0docker pull nakabonne/pbgopy:v0.2
-
v0.1.128 Nov 2020Release notes
Open source →Changelog
e6d3359 Use password option instead of key (#1)
8bb5cf1 Fix import orderDocker images
docker pull nakabonne/pbgopy:latestdocker pull nakabonne/pbgopy:v0.1.1docker pull nakabonne/pbgopy:v0.1
-
v0.1.1-0.20201130121835-5e99fdb4a9e530 Nov 2020 pre-releaseNothing published for this version
-
v0.1.028 Nov 2020Release notes
Open source →v0.1.0 is the first release with the basic features.
Changelog
46dbc88 Ensure to run release on ubuntu
8e2d6c3 Update installation instructions
a222d59 Enable to publish releases continuously
2df882e Add sub-command to show version
a660f04 Enable golangci-lint
bee7434 Enable continuous testing
f5cd21d Update description for end-to-end encryption
3db934f Add ability to encrypt data with common key
d7604d7 Enable to fetch data with paste command
0a1fdb4 Enable to put data with copy command
f3cf692 Add paste command
c2fa2e6 Ensure to give back cached contents
e436f37 Add usage section
5a7007b Enable to cache a given contents
1b18ad3 Add serve command
0a153f4 Add a package that provides an interface to cache
87697d0 Ignore output file from coverage tool
a53cfb9 Update README
f8cfc02 Add copy command
f2dd866 Add README
c8ec66f Initial commitDocker images
docker pull nakabonne/pbgopy:latestdocker pull nakabonne/pbgopy:v0.1.0docker pull nakabonne/pbgopy:v0.1