github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/README.md (about) 1 # Elvish: Expressive Programming Language + Versatile Interactive Shell 2 3 [![CI status](https://github.com/elves/elvish/workflows/CI/badge.svg)](https://github.com/elves/elvish/actions?query=workflow%3ACI) 4 [![FreeBSD & gccgo test status](https://img.shields.io/cirrus/github/elves/elvish?logo=Cirrus%20CI&label=CI2)](https://cirrus-ci.com/github/elves/elvish/master) 5 [![Test Coverage](https://img.shields.io/codecov/c/github/elves/elvish/master.svg?logo=Codecov&label=coverage)](https://app.codecov.io/gh/elves/elvish/branch/master) 6 [![Go Reference](https://pkg.go.dev/badge/github.com/markusbkk/elvish@master.svg)](https://pkg.go.dev/github.com/markusbkk/elvish@master) 7 [![Packaging status](https://repology.org/badge/tiny-repos/elvish.svg)](https://repology.org/project/elvish/versions) 8 [![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/ElvishShell) 9 10 Elvish is an expressive programming language and a versatile interactive shell, 11 combined into one seamless package. It runs on Linux, BSDs, macOS and Windows. 12 13 Despite its pre-1.0 status, it is already suitable for most daily interactive 14 use. 15 16 **Visit the official website https://elv.sh for prebuilt binaries, blog posts, 17 documentation and other resources.** 18 19 User groups (all connected thanks to [Matrix](https://matrix.org)): 20 [![Gitter](https://img.shields.io/badge/gitter-elves/elvish-blue.svg?logo=gitter-white)](https://gitter.im/elves/elvish) 21 [![Telegram Group](https://img.shields.io/badge/telegram-@elvish-blue.svg)](https://telegram.me/elvish) 22 [![#elvish on libera.chat](https://img.shields.io/badge/libera.chat-%23elvish-blue.svg)](https://web.libera.chat/#elvish) 23 [![#users:elves.sh](https://img.shields.io/badge/matrix-%23users:elv.sh-blue.svg)](https://matrix.to/#/#users:elves.sh) 24 25 ## Building Elvish 26 27 Most users do not need to build Elvish from source. Prebuilt binaries for the 28 latest commit are provided for 29 [Linux amd64](https://dl.elv.sh/linux-amd64/elvish-HEAD.tar.gz), 30 [macOS amd64](https://dl.elv.sh/darwin-amd64/elvish-HEAD.tar.gz), 31 [Windows amd64](https://dl.elv.sh/windows-amd64/elvish-HEAD.zip) and 32 [many other platforms](https://elv.sh/get). 33 34 To build Elvish from source, you need 35 36 - A supported OS: Linux, {Free,Net,Open}BSD, macOS, or Windows 10. 37 38 **NOTE**: Windows 10 support is experimental. 39 40 - Go >= 1.16. 41 42 To build Elvish from source, follow these steps: 43 44 ```sh 45 # 1. Start from any directory you want to store Elvish's source code 46 # 2. Clone the Git repository 47 git clone https://github.com/elves/elvish 48 # 3. Change into the repository 49 cd elvish 50 # 4. Build and install Elvish 51 make get 52 ``` 53 54 This will install Elvish to `~/go/bin` (or `$GOPATH/bin` if you have set 55 `$GOPATH`). You might want to add the directory to your `PATH`. 56 57 To install it elsewhere, override `ELVISH_MAKE_BIN` in the `make` command: 58 59 ```sh 60 make get ELVISH_MAKE_BIN=./elvish # Install to the repo root 61 make get ELVISH_MAKE_BIN=/usr/local/bin/elvish # Install to /usr/local/bin 62 ``` 63 64 ### Experimental plugin support 65 66 Elvish has experimental support for building and importing plugins, modules 67 written in Go. 68 69 However, since plugin support relies on dynamic linking, it is not enabled in 70 the official prebuilt binaries. You need to build Elvish from source, with 71 `ELVISH_PLUGIN_SUPPORT=1`: 72 73 ```sh 74 make get ELVISH_PLUGIN_SUPPORT=1 75 ``` 76 77 To build a plugin, see this [example](https://github.com/elves/sample-plugin). 78 79 ## Packaging Elvish 80 81 See [PACKAGING.md](PACKAGING.md) for notes for packagers. 82 83 ## Contributing to Elvish 84 85 See [CONTRIBUTING.md](CONTRIBUTING.md) for notes for contributors.