3 Cool Terminal Tools Written In Rust

Here are 3 nice visual changing terminal tools written in Rust that I have integrated into my workflow. Coding requires spending most of your time looking at your screen, it should at least look visually pleasing. All of the packages mentioned here are compatible Linux, WSL, and Mac. They are very easy to implement, as they pretty much work out of the box after installation. The only configuring you would want to do is in your ~/.bashrc (or whichever shell’s rc you use), as 2 of these packages will replace some of your main commands.


This is a neat tool that changes your prompt on all common shells. It is very customizable with a toml file ( ~/.config/starship/starship.toml ), and has hot reload functionality on the config file as well. The main useful features I’ve noticed so far is that it can display prompt command’s runtime, language environment, git branch, and also git status. Check out installation here. You can also check my dotfiles on my github to see some of the customization I do to my starship prompt.

Note: My dotfiles will change over time, feel free to watch or star it for updates.

Starship with Python and Node environments


The cat and less replacement. This tool will do both cat or less , depending on the current size of your terminal. So if the file to display requires you to scroll, bat will less the file. Visa-versa, bat will cat a file if it can be displayed within the terminal height. It also can syntax color the text in terminal as well, which makes reading files a lot easier if it is code or a config file. Github link here.

bat will less a file if it does NOT fit in the terminal window
bat will cat the entire file if it fits in the terminal window

Below is my alias for replacing cat. I manually enter the style since it has line numbers by default, and that interferes with copy and pasting the output from my terminal.

alias cat='bat --style=header,grid'


The ls and tree replacement. This tool makes customizing the ls output a lot easier, which lets you remove parts of the output with a simple command flag. It also color codes the permissions, which makes it a little bit easier to read. By default, exa will also show a file’s size in k, M, and G instead of only k. Github link here.

exa vs ls
Having colors on tree makes it easier on the eyes to see which files are in which directory.

Below are my aliases for replacing ls and tree. The -F flag adds a slash at the end of directories.

# .bashrc
alias ll="exa -Fl"
alias lll="exa -Fla"
alias l="exa -F"
alias tree="exa --tree -F"

Like my content? GithubTwitterMediumSupport Me



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store