Command line interface Icon

Command line interface

A CLI, or command-line interface, is a console that helps users issue commands to a program.
69 Stories
All Topics


Zero-config CLI for TypeScript package development

Despite all the recent hype, setting up a new TypeScript (x React) library can be tough. Between Rollup, Jest, tsconfig, Yarn resolutions, TSLint, and getting VSCode to play nicely….there is just a whole lot of stuff to do (and things to screw up). TSDX is a zero-config CLI that helps you develop, test, and publish modern TypeScript packages with ease–so you can focus on your awesome new library and not waste another afternoon on the configuration.

Vadim Demedes

Building rich command-line interfaces with Ink and React

Could this be the future of writing interactive CLI tools? If you know React you know Ink.

Ink is a library for building and testing command-line applications using React components. Since it acts as a React renderer, you can use everything that React has to offer: hooks, class components, state, context, everything. Ink lets you build interactive and beautiful CLIs in no time.

Building rich command-line interfaces with Ink and React

Klaus Sinani

Qoa – minimal interactive command-line prompts

Lightweight and without any external dependencies qoa enables you to receive various types of user input through a set of intuitive, interactive & verbose command-line prompts. The library utilizes a simple & minimal usage syntax and contains 7 configurable console interfaces, such as plain text, confirmation & password/secret prompts as well as single keypress, quiz & multiple-choice navigable menus.

Qoa – minimal interactive command-line prompts


Git quick statistics

Any git repository contains a tonne of information about commits, contributors, and files. Extracting this information is not always trivial, mostly because of a gadzillion options to a gadzillion git commands – I don’t think there is a single person alive who knows them all. Probably not even Linus Torvalds himself :)

Truth. Clone the repo here and make install or brew install git-quick-stats if you’re on macOS.

Git quick statistics

Daniel Stenberg

Daniel Stenberg is leaving Mozilla

We’ve been chronicling Daniel’s work on #curl for some time now. December 11, 2018 will be Daniel’s final official day at Mozilla. He assures us that his work on curl will continue, saying this in regards to his time dedicated to curl and where he works for his full-time income, “I don’t think my choice of future employer should have to affect that negatively too much, except of course in periods.”

Here are the main points from Daniel (but you should certainly dig into the details):

  1. It’s been five great years, but now it is time for me to move on and try something else.
  2. …lots of the HTTP/2 development and the publication of that was made while I was employed by Mozilla and I fondly participated in that.
  3. …we’re also losing Mozilla as a primary sponsor of the curl project, since that was made up of them allowing me to spend some of my work days on curl and that’s now over.
  4. I will continue to follow and work with HTTP and other internet protocols very closely.
  5. The future is bright but unknown! “I don’t yet know what to do next.”

Command line interface

Run SQL directly on CSV or TSV files

q is a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs (and any other tabular text files). q treats ordinary files as database tables, and supports all SQL constructs, such as WHERE, GROUP BY, JOINs etc. It supports automatic column name and column type detection, and provides full support for multiple encodings.

An example of using q to count distinct values of a specific field (uuid of clicks data)

q -H -t "SELECT COUNT(DISTINCT(uuid)) FROM ./clicks.csv"

Command line interface

A tool for writing Bash pipes with instant live preview

Meet up a.k.a. the Ultimate Plumber:

The main goal of the Ultimate Plumber is to help interactively and incrementally explore textual data in Linux, by making it easier to quickly build complex pipelines, thanks to a fast feedback loop. This is achieved by boosting any typical Linux text-processing utils such as grep, sort, cut, paste, awk, wc, perl, etc., etc., by providing a quick, interactive, scrollable preview of their results.

A tool for writing Bash pipes with instant live preview

Command line interface

dategrep prints lines matching a time range

dategrep reads a file and prints every line with a timestamp that falls into a user defined time range. When invoked on a normal file, dategrep uses a binary search to find the first matching line.

The usefulness of this is perhaps best understood by seeing a few examples:

dategrep --start "12:00" --end "12:15" syslog
dategrep --end "12:15" --format "%b %d %H:%M:%S" syslog
dategrep --last-minutes 5 syslog
cat syslog | dategrep --end "12:15"

Command line interface

Creating a simple 'did.txt' file

This post is a simple, step-by-step explanation of how Patrick created ‘an insanely simple “did” file accessible by terminal’. What’s interesting about it to me is not how to do it, but the idea of doing it itself. His motiviation:

Time flies by when you’re learning how to code. Its super important to take a second every once in a while to simple write down what you did during the past mental sprint. Writing down what you learned solidifies the knowledge.

This is a great truth, and one that applies far beyond learning how to code. Sometimes we need a did.txt just to recognize how much we’ve accomplished recently. For me, there are days when I get to the end and feel like I didn’t really accomplish much. If I’d catalogued my wins throughout the day as they occurred (no matter how small), I bet I’d feel different about that.

However, I’m both busy and lazy (a hellacious pairing) and wouldn’t keep up with this habit unless it were dead simple. Patrick’s ‘did.txt’ solution is about as simple as it gets…


A command-line system information tool written in bash 3.2+

The overall purpose of Neofetch is to be used in screen-shots of your system. Neofetch shows the information other people want to see. There are other tools available for proper system statistic/diagnostics.

Supports almost 150 different operating systems, so odds are it has you covered. Check my results below. Pretty decent uptime for a laptop, no?

A command-line system information tool written in bash 3.2+

Data visualization

Hacker job trends 📈

As we know, an “Ask HN: Who is Hiring?”(example) post will occur at hackernews every month. It is interesting to scan the post because it helps you to get a feeling about what is happening in tec related busness. Aim of this repo is to give you a feeling about how the tec job requirements/used tools/kind/… evolves.

React and Blockchain jobs on the rise…

Hacker job trends 📈
0:00 / 0:00