elvish alternatives and similar packages
Based on the "Standard CLI" category.
Alternatively, view elvish alternatives based on common mentions on social networks and blogs.
-
survey
DISCONTINUED. A golang library for building interactive and accessible prompts with full support for windows and posix terminals. -
The Platinum Searcher
A code search tool similar to ack and the_silver_searcher(ag). It supports multi platforms and multi encodings. -
flaggy
Idiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies. -
flag
Flag is a simple but powerful command line option parsing library for Go support infinite level subcommand -
go-getoptions
Fully featured Go (golang) command line option parser with built-in auto-completion support. -
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.
SaaSHub - Software Alternatives and Reviews
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.
License
All source files use the BSD 2-clause license (see [LICENSE](LICENSE)), except for the following:
Files in [pkg/diff](pkg/diff) and [pkg/rpc](pkg/rpc) are released under the BSD 3-clause license, since they are copied from Go's source code. See [pkg/diff/LICENSE](pkg/diff/LICENSE) and [pkg/rpc/LICENSE](pkg/rpc/LICENSE).
Files in [pkg/persistent](pkg/persistent) and its subdirectories are released under EPL 1.0, since they are partially derived from Clojure's source code. See [pkg/persistent/LICENSE](pkg/persistent/LICENSE).
Files in [pkg/md/spec](pkg/md/spec) are released under the Creative Commons CC-BY-SA 4.0 license, since they are derived from the CommonMark spec. See [pkg/md/spec/LICENSE](pkg/md/spec/LICENSE).
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. Windows 10 support is experimental.
Go >= 1.18.
To build Elvish from source, run one of the following commands:
go install src.elv.sh/cmd/elvish@master # Install latest commit
go install src.elv.sh/cmd/elvish@latest # Install latest released version
go install src.elv.sh/cmd/[email protected] # Install a specific version
Controlling the installation location
The
go install
command installs Elvish to $GOBIN
; the binary name is elvish
. You can
control the installation location by overriding $GOBIN
, for example by
prepending env GOBIN=...
to the go install
command.
If $GOBIN
is not set, the installation location defaults to $GOPATH/bin
,
which in turn defaults to ~/go/bin
if $GOPATH
is also not set.
The installation directory is probably not in your OS's default $PATH
. You
should either either add it to $PATH
, or manually copy the Elvish binary to a
directory already in $PATH
.
Building a variant
Elvish has several build variants with slightly different feature sets. For
example, the withpprof
build variant has
profiling support.
These build variants are just alternative main packages. For example, to build
the withpprof
variant, run the following command (change the part after @
to
get different versions):
go install src.elv.sh/cmd/withpprof/elvish@master
Building from a local source tree
If you are modifying Elvish's source code, you will want to clone Elvish's Git repository and build Elvish from the local source tree instead. To do this, run the following from the root of the source tree:
go install ./cmd/elvish
There is no need to specify a version like @master
; when inside a source tree,
go install
will always use the whatever source code is present.
See [CONTRIBUTING.md](CONTRIBUTING.md) for more notes for contributors.
Building with experimental plugin support
Elvish has experimental support for building and importing plugins, modules written in Go. It relies on Go's plugin support, which is only available on a few platforms.
Plugin support requires building Elvish with cgo. The official prebuilt binaries are built without cgo for compatibility and reproducibility, but by default the Go toolchain builds with cgo enabled.
If you have built Elvish from source on a platform with plugin support, your Elvish build probably already supports plugins. To force cgo to be used when building Elvish, you can do the following:
env CGO_ENABLED=1 go install ./cmd/elvish
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.
Reporting security issues
See [SECURITY.md](SECURITY.md) for how to report security issues.
*Note that all licence references and agreements mentioned in the elvish README section above
are relevant to that project's source code only.