Skip to content
This repository has been archived by the owner on Apr 13, 2022. It is now read-only.
/ ssb-client-cli Public archive

Command Line interface to do basic things with SSB

License

Notifications You must be signed in to change notification settings

qypea/ssb-client-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ssb-client-cli

Command Line interface to do basic things with SSB

Inspiration

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.

Purpose

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

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.

Examples

# 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

Contributing

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.

License

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

About

Command Line interface to do basic things with SSB

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published