It's skiff — A utility command line interface for the Steem blockchain

View this thread on: d.buzz | hive.blog | peakd.com | ecency.com
·@tdre·
0.000 HBD
It's skiff — A utility command line interface for the Steem blockchain
As a developer on the Steem blockchain there are numerous tasks I find myself revisiting repeatedly either manually or as called for in scripts.  I started gathering these into one handy repository and `skiff` was born.

![jordan-bauer-356574-unsplash-1.jpg](https://ipfs.busy.org/ipfs/QmZPL1pVHLWHDCttLRNWqUK27pcDe8tK6uLEaJf9z6uoKF)
<sub>Photo by Jordan Bauer on Unsplash</sub>

#### Repository
https://github.com/tdreid/steem-skiff

### What is the project about?

`skiff` aims to be a one-stop utility knife CLI for commponplace Steem blockchain related tasks.

It will draw on steemjs, dsteem, the developer portal, Discord server gossip and personal experience to shave as many milliseconds of developer time as possible off of such chores.

##### As of version 1.0 `skiff`  offers five commands...
Examples follow.  For full documentation see the [README](https://github.com/tdreid/steem-skiff/blob/master/README.md) or append `--help` to any command while using `skiff`.
---

__Make test accounts__

![screenshot-1.jpg](https://ipfs.busy.org/ipfs/QmNYDxSBgh58ZpT4YfuiB9XBCA5CUVPhVPf7ZqhQBWm8TN)

__Verify a key or password__

![image.png](https://ipfs.busy.org/ipfs/QmaGwxevmETUUxLWckNX5d2nF2uwpg3xDcbsGDYNnG7qoD)

__Generate a posting, active or owner key using a password__

![image.png](https://ipfs.busy.org/ipfs/QmPooeQQpvP44ian5ce539FzGKLry4xLYk6WwAFc2F9uA7)

__List all the properties that appear on _n_ recent posts__

This makes it easier to look up property names to pick for the `get-posts` command below.

![image.png](https://ipfs.busy.org/ipfs/QmZVmrXz2LeuRQuq3S3wWoN64jmsdckKgCdjrrA7xdfRd4)

__Query a category of recent posts to CSV or JSON__

![image.png](https://ipfs.busy.org/ipfs/QmZ6PLTBDzCxyDSDFAR3cLBfiCMF6NEKBZgFp5KtgWkYZQ)

### Technology Stack

- [Node.js](https://nodejs.org/en/) 
- [Commander.js](https://github.com/tj/commander.js/)
- [Steem.js](https://github.com/steemit/steem-js)
- [Prompt](https://github.com/flatiron/prompt)
- [Request](https://github.com/request/request)
- [Jsonexport](https://github.com/kauegimenes/jsonexport)
- [Lodash](https://lodash.com/)

### Roadmap

I've really only nabbed the first few and most frequent commands that I use on a daily basis.  Many more are planned.  Here are the features that have occurred to me so far:

- Post, comment, follow, resteem, vote and flag with simple support for taking action when criteria are met;
- Make `skiff` configurable to default to interacting with a testnet or live blockchain as needed. In addition most commands should support flags to point to alternate chains on an ad hoc basis;
- Create accounts and pay the account creation fee;
- Fold in the periodic transfers technique from [last week's tutorial](https://steemit.com/utopian-io/@tdre/build-a-command-line-tool-to-make-periodic-transfers) as well as make this feature more configurable;
- Calculate Steem Power and Voting Power for  multiple users;
- Estimate curation and voting rewards.

### How to contribute?
This project welcomes [Pull Requests](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) and [Issues](https://github.com/tdreid/steem-skiff/issues) on [Github](https://github.com/tdreid/steem-skiff).

I'm an active believer in the `help wanted` and `good first issue` tags on GitHub.  If you're interested in this project there's not necessarily a need to wait for a Task Request.  Feel free to find me on Discord (tdre#0689) too. You can propose an idea as [a Utopian suggestion](https://github.com/utopian-io/editor-templates/blob/master/ideas) if you'd like to see an added command but aren't free to code it personally.

##### Please [submit an Issue](https://github.com/tdreid/steem-skiff/issues) to:

 - Report a bug
 - Request a feature
 
##### Proposing a change

Please fork the **steem-skiff** repo and submit a Pull Request. Include a bit of a summary and follow [the guidelines in GitHub documentation](https://help.github.com/articles/creating-a-pull-request-from-a-fork/).

##### Coding conventions

Per the @utopian-io guidelines code should be well documented with comments.  This project uses the jsdocs convention for comments. Please document new functions accordingly.

#### GitHub account

<center>

https://github.com/tdreid

![](https://steemitimages.com/0x0/https://ipfs.busy.org/ipfs/QmRebopnSyfF6NyUPCdFDWRFVdAzCnfy6dnfg24NVK9BvJ)

</center>
👍 , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,