Awesome Go

Standard CLI

57 libraries in Command Line / Standard CLI

cobra

Commander for modern Go CLI interactions

44,703Command LineStandard CLI
urfave/cli

Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli)

24,291Command LineStandard CLI
elvish

An expressive programming language and a versatile interactive shell

6,385Command LineStandard CLI
kingpin

Command line and flag parser supporting sub commands (superseded by `kong`; see below)

3,566Command LineStandard CLI
Dnote

A simple command line notebook with multi-device sync

3,088Command LineStandard CLI
pflag

Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags

2,778Command LineStandard CLI
go-flags

go command line option parser

2,693Command LineStandard CLI
go-arg

Struct-based argument parsing in Go

2,288Command LineStandard CLI
carapace-bin

Multi-shell multi-command argument completer

1,989Command LineStandard CLI
ops

Unikernel Builder/Orchestrator

1,523Command LineStandard CLI
carapace

Command argument completion generator for spf13/cobra

1,459Command LineStandard CLI
liner

Go readline-like library for command-line interfaces

1,098Command LineStandard CLI
complete

Write bash completions in Go + Go command bash completion

958Command LineStandard CLI
flaggy

A robust and idiomatic flags package with excellent subcommand support

954Command LineStandard CLI
mow.cli

Go library for building CLI applications with sophisticated flag and argument parsing and validation

883Command LineStandard CLI
mkideal/cli

Feature-rich and easy to use command-line package based on golang struct tags

723Command LineStandard CLI
argparse

Command line argument parser inspired by Python's argparse module

639Command LineStandard CLI
wmenu

Easy to use menu structure for cli applications that prompt users to make choices

229Command LineStandard CLI
climax

Alternative CLI with "human face", in spirit of Go command

215Command LineStandard CLI
vibecheck

Cross-platform CLI that generates Git commit messages automatically from code changes

213Command LineStandard CLI
clîr

A Simple and Clear CLI library. Dependency free

201Command LineStandard CLI
hiboot cli

cli application framework with auto configuration and dependency injection

180Command LineStandard CLI
commandeer

Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags

175Command LineStandard CLI
sflags

Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries

168Command LineStandard CLI
acmd

Simple, useful, and opinionated CLI package in Go

153Command LineStandard CLI
job

JOB, make your short-term command as a long-term job

151Command LineStandard CLI
readline

Shell library with modern and easy to use UI features

150Command LineStandard CLI
cmdr

A POSIX/GNU style, getopt-like command-line UI Go library

143Command LineStandard CLI
teris-io/cli

Simple and complete API for building command line interfaces in Go

132Command LineStandard CLI
env

Tag-based environment configuration for structs

125Command LineStandard CLI
version

Collects and displays CLI version information in multiple formats along with upgrade notice

114Command LineStandard CLI
command-chain

A go library for configure and run command chains - such as pipelining in unix shells

71Command LineStandard CLI
gocmd

Go library for building command line applications

67Command LineStandard CLI
wlog

Simple logging interface that supports cross-platform color and concurrency

67Command LineStandard CLI
strumt

Library to create prompt chain

63Command LineStandard CLI
go-getoptions

Go option parser inspired by the flexibility of Perl’s GetOpt::Long

59Command LineStandard CLI
flagvar

A collection of flag argument types for Go's standard `flag` package

48Command LineStandard CLI
boa

Declarative flags, env vars, validation, and config files from struct tags. Built on cobra

48Command LineStandard CLI
cmd

Extends the standard `flag` package to support sub commands and more in idiomatic way

47Command LineStandard CLI
mcli

A minimal but very powerful cli library for Go

47Command LineStandard CLI
OpenCLI

OpenAPI-style specification for CLIs; define your interface in a language-agnostic document to generate documentation and framework boilerplate code

45Command LineStandard CLI
argv

Go library to split command line string as arguments array using the bash syntax

43Command LineStandard CLI
hashicorp/cli

Go library for implementing command-line interfaces

43Command LineStandard CLI
go-readline-ny

A customizable line-editing library with Emacs keybindings, Unicode support, completion, and syntax highlighting. Used in NYAGOS shell

37Command LineStandard CLI
carapace-spec

Define simple completions using a spec file

34Command LineStandard CLI
orpheus

CLI framework with security hardening, plugin storage system, and production observability features

34Command LineStandard CLI
structcli

Eliminate Cobra boilerplate: build powerful, feature-rich CLIs declaratively from Go structs

18Command LineStandard CLI
subcmd

Another approach to parsing and running subcommands. Works alongside the standard `flag` package

15Command LineStandard CLI
memsh

Virtual bash shell in Go: executes shell commands against an in-memory filesystem (afero), with WASM plugin support and an embeddable HTTP server

15Command LineStandard CLI
flash-flags

Ultra-fast, zero-dependency, POSIX-compliant flag parsing library that can be used as drop-in stdlib replacement with security hardening

12Command LineStandard CLI
getopt

An accurate Go `getopt`, validated against the GNU libc implementation

9Command LineStandard CLI
GoPOSIX

A Go-native, single-binary multicall with 77 POSIX tools and >97% BusyBox test compatibility

9Command LineStandard CLI
neuron-cli

A local-first, Obsidian-compatible terminal knowledge manager

8Command LineStandard CLI
goopt

A declarative, struct-tag based CLI framework for Go, with a broad feature set such as hierarchical commands/flags, i18n, shell completion, and validation

5Command LineStandard CLI
go-arch

CLI tool for scaffolding Go applications with Minimalist, Standard, and Hexagonal architecture patterns

4Command LineStandard CLI
gozen

gozen is a simplified golang MVC framework to generate projects and components with Support of REST, gRPC etc. Higly customizable and easy to add any api layer or worker

4Command LineStandard CLI
Fling-CLI

Terminal-based peer-to-peer file and message transfer tool over custom reliable UDP

Command LineStandard CLI