Reminder: this is in alpha.

Enjoy these sample commands in lieu of a formal doc.

Getting going

keybase version            # print the version number
keybase help               # get help
keybase signup             # if you've never used Keybase
keybase login              # if you already have an account
keybase prove twitter      # prove you own a twitter account
keybase prove github       # prove a github account
keybase prove reddit       # prove a reddit account
keybase prove coinbase     # prove a coinbase account
keybase prove hackernews   # prove an HN account
keybase prove web  # prove a website
                           # ...more proof types soon...

Pushing / revoking your key

keybase push            # push your public key to Keybase
keybase revoke          # remove/replace your public key

Id'ing and tracking

keybase search chris               # find users like "chris"
keybase id chris                   # look "chris" up, verify identity
keybase track chris                # same as id, but track publicly
keybase track chris --track-local  # track, but not on server

Bitcoin New!

keybase btc 1p90X3byTONYhortonETC  # sign and set the bitcoin
                                   # address on your profile


keybase encrypt chris -m 'secret'         # encrypt
keybase encrypt chris -s -m 'secret'      # also sign with -s
keybase encrypt chris foo.txt             # foo.txt -> foo.txt.asc
keybase encrypt chris foo.txt -o bar.asc  # foo.txt -> bar.asc
echo 'secret' | keybase encrypt chris     # stream


keybase decrypt foo.txt.asc              # foo.txt.asc -> stdout
keybase decrypt foo.txt.asc -o foo.txt   # foo.txt.asc -> foo.txt
cat foo.txt.asc | keybase decrypt        # decrypt a stream


keybase sign -m 'Hello'             # sign a message
keybase sign --clearsign -m 'Hello' # sign, but don't encode contents
keybase sign foo.txt --detach-sign  # generate foo.txt.asc, just a signature
keybase sign foo.txt                # generate foo.txt.asc, containing signed foo.txt
echo 'I rock.' | keybase sign       # stream


keybase verify foo.txt.asc          # verify a self-signed file
keybase verify foo.txt.asc foo.txt  # verify a file + detatched signature
cat foo.txt.asc | keybase verify    # stream a self-signed file

Directory signing and verifying

There is an entire doc on this, but simple examples:

keybase dir sign                   # generate
keybase dir verify                 # check

Assertions! (Useful for scripts, cron jobs, etc.)

If you are not tracking someone, by default the above commands will check the target's identity, perform proof checks, and offer to track.

This kind of interactivity isn't always desired. In that case, if you are not tracking someone, you can make identity assertions.

# Here we encrypt a copy of a backup for
# maria, even though we don't track her. It'll make
# sure she's the right person, and write to stderr if not.
cat some_backup.sql | keybase encrypt maria -o enc_backup.asc \
 --assert 'github://maria_2354 && twitter://maria_booyeah &&
           keybase://maria_h24000 && fingerprint://97016CB3'

You should assert everything you know about a person, so you should `keybase id` her first, before building your command. If any of your assertions are wrong, keybase will write an error to stderr and crap out.

Feel free to get creative with assertions; you can make conjunctions with && as above; disjunctions with ||; and nested logic with parentheses.