Skip to content
79

Awesome-cli-framework

Collection of tools to build beautiful command line interface in different languages

1.2k stars55 forks117 entriesLast push Aug 14, 2026 (1 month ago)License Other

This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.

Bash/Shell

argc

A bash cli framework, also a task management & automation tool (written in rust).

argbash

Bash argument parsing code generator.

In 3 lists

Bashly

A command line application (written in Ruby) that lets you generate feature-rich bash command line tools. Bashly lets you focus on your specific code, without worrying about command line argument parsing, usage texts, error messages and other functions that are usually handled by a framework in…

In 2 lists

gum

A tool for glamorous shell scripts 🎀 (written in go).

In 3 lists

Crystal

Athena Console

Allows for the creation of CLI based commands.

In 2 lists

OptionParser

Builtin class for command-line options processing.

C++

argh!

Argh! A minimalist argument handler.

In 3 lists

args

A simple header-only C++ argument parser library. Supposed to be flexible and powerful, and attempts to be compatible with the functionality of the Python standard argparse library (though not necessarily the API).

In 5 listsDetails

CLI11

A command line parser for C++11 and beyond that provides a rich feature set with a simple and intuitive interface.

In 5 listsDetails

cxxopt

Lightweight C++ command line option parser.

In 5 listsDetails

docopt.cpp

C++11 port of docopt.

In 3 lists

gflags

The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used. Online documentation available at:

In 2 lists

Lyra

A simple to use, composable, command line parser for C++ 11 and beyond.

In 2 lists

Dart

args

Parses raw command-line arguments into a set of options and values.

dcli

An API and tooling for building cross platform command line (CLI) applications and scripts using the Dart programming language.

Deno

deno-cliffy

Command line framework for deno sauropod Including Commandline-Interfaces, Prompts, CLI-Table, Arguments Parser and more...

Dotnet

CliFX

A simple to use, yet powerful framework for building command line applications. Its primary goal is to completely take over the user input layer, allowing you to forget about infrastructural concerns and instead focus on writing your application.

In 4 lists

CliWrap

CliWrap is a library for interacting with external command line interfaces. It provides a convenient model for launching processes, redirecting input and output streams, awaiting completion, handling cancellation, and more.

In 4 lists

CommandDotnet

Makes it easy to build console apps as simply as you would like and as feature rich as you need.

In 3 lists

CommandLine

The Command Line Parser Library offers CLR applications a clean and concise API for manipulating command line arguments and related tasks, such as defining switches, options and verb commands.

command-line-api

Command line parsing, invocation, and rendering of terminal output.

In 3 lists

CommandLineUtils

This project helps you create command line applications using .NET. It simplifies parsing arguments provided on the command line, validating user inputs, and generating help text.

In 4 lists

gui.cs

Console-based user interface toolkit for .NET applications.

spectre.console

A .NET 5/.NET Standard 2.0 library that makes it easier to create beautiful, cross platform, console applications.

In 2 lists

Elixir

Owl

Owl is a toolkit for writing command-line user interfaces in Elixir.

In 2 lists

Fortran

FLAP

A KISS pure Fortran Library for building powerful, easy-to-use, elegant command line interfaces.

In 2 lists

Go

cli

A simple, fast, and fun package for building command line apps in Go.

In 5 listsDetails

climate

Autogenerates CLIs from structs / functions (nested subcommands, global / local flags, help generation, typo suggestions, shell completion etc.)

Cobra

Many of the most widely used Go projects are built using Cobra, such as: Kubernetes, Hugo, rkt, etcd, Moby (former Docker), Docker (distribution), OpenShift, Delve, GopherJS, CockroachDB, Bleve, ProjectAtomic (enterprise), Giant Swarm's gsctl, Nanobox/Nanopack, rclone, nehm, Pouch, Istio,…

In 7 listsDetails

Golang Agrparse

The goal of this project is to bring ease of use and flexibility of argparse (Python) to Go.

In 3 lists

go-arg

Struct-based argument parsing in Go.

In 4 listsDetails

Docopt Go

docopt parses command-line arguments based on a help message. Don't write parser code: a good help message already has all the necessary information in it.

Mow.cli

A versatile library for building CLI applications in Go

In 4 listsDetails

Clif

Go framework for rapid command line application development.

Kong

Kong aims to support arbitrarily complex command-line structures with as little developer effort as possible.

In 5 listsDetails

Viper

Viper is a complete configuration solution for Go applications including 12-Factor apps. It is designed to work within an application, and can handle all types of configuration needs and formats.

In 7 listsDetails

Haskell

CmdArgs

CmdArgs is a Haskell library for defining command line parsers.

Docopt.hs

A Haskell port of python's docopt.

optparse-applicative

A haskell library for parsing options on the command line, and providing a powerful applicative interface for composing them. It takes care of reading and validating the arguments passed to the command line, handling and reporting errors, generating a usage line, a comprehensive help screen, and…

