Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Command Line interface to do basic things with SSB


Many thanks to the authors of ssb-client-basic for their tutorials on accessing the SSB apis. They helped me understand a lot of what I've written here.


This repository is intended to expose SSB to the command line in a somewhat scriptable interface, provide a reference implementation of common tasks simple clients may want to do. The bulk of the code was written in one weekend so I expect it will be a bit rough around the edges, require some knowledge of the SSB. In most cases you're going to want to run this code next to a full SSB client, copy-paste hashes of various kinds to run the commands you want.

I've intentionally limited functionality to things exposed directly by ssb-server in the first round but am not opposed to adding support for the most common plugins(friends, links, unread for instance). I don't expect this code to support all plugins or experimental plugins.


Running in place

To run the programs in place, just run npm install to build dependencies, then ./bin/ssb-client [arguments]

Installing globally

To install globally run npm install -g. If you've configured npm in the standard ways this will put ssb-client on your path, allow you to run it from any shell as is listed in the examples that follow.


# Tell people about yourself, attach a profile picture
ssb-client publish about --name 'Bob Smith' --description 'A handy guy' --image '&hashstring=.sha256'

# Post a message, mentioning another person
ssb-client publish post --text 'Weird things find you on the internet if you look too far. Right, [Mr Mime](@hashstring=.ed25519)?' --channel 'weirdness' --mentions '@hashstring=.ed25519'

# Print the last 5 messages on a channel
ssb-client query --type post --channel 'weirdness' --tail 5

# Print messages 5..10 in your feed
ssb-client query --author '@hashstring=.ed25519' --sequence 5..10

# Print messages posted in the last 24h
ssb-client query --type post --timestamp `date +%s000 --date='-24 hours'`..`date +%s000`

# List the available subcommands, options
ssb-client --help
ssb-client publish --help
ssb-client publish post --help
ssb-client query --help

For connecting json with scripts I highly recommend the jq utility


If you find bugs feel free to report them as issues on this repo or fix them and PR your fixes. If you'd like to add functionality feel free to make PRs and I'll review them.


This code is released under the MIT license, which should let you do almost anything with it. Have fun.


Command Line interface to do basic things with SSB




No releases published


No packages published