https://elv.sh elvish * get * learn * ref * blog Elvish (noun): 1. A powerful scripting language. 2. A shell with useful interactive features built-in. 3. A statically linked binary for Linux, BSDs, macOS or Windows. Download Learn GitHub Powerful modern shell scripting Write readable and maintainable scripts - no cryptic operators, no double-quoting every variable. jpg-to-png.elv (explainer) for x [*.jpg] { gm convert $x (str:trim-suffix $x .jpg).png } Power up your workflows with data structures and functional programming. update-servers-in-parallel.elv (explainer) var hosts = [[&name=a &cmd='apt update'] [&name=b &cmd='pacman -Syu']] # peach = "parallel each" peach {|h| ssh root@$h[name] $h[cmd] } $hosts Catch errors before code executes. Terminal: elvish (explainer) ~> var project = ~/project ~> rm -rf $projetc/bin compilation error: variable $projetc not found Run it anywhere Elvish comes in a single statically linked binary for your laptop, your server, your PC, or your Raspberry Pi. Terminal: Raspberry Pi ~> wget dl.elv.sh/linux-arm64/elvish-HEAD.tar.gz ~> tar -C /usr/local/bin -xvf elvish-HEAD.tar.gz elvish ~> elvish Use Elvish in your CI/CD pipelines. Convenient shell syntax and modern programming language - why not both? github-actions.yaml steps: - uses: elves/setup-elvish@v1 with: elvish-version: HEAD - name: Run something with Elvish shell: elvish {0} run: | echo Running Elvish $version Interactive shell with batteries included Press Ctrl-L for directory history, and let Elvish find java/com/acme /project for you. Terminal: elvish - directory history (more) ~> elf@host LOCATION j 10 ~/java/com/acme/project/utilities 10 ~/java/com/acme/project 10 /opt/java Press Ctrl-R for command history. That beautiful ffmpeg command you crafted two months ago is still there. Terminal: elvish - command history (more) ~> elf@host HISTORY (dedup on) ff Ctrl-D dedup 34 ffmpeg -i input.mp4 -c:v libx264 -c:a aac outpu 35 ffmpeg -i input.mp4 -vf "transpose=1,scale=640: Press Ctrl-N for the builtin file manager. Explore directories and files without leaving the comfort of your shell. Terminal: elvish - file manager (more) ~/elvish> elf@host NAVIGATING Ctrl-H hidden Ctrl-F filter bash 1.0-release.m 1.0 has not been released y elvis CONTRIBUTING. zsh Dockerfile LICENSE Makefile | PACKAGING.md | README.md | SECURITY.md | Chat with the community Join any of the following channels - they are all bridged together thanks to Matrix! * Telegram: Elvish user group * Discord: Elvish Shell * Matrix: #users:elv.sh * IRC: #elvish on Libera Chat * Gitter: elves/elvish More resources * Try Elvish directly from the browser (beta) * Awesome Elvish: Official list of unofficial Elvish modules * @ElvishShell on Twitter