I wanted to build a CLI tool for interacting with the GitHub API. I created Reposier, a tool that could transfer starred repositories between accounts, and create a clean looking pdf list of all the starred repositories on an account.
As I wanted this tool to be easily available, I put it out on the NPM registry.
Users can easily follow a set of prompts when they launch the program for the first time, and their information will be saved to their machine so they don't have to authenticate each time the run the program.
The user can generate a markdown list or a pdf list of the starred repositories on their GitHub account.
I also wanted to give the ability to transfer starred repositories between accounts. I had 2 different GitHub accounts, and I wanted all of my starred repositories from one account to be on the other. I was surprised there wasn't already an option to do this with GitHub, so I decided to bake it into Reposier.
Working with a CLI is both rewarding and challenging. You don't have all the debugging tools and visibility of data as you do in the Web Browser.
Each feature that I set out to create worked as expected, and looked pretty at the end.
The landing page/documentation page created with Docsify, looked really good and I was very satisfied with them.
Authentication sometimes didn't work as expected, and the CLI itself was fairly slow at times.
I would refactor the tool in order to be more performant - perhaps making use of more CLI libraries.
This was a very fun tool to make. It was my first shot at a CLI tool, and it served as a stepping stone for other smaller CLI tools that I made in the future on smaller projects.