Elvish review
Elvish pairs an interactive shell with its own scripting language and package manager.
Reviewed by iTechGuides Editors · Editorial team · Updated Oct 2026
Elvish is a command-line shell and scripting language for people who want an interactive command environment alongside a language designed for scripts. It supports Linux, BSD, macOS, and Windows, and is free and open source. Its interactive features include a read-eval-print loop with an editor, command and directory history, a built-in file manager, programmable command-argument completion, and an interactive startup RC file. Scripts can run from a file or a command-line argument.
The scripting language is a defining part of the product rather than an add-on: it supports data structures and functional programming, and reports certain errors before code executes. That combination may suit users who want to write more structured shell scripts while keeping interactive tools close at hand. Elvish is self-hosted, with installation instructions and reference documentation published on its website; support channels are community and docs. It is a fit for individual users through enterprise teams, though those who prefer to stay with a familiar shell language may find the separate language a poor match.
Elvish includes epm for installing and managing third-party packages from code repositories. It does not use a central package registry, so its package workflow differs from shells or development environments organized around one. That tradeoff matters for users who want an integrated package manager but expect a centralized catalog. Choose Elvish for its blend of interactive editing, scripting, history, file management, and programmable completion across supported platforms; consider another shell if compatibility with an existing shell language or a central package registry is a priority. Its free availability makes it possible to evaluate without a paid tier.
Elvish pros and cons
- Where it wins
- Interactive editor, command and directory history, and built-in file manager
- Elvish scripting supports data structures and functional programming
- epm manages third-party packages, and completion is programmable
- Where it doesn't
- epm uses code repositories rather than a central package registry
- Requires learning Elvish for its shell scripting
- Support channels are community and documentation
Elvish fact sheet, pricing and score →
Advertiser disclosure: iTechGuides is reader-supported. Vendors can pay for top positions in our rankings and for a place on other products' pages, and we may earn a commission when you click some links. How we rank.
Last updated · How we research and update