elvish alternatives and similar packages
Based on the "Standard CLI" category.
Alternatively, view elvish alternatives based on common mentions on social networks and blogs.
-
urfave/cli
A simple, fast, and fun package for building command line apps in Go -
The Platinum Searcher
A code search tool similar to ack and the_silver_searcher(ag). It supports multi platforms and multi encodings. -
pflag
Drop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags. -
readline
Readline is a pure go(golang) implementation for GNU-Readline kind library -
mitchellh/cli
A Go library for implementing command-line interfaces. -
flaggy
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. -
wmenu
An easy to use menu structure for cli applications that prompts users to make choices. -
commandeer
Automatically sets up command line flags based on struct fields and tags. -
flag
Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand -
cmdr
POSIX-compliant command-line UI (CLI) parser and Hierarchical-configuration operations -
wlog
A simple logging interface that supports cross-platform color and concurrency. -
go-getoptions
Fully featured Go (golang) command line option parser with built-in auto-completion support. -
argv
A Go library to split command line string as arguments array using the bash syntax. -
command-chain
A go library for easy configure and run command chains. Such like pipelining in unix shells. -
Go-Console
GoConsole: the golang component that eases the creation of beautiful command line interfaces. -
subcmd
Another approach to parsing and running subcommands. Works alongside the standard flag package.
Clean code begins in your IDE with SonarLint
Do you think we are missing an alternative of elvish or a related project?
Popular Comparisons
README
Elvish: Expressive Programming Language + Versatile Interactive Shell
Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows.
Despite its pre-1.0 status, it is already suitable for most daily interactive use.
User groups (all connected thanks to Matrix):
Documentation
Documentation for Elvish lives on the official website https://elv.sh, including:
Reference docs, including the language reference, the
elvish
command, and all the modules in the standard libraryBlog posts, including release notes
The source for the documentation is in the website directory.
Building Elvish
Most users do not need to build Elvish from source. Prebuilt binaries for the latest commit are provided for Linux amd64, macOS amd64, macOS arm64, Windows amd64 and many other platforms.
To build Elvish from source, you need
A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows 10.
NOTE: Windows 10 support is experimental.
Go >= 1.18.
To build Elvish from source, follow these steps:
# 1. Start from any directory you want to store Elvish's source code
# 2. Clone the Git repository
git clone https://github.com/elves/elvish
# 3. Change into the repository
cd elvish
# 4. Build and install Elvish
make get
This will install Elvish to $GOBIN
, which defaults to $GOPATH/bin
or
~/go/bin
if $GOPATH
is not set.
To install it elsewhere, override ELVISH_MAKE_BIN
in the make
command:
make get ELVISH_MAKE_BIN=./elvish # Install to the repo root
make get ELVISH_MAKE_BIN=/usr/local/bin/elvish # Install to /usr/local/bin
Experimental plugin support
Elvish has experimental support for building and importing plugins, modules written in Go.
However, since plugin support relies on dynamic linking, it is not enabled in the official prebuilt binaries. You need to build Elvish from source, and make sure that CGo is enabled:
make get CGO_ENABLED=1
To build a plugin, see this example.
Packaging Elvish
See [PACKAGING.md](PACKAGING.md) for notes for packagers.
Contributing to Elvish
See [CONTRIBUTING.md](CONTRIBUTING.md) for notes for contributors.