
The Best Go Libraries For Command Line (103)
Discover the best Go libraries for Command Line! Find the perfect tools to streamline your development and boost productivity. From asciigraph to aurora, we've got you covered. Let the coding begin!
asciigraph
Go package to make lightweight ASCII line graph โญโโฏ in command line apps with no other dependencies
aurora
ANSI terminal colors that support fmt.Printf/Sprintf
bubble-table
An interactive table component for bubbletea
box-cli-maker
Make Highly Customized Boxes for your CLI.
bubbles
TUI components for bubbletea
bubbletea
Go framework to build terminal apps, based on The Elm Architecture
simpletable
Simple tables in a terminal with Go
cfmt
Contextual fmt inspired by bootstrap color classes.
cfmt
Simple and convenient formatted stylized output fully compatible with fmt library.
chalk
Intuitive package for prettifying terminal/console output.
colourize
Go library for ANSI colour text in terminals.
spinner
Go package to easily provide a terminal spinner with options
go-palette
Go library that provides elegant and convenient style definitions using ANSI colors. Fully compatible & wraps the [fmt library](https://pkg.go.dev/fmt) for nice terminal layouts
go-prompt
Library for building a powerful interactive prompt, inspired by [python-prompt-toolkit](https://github.com/jonathanslenders/python-prompt-toolkit)
gookit/color
Terminal color rendering tool library, support 16 colors, 256 colors, RGB color rendering output, compatible with Windows
lipgloss
Declaratively define styles for color, format and layout in the terminal
marker
Easiest way to match and mark strings for colorful terminal outputs
mpb
Multi progress bar for terminal applications
progressbar
Basic thread-safe progress bar that works in every OS
pterm
A library to beautify console output on every platform with many combinable components
termbox-go
Termbox is a library for creating cross-platform text-based interfaces
tabular
Print ASCII tables from command line utilities without the need to pass large sets of data to the API.
termdash
Go terminal dashboard based on **termbox-go** and inspired by [termui](https://github.com/gizak/termui)
termenv
Advanced ANSI style & color support for your terminal applications
termui
Go terminal dashboard based on **termbox-go** and inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib)
uiprogress
Flexible library to render progress bars in terminal applications
wmenu
Easy to use menu structure for cli applications that prompt users to make choices
yacspin
Yet Another CLi Spinner package, for working with terminal spinners
argparse
Command line argument parser inspired by Python's argparse module
carapace
Command argument completion generator for spf13/cobra
climax
Alternative CLI with "human face", in spirit of Go command
cmd
Extends the standard `flag` package to support sub commands and more in idiomatic way
cmdr
A POSIX/GNU style, getopt-like command-line UI Go library
cobra
Commander for modern Go CLI interactions
command-chain
A go library for configure and run command chains - such as pipelining in unix shells
commandeer
Dev-friendly CLI apps: sets up flags, defaults, and usage based on struct fields and tags
complete
Write bash completions in Go + Go command bash completion
elvish
An expressive programming language and a versatile interactive shell
flag
Simple but powerful command line option parsing library for Go supporting subcommand.
flagvar
A collection of flag argument types for Go's standard `flag` package
go-andotp
A CLI program to encrypt/decrypt [andOTP](https://github.com/andOTP/andOTP) files. Can be used as a library as well.
go-arg
Struct-based argument parsing in Go
go-commander
Go library to simplify CLI workflow.
go-flags
go command line option parser
go-getoptions
Go option parser inspired by the flexibility of Perlโs GetOpt::Long
kingpin
Command line and flag parser supporting sub commands (superseded by `kong`; see below)
liner
Go readline-like library for command-line interfaces
mcli
A minimal but very powerful cli library for Go
mitchellh/cli
Go library for implementing command-line interfaces.
mkideal/cli
Feature-rich and easy to use command-line package based on golang struct tags
mow.cli
Go library for building CLI applications with sophisticated flag and argument parsing and validation
ops
Unikernel Builder/Orchestrator
pflag
Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags
sand
Simple API for creating interpreters and so much more.
sflags
Struct based flags generator for flag, urfave/cli, pflag, cobra, kingpin, and other libraries
survey
Build interactive and accessible prompts with full support for windows and posix terminals.
ts
Timestamp convert & compare tool.
ukautz/clif
Small command line interface framework.
go-ataman
Go library for rendering ANSI colored text templates in terminals
teris-io/cli
Simple and complete API for building command line interfaces in Go
version
Collects and displays CLI version information in multiple formats along with upgrade notice
go-colorable
Colorable writer for windows
go-colortext
Go library for color output in terminals
go-isatty
isatty for golang
gocui
Minimalist Go library aimed at creating Console User Interfaces
lazyenv
TUI for browsing, comparing, and editing .env files
loom
Signal-based reactive components framework for building TUIs
table
Small library for terminal color based tables
uilive
Library for updating terminal output in real time
acmd
Simple, useful, and opinionated CLI package in Go
argv
Go library to split command line string as arguments array using the bash syntax
carapace-bin
Multi-shell multi-command argument completer
carapace-spec
Define simple completions using a spec file
clรฎr
A Simple and Clear CLI library. Dependency free
Dnote
A simple command line notebook with multi-device sync
env
Tag-based environment configuration for structs
flaggy
A robust and idiomatic flags package with excellent subcommand support
gocmd
Go library for building command line applications
hashicorp/cli
Go library for implementing command-line interfaces
job
JOB, make your short-term command as a long-term job
strumt
Library to create prompt chain
subcmd
Another approach to parsing and running subcommands. Works alongside the standard `flag` package
urfave/cli
Simple, fast, and fun package for building command line apps in Go (formerly codegangsta/cli)
wlog
Simple logging interface that supports cross-platform color and concurrency
tabby
A tiny library for super simple Golang tables
uitable
Library to improve readability in terminal apps using tabular data
gommon/color
Style terminal text
phoenix
High-performance TUI framework with Elm-inspired architecture, perfect Unicode rendering, and zero-allocation event system
box-cli-maker
Render highly customizable boxes in the terminal
chroma16
Generate a harmonious 16-color terminal palette from a single seed color or string
crab-config-files-templating
Dynamic configuration file templating tool for kubernetes manifest or general configuration files
ctc
The non-invasive cross-platform terminal color library does not need to modify the Print method
fx
Terminal JSON viewer & processor
boa
Declarative flags, env vars, validation, and config files from struct tags. Built on cobra
flash-flags
Ultra-fast, zero-dependency, POSIX-compliant flag parsing library that can be used as drop-in stdlib replacement with security hardening
getopt
An accurate Go `getopt`, validated against the GNU libc implementation
go-readline-ny
A customizable line-editing library with Emacs keybindings, Unicode support, completion, and syntax highlighting. Used in NYAGOS shell
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
hiboot cli
cli application framework with auto configuration and dependency injection
orpheus
CLI framework with security hardening, plugin storage system, and production observability features
readline
Shell library with modern and easy to use UI features
structcli
Eliminate Cobra boilerplate: build powerful, feature-rich CLIs declaratively from Go structs
goscaf
goscaf generates opinionated, production-quality Go project boilerplate via an interactive CLI. Stop copy-pasting skeleton code between projects