Java

args4j

A small Java class library that makes it easy to parse command line options/arguments in your CLI application.

Apache Commons CLI

Apache Commons CLI provides a simple API for presenting, processing and validating a Command Line Interface.

In 2 lists

Jcommander

An annotation based parameter parsing framework for Java 8.

In 3 lists

Jline3

A Java library for handling console input. People familiar with the readline/editline capabilities for modern shells (such as bash and tcsh) will find most of the command editing features of JLine to be familiar.

In 2 lists

Picocli

A modern framework for building powerful, user-friendly, GraalVM-enabled command line apps with ease.

In 3 lists

JavaScript

Clipanion

Official CLI framework powering both the Yarn CLI - one of the most complex command-line tool in the ecosystem - and small internal scripts. Clipanion is designed with type safety in mind, and leverages a syntax as idiomatic as possible to avoid cluttering your code with boilerplate.

In 2 lists

Oclif

Oclif is a framework for building CLIs in Node.js. This framework was built out of the Heroku CLI but generalized to build any custom CLI. It's designed both for single-file CLIs with a few flag options, or for very complex CLIs that have subcommands (like git or heroku).

In 3 lists

Commander.js

The complete solution for node.js command-line interfaces.

In 5 listsDetails

Gluegun

A delightful toolkit for building TypeScript-powered command-line apps.

Ink

React for interactive command-line apps. (See also Pastel)

In 3 lists

node-seeli

Object orientated, event driven , Interactive CLI module. Seeli aims to give you the tools to compose A command line interface the way you want it, and otherwise, stays out of your way.

Caporal.js

A full-featured framework for building command line applications (cli) with node.js, including help generation, colored output, verbosity control, custom logger, coercion and casting, typos suggestions, and auto-complete for bash/zsh/fish.

args

Toolkit for building command line interfaces.

Inquirer.js

Inquirer.js strives to be an easily embeddable and beautiful command line interface for Node.js.

In 4 listsDetails

Vorpal

Vorpal is Node's first framework for building interactive CLI applications. With a simple and powerful API, Vorpal opens the door to a new breed of rich, immersive CLI environments. [NOT MAINTAINED]

In 2 lists

Yargs

Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface.

In 6 listsDetails

Clerc

Clerc is a full-featured library for building CLI Apps in Node.js, Deno or Bun. It's strongly-typed, easy-to-use and flexible.

Termost

A full-featured framework to build your next command line interfaces (CLI) in a minute. Thanks to its fluent and type-safe API, you can easily express and manage your program metadata (including version and help), sub-commands, user prompts, tasks, options and flags, ...

Julia

Comonicon.jl

Your best CLI generator in JuliaLang.

Kotlin

clikt

Multiplatform command line interface parsing for Kotlin.

kotlinx-cli

Pure Kotlin implementation of a generic CLI parser.

Nim

clapfn

A fast and simple command line argument parser for Nim.

cliche

AutoMagic CLI argument parsing is cliche.

In 2 lists

cligen

Nim library to infer/generate command-line-interfaces / option / argument parsing.

In 2 lists

docopt.nim

Command line arguments parser that will make you smile (port of docopt to Nim).

In 2 lists

loki

A small library for writing line-oriented command interpreters in Nim.

In 2 lists

nim-argparse

Command line argument parsing library.

In 2 lists

nim-confutils

Simplified handling of command line options and config files.

In 2 lists

Ocaml

cmdliner

Declarative definition of command line interfaces for OCaml.

In 2 lists

clap

Command-Line Argument Parsing, imperative style with a consumption mechanism.

minicli

Minimalist OCaml library for command line parsing.

In 2 lists

PHP

CliFramework

CLIFramework is a command-line application framework, for building flexiable, simple command-line applications.

laravel-zero

A micro-framework that provides an elegant starting point for your console application. It is an unofficial and customized version of Laravel optimized for building command-line applications.

In 3 lists

minicli

A minimalist framework for command-line applications in PHP.

php-cli

PHP Console Application made easy- build great console apps with ease. Comes with Zero Dependency and Autocompletion support.

php-cli-tools

A collection of tools to help with PHP command line utilities.

Silly

Silly CLI micro-framework based on Symfony Console.

Symfony/Console

The Console component of symfony eases the creation of beautiful and testable command line interfaces.

Purescript

Optparse

Applicative option parser.

Python

Argparse

Argparse is the default python module for creating command lines programs. It provides all the features you need to build a simple CLI.

In 2 lists

Click

Click is a Python package for creating beautiful command line interfaces in a composable way with as little code as necessary. It's the "Command Line Interface Creation Kit". It's highly configurable but comes with sensible defaults out of the box.

In 5 listsDetails

Cliff

