[![Build status on AppVeyor](https://img.shields.io/appveyor/ci/xiaq/elvish.svg?logo=appveyor&label=windows)](https://ci.appveyor.com/project/xiaq/elvish) <!-- [![Build Status on VSTS](https://img.shields.io/vso/build/xiaq/13c48a6c-b2dc-472e-af6c-169bf448f8e6/1.svg?logo=tfs&label=macOS)](https://xiaq.visualstudio.com/elvish/_build)
Elvish is a friendly and expressive shell for Linux, BSDs, macOS and Windows. Despite being pre-1.0 software, it is already suitable for most daily interactive use.
Regardless of whether you consider yourself a master Elf, feel free to contribute! [CONTRIBUTING.md](CONTRIBUTING.md) has some notes for contributors. You can also join any of these channels to meet fellow developers:
[![Gitter for Developers](https://img.shields.io/badge/gitter-elves/elvish--dev-000000.svg?logo=gitter-white)](https://gitter.im/elves/elvish-dev)
[![Telegram Group for Developers](https://img.shields.io/badge/telegram-@elvish__dev-000000.svg)](https://telegram.me/elvish_dev)
[![#elvish-dev on freenode](https://img.shields.io/badge/freenode-%23elvish--dev-000000.svg)](https://webchat.freenode.net/?channels=elvish-dev)
* Linux, {Free,Net,Open}BSD, macOS, or Windows (Windows support is experimental).
* Go >= 1.10.
If you have not done so, first set up your environment by following [How To Write Go Code](http://golang.org/doc/code.html).
There are two ways to build Elvish. You can build it directly with `go get`:
```sh
go get github.com/elves/elvish
```
However, binaries built in this way lacks some build-time information; for instance, `elvish -version` will show `unknown`. To add such information, use `make`:
```sh
cd `go env GOPATH`/src/github.com/elves/elvish
make get
```
In either cases, the binary is placed in `$GOPATH/bin`. Consider adding it to your `$PATH` if you want to run the Elvish binary you just built by just typing `elvish`.