• Stars
    star
    355
  • Rank 119,764 (Top 3 %)
  • Language
    HTML
  • License
    Other
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Awesome-cli-framework

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

Awesome PRs Welcome License

Bash/Shell

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

  • 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 any other programming language.

Crystal

  • Athena Console : Allows for the creation of CLI based commands.
  • OptionParser : Builtin class for command-line options processing.

C++

  • argh! : Argh! A minimalist argument handler.

  • 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).

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

  • cxxopt : Lightweight C++ command line option parser.

  • docopt.cpp : C++11 port of docopt.

  • 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:

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/C#

  • 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.

  • 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.

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

  • 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.

  • 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.

  • 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.

Useful awesome list for Dotnet cli

  • awesome-dotnet by @quozd : A collection of awesome .NET libraries, tools, frameworks, and software.

Elixir

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

Fortran

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

Go

Useful awesome list for Go cli

  • Awesome-go by @avelino : A curated list of awesome Go frameworks, libraries and software. Look at Command Line

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 enabling context-sensitive bash, zsh, and fish completions.

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.

  • Jcommander : An annotation based parameter parsing framework for Java 8.

  • 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.

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

JavaScript

  • 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).

  • Commander.js : The complete solution for node.js command-line interfaces.

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

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

  • 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.

  • 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]

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

Julia

Kotlin

  • clikt : Multiplatform command line interface parsing for Kotlin.
  • kotlinx-cli : Pure Kotlin implementation of a generic CLI parser.

Ocaml

  • cmdliner : Declarative definition of command line interfaces for OCaml.
  • clap : Command-Line Argument Parsing, imperative style with a consumption mechanism.
  • minicli : Minimalist OCaml library for command line parsing.

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.

  • 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

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.

  • 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.

  • 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.

  • 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.

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

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

  • PyCli : The cli package is a framework for making simple, correct command line applications in Python. With cli, you can quickly add standard command line parsing; logging; unit and functional testing; and profiling to your CLI apps.

  • 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.

  • python-prompt-toolkit : Library for building powerful interactive command line applications 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.

  • 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.

  • 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 users.

  • 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.

  • 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.

  • 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.

Useful awesome list for Ruby cli

  • Awesome-ruby by @markets : A curated list of awesome Ruby frameworks, libraries and software. Look at #Cli builder and #Cli-utilities

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.

  • TUI : Build terminal user interfaces and dashboards using Rust.

  • StructOpt : Parse command line arguments by defining a struct.

  • rust-argparse : The command-line argument parser library for rust.

  • Seahorse : A minimal CLI framework written in Rust.

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

Scala

  • scopt : Command line options parsing for Scala.

Swift

V

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

Contributing

Thanks for visiting! If you have suggestions, then open an issue, or submit a PR, see: CONTRIBUTING.md. Contributions are welcome, and much appreciated !

License

License Licensed under Creative Commons, CC BY 4.0, Β© Shadawck.

More Repositories

1

awesome-anti-forensic

Tools and packages that are used for countering forensic activities, including encryption, steganography, and anything that modify attributes. This all includes tools to work with anything in general that makes changes to a system for the purposes of hiding information.
HTML
554
star
2

awesome-endpoint-detection-and-response

Collection of tool you need to have in your Endpoint Detection and Response arsenal
41
star
3

glit

Retrieve all mails of users related to a git repository, a git user or a git organization
Rust
35
star
4

awesome-darknet

Networks and Tools that are used to access and navigate on "darknets"
18
star
5

mitrecve

Get all cve corresponding to a specific keyword or a list of keywords from the mitre database (https://cve.mitre.org/)
Python
15
star
6

recon-archy

Linkedin Tools (and maybe later other source) to reconstruct a company hierarchy from scraping relations and jobs title
Go
13
star
7

lrjson

Transform Lightroom standard file (like lrtemplate or xmp) into manipulable json file
Python
7
star
8

seqparser

Cli tool to find specific regular expression like email, ip adress, phone number, bitcoin adress ... in a file
Python
4
star
9

rust-trend

Unofficial Rust API for interacting with Google Trend
Rust
4
star
10

nse-install

Install and update external NSE script for nmap
Python
3
star
11

awesome-check-link

Check if the urls contained in a markdown file are down or not.
Python
2
star
12

gethostid-rs

Pure rust implementation of gethostid from libc (used in hostid)
Rust
2
star
13

getdep

Get dependencies for a given package management system and a given package.
Python
1
star
14

scabi

Implement vulnerabilities scanning on top of package management system like apt, pip, composer...
Python
1
star
15

tapcode

Tapcode Cypher also known as Prisoner's tapcode
Python
1
star
16

cargo-basic-template

A basic template for rust crates. Use this template with "cargo generate".
Rust
1
star
17

Code-Analysis

Dockerfile for source code analysis
Shell
1
star
18

gitcurl

Clone a git repository without the need of git to be installed on your system.
Rust
1
star