# Install elvish with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, winget

Friendly and expressive shell. Version 0.21.0 via Homebrew; verified 2026-07-26. Also installable with debian: sudo apt install elvish.

## Install

```sh
sudo av install brew:elvish
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install elvish
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install elvish
```

  Evidence: MacPorts ports tree: shells/elvish/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add elvish
```

  Evidence: Alpine Linux edge package indexes: elvish from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install elvish
```

  Evidence: Debian stable package indexes: elvish from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install elvish
```

  Evidence: Fedora Rawhide package metadata: elvish from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#elvish
```

  Evidence: nixpkgs package indexes: pkgs/by-name/el/elvish/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S elvish
```

  Evidence: Arch Linux sync databases: elvish from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

### Windows

- Scoop (92%):

```sh
scoop install main/elvish
```

  Evidence: Scoop official bucket manifest trees: bucket/elvish.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id elves.elvish -e
```

  Evidence: Windows Package Manager source index: elves.elvish from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:elvish
- **Package manager:** Homebrew
- **Version:** 0.21.0
- **Source summary:** Friendly and expressive shell
- **Homepage:** <https://elv.sh/>
- **Repository:** <https://github.com/elves/elvish>
- **Last updated:** 2026-07-26T04:11:37+02:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- elvish (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 0.21.0
## Project history and usage

Elvish is a Unix-style interactive shell and scripting language with structured values, lexical scoping, and built-in interactive features. The project describes itself as both a powerful scripting language and a shell, distributed as a statically linked binary for Linux, BSDs, macOS, and Windows.

### Project history

Elvish has developed as a pre-1.0 shell that accepts breaking changes while remaining usable for scripting and interactive work. Its release notes show a long-running sequence from older 0.x releases to 0.21.0 in 2024, with the project explicitly warning users that compatibility can still change before 1.0.

### Adoption history

Adoption has been strongest among shell users interested in a more structured alternative to traditional POSIX-family shells. The official README points to packaging status, package/tool lists, and multiple community chat channels, while the input package facts show it packaged across Homebrew, Debian, Fedora, Arch, Nix, MacPorts, Scoop, winget, and other systems.

### How it is used

Elvish is used either as a login-style interactive shell or as a scripting language. Users customize interactive startup with rc.elv under the XDG config directory, keep libraries under elvish/lib search paths, and write scripts that can use Elvish's value channels, maps, functions, exceptions, and pipelines.

### Why package nerds care

Elvish is interesting in package-manager terms because it is a single shell binary with cross-platform packaging but a non-POSIX language model. Installing it from a package manager is often the first experiment: users can try a modern shell without replacing system sh, then choose whether to adopt its rc.elv and library conventions.

### Timeline

- 2021: Elvish 0.17.0 release notes are published.
- 2022: Elvish 0.18.0 release notes are published.
- 2023: Elvish 0.19.1 release notes are published.
- 2024: Elvish 0.20.x and 0.21.0 release notes are published.

### Related projects

- Elvish belongs to the family of alternative shells such as fish, nushell, and xonsh, but its official documentation emphasizes its own typed value model, lexical scoping, and interactive shell features rather than POSIX compatibility.

### Sources

- <https://github.com/elves/elvish#readme>
- <https://elv.sh/ref/command.html>
- <https://elv.sh/ref/language.html>
- <https://elv.sh/blog/>
- <https://github.com/elves/elvish/releases>


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: ~/.config/elvish/rc.elv, ~/.config/elvish/lib/*.elv
## Other Package-Manager Records

- Debian apt - elvish - 0.21.0-2+b7: normalized package name match | Debian stable package indexes: elvish from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Powerful scripting language & versatile interactive shell | https://elv.sh
- Nix - elvish: normalized package name match | nixpkgs package indexes: pkgs/by-name/el/elvish/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - elvish - 0.20.1-1build1: normalized package name match | Ubuntu 24.04 LTS package indexes: elvish from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Expressive programming language and versatile interactive shell | https://elv.sh
- apk - elvish - 0.21.0-r17: normalized package name match | Alpine Linux edge package indexes: elvish from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Friendly and expressive Unix shell | https://elv.sh/
- dnf - elvish - 0.21.0-14.fc45: normalized package name match | Fedora Rawhide package metadata: elvish from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Powerful scripting language & versatile interactive shell | https://github.com/elves/elvish
- pacman - elvish - 0.21.0-1: normalized package name match | Arch Linux sync databases: elvish from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Versatile interactive shell & powerful scripting language in one | https://elv.sh
- MacPorts - elvish: normalized package name match | MacPorts ports tree: shells/elvish/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/elvish: normalized package name match | Scoop official bucket manifest trees: bucket/elvish.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - elves.elvish: normalized package name match | Windows Package Manager source index: elves.elvish from https://cdn.winget.microsoft.com/cache/source.msix


## Combined YAML source

View the package source record on GitHub. [combined/elvish.yml](https://github.com/mxcl/pkgdb/blob/main/combined/elvish.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
