Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An implementation of Zach Holman's boom script in Python
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

What's this?

Boo is a reimplementation of a handy tool I saw in one of Zach Holman's screencasts. Basically it's a key value store that allows you to save snippets of text that you can later find and copy to your clipboard.


Let's try a simple usage example. I just found a funny picture of a friend and want to keep it stored for use as leverage the next time I need to borrow some money from him. Here's where boo can help me out. I open up a terminal window and type:

boo funny-picture

And now it's saved!

So now I need an extra server for a project I'm working on. I'm broke and my friend is reluctant to help me out, so I need some help from my friend boo! All I have to do is open a terminal window and type:

boo funny-picture

and Boom! The URL is instantly copied to my clipboard, where I can send it in a completely non-threatening email to my friend in order to get my way!


Fire up your terminal and type:

git clone git://
cd boo
sudo python install

And that's it! Boo is now at your service!



boo test hello world

Creates a new key, test, and sets it's value to hello world


boo test

Gets the value of key test and copys it to your clipboard


boo -r test

Removes the key test


boo -m test hello

Renames the key test to hello


boo -a

Lists all of the keys stored in your ~/.boom file.


boo -p test

Prints the value of the given key

Concatenate (append)

boo -c test hello

Adds "hello" to the end of key test


boo -e test

Opens key test with an editor specified by the EDITOR environment variable.


You can also set (and append to) keys through stdin:

boo test - < helloworld.txt


boo test -c - < helloworld.txt

Known Bugs/Todo

  • It's currently OS X and Windows only (on OSX, it relies on AppKit to access to clipboard). Linux support will be coming soon.
  • I want to add some kind of grouping support. Right now the only way to do it is to name the keys you want to group something-keyname and use grep to filter them (use boo -a).
  • Implement some kind of remote repository; allowing boo keys to be synchronized between multiple machines. Possibly even some sharing between users?

For grouping/remote support: see the grouping branch and this commit for details

And of course if you have any ideas, feel free to open a new issue or if you're dedicated: submit a pull request!

Something went wrong with that request. Please try again.