The BEST Fully Rust-based Terminal Setup

Nick Anthony
5 min readNov 6, 2022

--

A quick overview of an entire developer setup using only the terminal and Rust-based tools.

I want this to be quick so I won’t be going over any of the tools in depth or installation methods, instead I will simply refer to each tool’s site which I think does a great job of showcasing its utility. I’ll also aim to provide general fallbacks in case you aren’t on the Rust hype-train yet… but you should be! The only thing in this entire setup that isn’t Rust-based is my font, which I use Fira Code Retina and that is because you can’t make a font from a programming language… or can you?

Why Rust and why terminal-only?

Before we get started one very biased note on why Rust-based tools. Rust is a memory safe language that is revolutionizing many tools previously written in C and C++. Trust me on this one.

As for the second question… terminal only is hard to do and takes a serious commitment. I do think it makes you a more flexible developer but the days of needing to use Vim on a remote server are over… VS Code and JetBrains do this for us now. What it does do is simplify your life. No more managing apps, no more memory hogging IDEs (looking at you JetBrains — even FLEET), no more Markdown editors like iAWriter… just you and your terminal.

Alright, enough chit-chat, let’s get started! We will start on the outside and work our way inwards, even giving some bonus tools at the lower level so stick around for that!

The Terminal

First and foremost we need a terminal emulator. This one seemed pretty straightforward for me to choose on Mac. Warp. Warp is amazing and they have a bunch of features you would NOT expect from your terminal that are really helpful. A few to note:

  • Blocks
  • Code Completion
  • AI generated commands
  • Command Palatte

The only thing I’m not a huge fan of in Warp is the bottom-based interface… simply meaning I’d prefer to have my prompt at the top and previously executed cells below it.

If you aren’t on Mac or prefer a cross-platform emulator, I have also tried and quite like Alacritty.

If you don’t care about Rust-based tooling, I’d recommend iTerm on Mac its menu-based customization is simpler than Alacrity’s file-based config and the customization options are near endless.

The Terminal Multiplexer

Zellij! Zellij is a tmux alternative written in Rust. One of its key benefits to me is that it comes with navigation buttons that can be toggled on/off so that you can see how to get around your panes and tabs!

It also comes with built-in layout supports.

The Shell

Nushell! This shell is new (get it?) on the market and blazing fast! It takes a structured data approach to shell and brings modern technological expectations (including built in fetch to the shell). Borrowing some ideas from Powershell, it consumes structured data and even allows you to open and interact with files as tables!

The only alternative I’d recommend to Nushell is Fish. Get off bash and zsh already. Script in bash, but interactive terminal use should be more user-friendly.

Bonus 1: Nushell Tables

This is our first bonus! Nushell tables are actually data-tables! If you are familiar with Python they are basically pandas tables. EXCEPT, instead of using pandas, they use @polars which is a Rust-based data frame library! So (almost) everything you can do in polars you can do to your Nushell tables!

The Prompt

Starship! This prompt is blazingly fast, works with many popular shells, and is configurable to be either very minimal (if that’s your thing) or very informative. OOTB it gives you great information like language versions, package versions, and git status!

As an alternative I would recommend oh-my-zsh/fish (although its slow and full of bloat) depending on your shell… but please just use Starship.

Bonus 2: Better ls

Exa! Exa takes your ls and turns it into a beautiful grid with icons. I use Hack Nerd Font for these icons.

No alternative to suggest as standard ls is just plain.

The Text Editor

Helix! Enough said! Helix is great, I even notice performance improvements over, say, @LunarVim which is a Neovim pre-built configuration. Helix also has a nice command menu to help you get started. Similar to Vim, but using Kakoune style modal editing so if you are switching from Vim, there may be some slight changes you need to make.

The only alternative I’d recommend here is LunarVimf which is Lua based and is quite nice but does get sluggish with plugins which Helix does not.

Bonus Speed Round

BONUS SPEED ROUND! All these great CLI tools are powered by Rust and improve on tools you probably use everyday!

@links to all

Conclusions

Overall all of these tools are great. The only downside is some of them are quite new. I do have difficulties sometimes getting nutshell colors working the way I like and Zellij doesn’t play very well with Warp at the moment. My Zellij colors could also use some improvement.

I hope you liked this style article and found it informative! Go try out some of these tools, hopefully you haven’t heard of some of them!

If you read anything interesting or learned of a new tool, consider giving this a clap and following me for more articles like this!

--

--