Elvish is an expressive programming language and a versatile interactive shell, combined into one seamless package. It runs on Linux, BSDs, macOS and Windows.
Enable JavaScript to see demos as slides.
Text pipelines are intuitive and powerful. However, if your data have inherently complex structures, processing them with the pipeline often requires a lot of ad-hoc, hard-to-maintain text processing code.
Pipelines in Elvish can carry structured data, not just text. You can stream lists, maps and even functions through the pipeline.
<div class="demo-col demo-description">
<h2>Intuitive Control Structures</h2>
<p>
If you know programming, you probably already know how
<code>if</code> looks in C. So why learn another syntax?
</p>
<p>
Elvish comes with a standard set of control structures: conditional
control with <code>if</code>, loops with <code>for</code> and
<code>while</code>, and exception handling with <code>try</code>. All
of them have a familiar C-like syntax.
</p>
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/control-structures
</div>
<div class="demo-col demo-description">
<h2>Directory History</h2>
<p>
Do you type far too many <code>cd</code> commands? Do you struggle to
remember which <code>deeply/nested/directory</code> your source codes,
logs and configuration files are?
</p>
<p>
Backed by a real database, Elvish remembers all the directories you
have been to, all the time. Just press <kbd>Ctrl-L</kbd>
and search, as you do in a browser.
</p>
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/location-mode
</div>
<div class="demo-col demo-description">
<h2>Command History</h2>
<p>
Want to find the magical <code>ffmpeg</code> command that you used to
transcode a video file two months ago, but it is buried under a
million other commands?
</p>
<p>
No more cycling through history one command at a time.
Press <kbd>Ctrl-R</kbd> and start searching your entire
command history.
</p>
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/histlist-mode
</div>
<div class="demo-col demo-description">
<h2>Built-in File Manager</h2>
<p>
Want the convenience of a file manager, but can't give up the power of
a shell?
</p>
<p>
You no longer have to make a choice. Press
<kbd>Ctrl-N</kbd> to start exploring directories and
preview files, with the full power of a shell still under your
fingertip.
</p>
</div>
<div class="demo-col demo-ttyshot">
@ttyshot home/navigation-mode
</div>