cliff is a framework for building command line programs. It uses setuptools entry points to provide subcommands, output formatters, and other extensions.

Cement

Cement is an advanced Application Framework for Python, with a primary focus on Command Line Interfaces (CLI). Its goal is to introduce a standard, and feature-full platform for both simple and complex command line applications as well as support rapid development needs without sacrificing quality.

Cleo

Cleo allows you to create beautiful and testable command-line interfaces.

Clize

An argument parser for Python. You can use Clize as an alternative to argparse if you want an even easier way to create command-line interfaces.

Cyclopts

Intuitive, easy CLIs based on python type hints.

Docopt

/ Docopt-NG : Pythonic command line arguments parser, that will make you smile. docopt parses command-line arguments based on a help message. Don't write parser code: a good help message already has all the necessary information in it.

In 2 lists

jsonargparse

Implement minimal boilerplate CLIs derived from type hints and parse from command line, config files and environment variables.

Plac

Generate command line parameters from function signatures.

Python-Fire

Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

In 5 listsDetails

PyInquirer

PyInquirer strives to be an easily embeddable and beautiful command line interface for Python. PyInquirer wants to make it easy for existing Inquirer.js users to write immersive command line applications in Python.

PyFiglet

Pyfiglet is a full port of FIGlet (http://www.figlet.org/) into pure python. It takes ASCII text and renders it in ASCII art fonts.

In 2 lists

python-prompt-toolkit

Library for building powerful interactive command line applications in Python.

In 5 listsDetails

SimpleParsing

Allows you to transform your ugly argparse scripts into beautifully structured, strongly typed little works of art. This isn't a fancy, complicated new command-line tool either, this simply adds new features to plain-old argparse !

Tap

Tap is a typed modernization of Python's argparse library.

Tyro

Tool for generating command-line interfaces and configuration objects in Python.

Typer

Library for building CLI applications that users will love using and developers will love creating. It's intended to be the FastAPI of CLIs.

Ruby

dry-ruby

General purpose Command Line Interface (CLI) framework for Ruby.

In 2 lists

TTY

TTY is a toolbox for developing beautiful command line clients in Ruby with a fluid interface for gathering input, querying terminal properties and displaying information.

In 2 lists

Thor

Thor is a simple and efficient tool for building self-documenting command line utilities. It removes the pain of parsing command line options, writing "USAGE:" banners, and can also be used as an alternative to the Rake build tool. The syntax is Rake-like, so it should be familiar to most Rake…

Commander

The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API.

In 2 lists

Clamp

"Clamp" is a minimal framework for command-line utilities. It handles boring stuff like parsing the command-line, and generating help, so you can get on with making your command actually do stuff.

In 2 lists

Gli

GLI allows you to create command-line app in Ruby that behaves like git in that it takes subcommands to perform a series of complex action.

In 2 lists

R

cli

A suite of tools to build attractive command line interfaces (CLIs), from semantic elements: headers, lists, alerts, paragraphs, etc.

Rust

Clap

A full featured, fast Command Line Argument Parser for Rust.

In 3 lists

Ratatui

Rust library that's all about cooking up terminal user interfaces (TUIs).

StructOpt

Parse command line arguments by defining a struct.

In 3 lists

rust-argparse

The command-line argument parser library for rust.

Seahorse

A minimal CLI framework written in Rust.

In 2 lists

Termion

Pure Rust, bindless library for low-level handling, manipulating and reading information about terminals.

Starbase

Framework for building performant command line applications and developer tools.

Scala

scopt

Command line options parsing for Scala.

In 2 lists

Swift

Commander

Compose beautiful command line interfaces in Swift.

In 3 lists

swift-argument-parser

Straightforward, type-safe argument parsing for Swift

In 3 lists

V

cli

Builtin command line option parser, that supports declarative subcommands, each having separate set of options.

flag

Builtin command line option parser.

Zig

cova

Commands, Options, Values, Arguments. A simple yet robust cross-platform command line argument parsing library for Zig.

In 3 lists

zig-cli

A simple package for building command line apps in Zig.

In 3 lists
See category
94

Awesome Rust

rust-unofficial/awesome-rust

A curated list of Rust code and resources.

Fresh★ 60k1833 entriesPushed today
94

Awesome Mac

jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

Fresh★ 115k1316 entriesPushed today
94

Awesome Python

vinta/awesome-python

The definitive list that answers "I want to do X in Python, which tool should I use?"

Fresh★ 324k504 entriesPushed today
94

Awesome C++

fffaraz/awesome-cpp

A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

Fresh★ 74k1358 entriesPushed yesterday
94

Awesome Go

avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

Fresh★ 186k3119 entriesPushed yesterday
94

Awesome PHP

ziadoz/awesome-php

A curated list of amazingly awesome PHP libraries, resources and shiny things.

Fresh★ 33k87 entriesPushed 2 days ago