Command Line Interface Guidelines

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. cli-guidelines

    A guide to help you write better command-line programs, taking traditional UNIX principles and updating them for the modern day.

    Seems they took a small step back from their previous "don't bother with man pages" stance. Now it's "Consider providing man pages."

    I still find it a rather shocking order of priority, honestly.

    https://clig.dev/#documentation

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. cobra

    A Commander for modern Go CLI interactions

    We recently chose cobra[1] to create a cli application. It comes with so many best practices already packaged like autocompletions, help texts etc. etc.

    [1]: https://github.com/spf13/cobra

  4. try

    Inspect a command's effects before modifying your live system

    "try" is not a prefix (like watch, nice, etc) uses an overlayfs in order to be able to see and accept or reject changes to your filesystem from a command

    https://github.com/binpash/try

  5. pass-import

    A pass extension for importing data from most existing password managers

    That way you can delegate the password handling to another program, e.g. a password manager like pass(1) (https://www.passwordstore.org/) or some interactive graphical prompt.

  6. prettier

    Prettier is an opinionated code formatter.

    Exactly. This is implemented by the Javascript code formatter Prettier [1] where you have to pass `--write` in order to overwrite an unformatted file.

    [1]: https://prettier.io

  7. finstem

    Simple Finnish stem word finder

    I know it goes without saying for most of us here, but actually being a heavy terminal user yourself is one of the most important things to understand how to design CLIs. It helps a ton to understand the ecosystem you live in, not just your own organism.

    Example: Something I did a few months back ago for a tiny personal project @ https://github.com/hiAndrewQuinn/finstem was implement `--format CSV`, `TSV` and `JSON` flags. I haven't had need for any of these myself, but they exist so any future people who want to use `csvkit`, `awk` and `jq` respectively to wrap around my program have easy ways to do so. That's not stuff I would have had the instincts to do if I wasn't myself a user of all 3 of those programs.

  8. statifier

    Tool for creating portable self-containing Linux executable

    Yeah, I wish this kind of thing[0] were a core POSIX tool which worked reliably on all systems and binaries. Bit of an oversight, that.

    [0]: https://github.com/greenpau/statifier

  9. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Docopt Command-line interface description language

    1 project | news.ycombinator.com | 30 Jun 2025
  • A Case for Semicolon-less JavaScript (ASI)

    1 project | dev.to | 31 May 2025
  • Rethinking How I Deal With CLI Arguments (replacing getopt)

    1 project | news.ycombinator.com | 16 May 2025
  • Mastering JavaScript Syntax with the Help of AI

    1 project | dev.to | 30 Mar 2025
  • argp: GNU-style command line argument parser for Go

    11 projects | news.ycombinator.com | 23 Mar 2025