create account

It's skiff β€” A utility command line interface for the Steem blockchain by tdre

View this thread on: hive.blogpeakd.comecency.com
· @tdre ·
$56.91
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>
πŸ‘  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 67 others
properties (23)
authortdre
permlinkit-s-skiff-a-utility-command-line-interface-for-the-steem-blockchain
categoryutopian-io
json_metadata{"community":"busy","app":"busy/2.5.3","format":"markdown","tags":["utopian-io","development","busy","steem","cryptocurrency"],"users":["tdre","utopian-io"],"links":["https://github.com/tdreid/steem-skiff","https://github.com/tdreid/steem-skiff/blob/master/README.md","https://nodejs.org/en/","https://github.com/tj/commander.js/","https://github.com/steemit/steem-js","https://github.com/flatiron/prompt","https://github.com/request/request","https://github.com/kauegimenes/jsonexport","https://lodash.com/","https://steemit.com/utopian-io/@tdre/build-a-command-line-tool-to-make-periodic-transfers"],"image":["https://ipfs.busy.org/ipfs/QmZPL1pVHLWHDCttLRNWqUK27pcDe8tK6uLEaJf9z6uoKF","https://ipfs.busy.org/ipfs/QmNYDxSBgh58ZpT4YfuiB9XBCA5CUVPhVPf7ZqhQBWm8TN","https://ipfs.busy.org/ipfs/QmaGwxevmETUUxLWckNX5d2nF2uwpg3xDcbsGDYNnG7qoD","https://ipfs.busy.org/ipfs/QmPooeQQpvP44ian5ce539FzGKLry4xLYk6WwAFc2F9uA7","https://ipfs.busy.org/ipfs/QmZVmrXz2LeuRQuq3S3wWoN64jmsdckKgCdjrrA7xdfRd4","https://ipfs.busy.org/ipfs/QmZ6PLTBDzCxyDSDFAR3cLBfiCMF6NEKBZgFp5KtgWkYZQ","https://ipfs.busy.org/ipfs/QmRebopnSyfF6NyUPCdFDWRFVdAzCnfy6dnfg24NVK9BvJ"]}
created2018-07-30 00:15:15
last_update2018-07-30 00:15:15
depth0
children4
last_payout2018-08-06 00:15:15
cashout_time1969-12-31 23:59:59
total_payout_value44.036 HBD
curator_payout_value12.870 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length4,372
author_reputation28,296,055,808,693
root_title"It's skiff β€” A utility command line interface for the Steem blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id66,446,482
net_rshares33,381,971,023,203
author_curate_reward""
vote details (131)
@followforupvotes ·
Congratulations
As a follower of @followforupvotes this post has been randomly selected and upvoted! Enjoy your upvote and have a great day!
properties (22)
authorfollowforupvotes
permlinkre-tdre-it-s-skiff-a-utility-command-line-interface-for-the-steem-blockchain-20180730t004615193z
categoryutopian-io
json_metadata""
created2018-07-30 00:46:18
last_update2018-07-30 00:46:18
depth1
children0
last_payout2018-08-06 00:46:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length124
author_reputation24,665,782,446,239
root_title"It's skiff β€” A utility command line interface for the Steem blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id66,448,693
net_rshares0
@justyy ·
$0.07
Thank you for your contribution.

1. you may want to define a list of code constants that is used by `process.exit` 
2. what does skiff stand for?
3. how do I switch between testnet (+1 BTW) and the steem blockchain?
4. You may want to start building up unit tests at the early stage of the project.
5. You may want to take `steem.api.setOptions` out to a common module/place where users could set via command line. You may also refer to steempy CLI for some useful features.

Looking forward to more features/utilities!

Your contribution has been evaluated according to [Utopian policies and guidelines](https://join.utopian.io/guidelines), as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, [click here](https://review.utopian.io/result/3/3322232).

---- 
Need help? Write a ticket on https://support.utopian.io/. 
Chat with us on [Discord](https://discord.gg/uTyJkNm). 
[[utopian-moderator]](https://join.utopian.io/)
πŸ‘  , , , , , , , , ,
properties (23)
authorjustyy
permlinkre-tdre-it-s-skiff-a-utility-command-line-interface-for-the-steem-blockchain-20180730t010705065z
categoryutopian-io
json_metadata{"tags":["utopian-io"],"links":["https://join.utopian.io/guidelines","https://review.utopian.io/result/3/3322232","https://support.utopian.io/","https://discord.gg/uTyJkNm","https://join.utopian.io/"],"app":"steemit/0.1"}
created2018-07-30 01:07:09
last_update2018-07-30 01:07:09
depth1
children0
last_payout2018-08-06 01:07:09
cashout_time1969-12-31 23:59:59
total_payout_value0.062 HBD
curator_payout_value0.006 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,011
author_reputation280,616,224,641,976
root_title"It's skiff β€” A utility command line interface for the Steem blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id66,450,274
net_rshares40,893,747,149
author_curate_reward""
vote details (10)
@minnowsupport ·
<p>Congratulations!  This post has been upvoted from the communal account, @minnowsupport, by tdre from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows.  Please find us at the <a href="https://discord.gg/HYj4yvw"> Peace, Abundance, and Liberty Network (PALnet) Discord Channel</a>.  It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.</p> <p>If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=102530.639667%20VESTS">50SP</a>, <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=205303.639667%20VESTS">100SP</a>, <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=514303.639667%20VESTS">250SP</a>, <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=1025303.639667%20VESTS">500SP</a>, <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=2053030.639667%20VESTS">1000SP</a>, <a href="https://v2.steemconnect.com/sign/delegateVestingShares?delegator=&amp;delegatee=minnowsupport&amp;vesting_shares=10253030.639667%20VESTS">5000SP</a>. <br><strong>Be sure to leave at least 50SP undelegated on your account.</strong></p>
properties (22)
authorminnowsupport
permlinkre-it-s-skiff-a-utility-command-line-interface-for-the-steem-blockchain-20180731t030848z
categoryutopian-io
json_metadata"{"app": "beem/0.19.50"}"
created2018-07-31 03:08:48
last_update2018-07-31 03:08:48
depth1
children0
last_payout2018-08-07 03:08:48
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,700
author_reputation148,902,805,319,183
root_title"It's skiff β€” A utility command line interface for the Steem blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id66,586,840
net_rshares0
@utopian-io ·
Hey @tdre
**Thanks for contributing on Utopian**.
We’re already looking forward to your next contribution!

**Want to chat? Join us on Discord https://discord.gg/h52nFrV.**

<a href='https://v2.steemconnect.com/sign/account-witness-vote?witness=utopian-io&approve=1'>Vote for Utopian Witness!</a>
πŸ‘  
properties (23)
authorutopian-io
permlinkre-it-s-skiff-a-utility-command-line-interface-for-the-steem-blockchain-20180802t030009z
categoryutopian-io
json_metadata"{"app": "beem/0.19.42"}"
created2018-08-02 03:00:09
last_update2018-08-02 03:00:09
depth1
children0
last_payout2018-08-09 03:00:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length296
author_reputation152,955,367,999,756
root_title"It's skiff β€” A utility command line interface for the Steem blockchain"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id66,828,230
net_rshares3,758,419,601
author_curate_reward""
vote details (1)