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 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 library; -
Blog posts, including release notes.
The source for the documentation is in the website directory.
Most users do not need to build Elvish from source. Prebuilt binaries for the latest commit are provided for Linux amd64, macOS amd64, 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.16.
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 ~/go/bin
(or $GOPATH/bin
if you have set
$GOPATH
). You might want to add the directory to your PATH
.
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
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, with
ELVISH_PLUGIN_SUPPORT=1
:
make get ELVISH_PLUGIN_SUPPORT=1
To build a plugin, see this example.
See PACKAGING.md for notes for packagers.
See CONTRIBUTING.md for notes for contributors.