Skip to content


Repository files navigation

Build Status

How to use

Single lined stuff

To copy, on one machine you do

echo "I don't like ravioli" | copy-pasta

On the other machine you do


Boom! you should see

I don't like ravioli

in the terminal.

Multiline / Files

cat myPenne.jpg | copy-pasta

On the other machine you do

copy-pasta > myPenne.jpg

Boom! You should see a copy of myPenne.jpg on your other machine.


Are you sharing a machine with others? Or you want to have multiple clipboards? copy-pasta now supports concourse fly like targets. Remember the --target option in the login command? After specifying another user like

copy-pasta login --target your-copy-pasta
<Enter your S3 ACCESSKEY>

You can do

copy-pasta target your-copy-pasta

You will be using another copy-pasta destination. Note the credentials can be the same one!

How does it work?

Are you super paranoid about security? Do you sweat if you copy your credentials into a copy buffer and leave it there? Then you should read on. Here is a diagram that briefly describes how copy-pasta works.

The communication between the machines and the storage server is done in SSL, so we can assume that it is relatively safe.

We can see that the things you copy into copy-pasta gets stored in plain text on the storage server. The weakest link here will be the security of your backend store. Take S3 as an example, if your bucket is private and you haven't shared with anyone your ACCESSKEY and SECRETACCESSKEY, you should be pretty safe. On the other hand, if the backend store is either public or compromised, the content copied to copy-pasta is in danger.

In general it is not advised to copy confidential content to copy-pasta, copy-pasta is also not responsible for keeping the content secure. But if you are a security lax person like me, you probably can take the advantage of the overwrite nature of copy-pasta, copy confidential content, use it and quickly copy something else into copy-pasta.


Looking good? Can't wait to hack with copy-pasta? There are two ways to install copy-pasta. Using go, do the following setup on the two machines you want to copy-pasta

go get

Using homebrew, do

brew tap jutkko/homebrew-copy-pasta
brew install copy-pasta

Login on the machines you want to do copy-pasta

copy-pasta login --target my-copy-pasta
<Enter your S3 ACCESSKEY>

If you are not using Amazon S3, or your bucket location is not in London you might want to pass the endpoint and location of your S3 backend implementation when you target. Currently S3 is the only backend type supported. But I am trying to implement a new backend based on github's gists. Stay tuned.

It is also possible to use github gists as the backend storage. Please see copy-pasta gist-login --help.

If you are interested in using another storage solution, please let me know in the issues page and we get the conversation started.


It depends on how you installed the binary. If by go, you should remove both the copy-pasta repo and the binary

rm -rf $GOPATH/src/
rm $GOPATH/bin/copy-pasta

If by homebrew, you can first remove the binary and then the tap

brew uninstall copy-pasta
brew untap homebrew-copy-pasta

To remove the config file leftover by copy-pasta, simply delete the .copy-pastarc file in your $HOME.

Running the tests

You will need to have a working go environment, and go to the repo

cd $GOPATH/src/

Install the awesome ginkgo testing framework

go get
go get

To run the tests

ginkgo -r

To contribute

Features, concerns or bugs

Please open an issue and talk about the feature/bug you have, I will get back to you very soon.

Use cases

Got an interesting use case for copy-pasta? Make a PR and I will include it here! Here's some


Non-interactive logon

printf "%s\n%s\n" "$ACCESSKEY" "$SECRETACCESSKEY" | copy-pasta login --target my-target

Paste straight to pbcopy

copy-pasta-to-pbcopy() {
  copy-pasta | pbcopy

Copy straight into copy-paste

pbpaste-to-copy-pasta() {
  pbpaste | copy-pasta

... And yours?


Credits to my colleague Vlad. Genius!