A curated list of command-line tools written in Rust
(This list is also available on GitHub, where it'll likely be updated more regularly.)
Note that I have not tried all of these personally, and cannot and do not vouch for all of the tools listed here. In most cases, the descriptions here are copied directly from their code repos. Some may have been abandoned. Investigate before installing/using.
The ones I use regularly include: bat, dust, fd, fend, hyperfine, miniserve, ripgrep, just, cargo-audit and cargo-wipe.
- atuin: "Magical shell history"
- bandwhich: Terminal bandwidth utilization tool
- bat: A replacement for
catthat provides syntax highlighting and other features.
- bottom: Yet another cross-platform graphical process/system monitor.
- broot: A new way to see and navigate directory trees
- choose: A human-friendly and fast alternative to
- counts: "A tool for ad hoc profiling"
- delta: A syntax-highlighting pager for git,
diff, and grep output
- difftastic: A syntax-aware diff
- dog: A command-line DNS client
- dua: "View disk space usage and delete unwanted data, fast."
- dust: "a more intuitive version of
- exa: "A modern version of
- fclones: an "efficient duplicate file finder"
- fd: "A simple, fast and user-friendly alternative to
- felix: tui file manager with vim-like key mapping
- ffsend: "Easily and securely share files from the command line. A fully featured Firefox Send client."
- frum: A modern Ruby version manager written in Rust
- fselect: "Find files with SQL-like queries"
- git-cliff: "A highly customizable Changelog Generator that follows Conventional Commit specifications"
- gptman: "A GPT manager that allows you to copy partitions from one disk to another and more"
- grex: A command-line tool and library for generating regular expressions from user-provided test cases
- himalaya: Command-line interface for email management
- htmlq: Like jq, but for HTML. Uses CSS selectors to extract bits of content from HTML files.
- hyperfine: Command-line benchmarking tool
- inlyne: "GPU powered yet browsless tool to help you quickly view markdown files"
- jless: "command-line JSON viewer designed for reading, exploring, and searching through JSON data."
- jql: A JSON query language CLI tool
- just: Just a command runner (seems like an alternative to
- legdur: A "simple CLI program to compute hashes of large sets of files in large directory structures and compare them with a previous snapshot."
- lemmeknow: Identify mysterious text or analyze hard-coded strings from captured network packets, malwares, and more.
- lfs: A Linux utility to get information on filesystems; like
- lsd: The next generation
lscommand (though personally I prefer
- macchina: Fast, minimal and customizable system information frontend.
- mdBook: Create books from markdown files. Like Gitbook but implemented in Rust
- mdcat: Fancy
- miniserve is "a CLI tool to serve files and dirs over HTTP". I use this as a replacement for
python -m SimpleHTTPServer, or whatever the latest version of that command is.
- monolith: Save complete web pages as a single HTML file
- ouch: "Painless compression and decompression for your terminal"
- pastel: A command-line tool to generate, analyze, convert and manipulate colors.
- pipr: "A tool to interactively write shell pipelines."
- procs: A modern replacement for
pswritten in Rust
- qsv: CSVs sliced, diced & analyzed. (A fork of
- rargs: xargs + awk with pattern matching support.
- rip: A safe and ergonomic alternative to
- ripgrep: A faster replacement for GNU’s
grepcommand. This tool is very good. See ripgrep-all to search PDFs, E-Books, Office documents, zip, tar.gz, etc.
- ripsecrets: Find secret keys in your code before commiting them to git. I've contributed to this one!
- rnr: "A command-line tool to batch rename files and directories"
- sd: Intuitive find & replace CLI (
- skim: A command-line fuzzy finder.
- tealdear: A very fast implementation of
- teehee: "A modal terminal hex editor"
- tin-summer: Find build artifacts that are taking up disk space
- tokei: Count your (lines of) code, quickly
- topgrade: Upgrade all of your tools
- watchexec: Execute commands in response to file modifications. (Note: See cargo watch if you want to watch a Rust project.)
- xcp: An extended
- xh: "Friendly and fast tool for sending HTTP requests"
- xsv: A fast CSV command line toolkit written in Rust. (Last updated in 2018)
- zoxide: A smarter
- eva: "a calculator REPL, similar to bc(1)"
- fend: "Arbitrary-precision unit-aware calculator" (Documentation). I prefer this calculator.
- Kalker: "a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals"
- printfn: "Arbitrary-precision unit-aware calculator"
Tools to help working with Rust lang itself
- bacon: A background Rust code checker
- cargo watch: Watches over your Cargo project's source.
- cargo-audit: Audit Cargo.lock files for crates with security vulnerabilities reported to the RustSec Advisory Database. See also: cargo-deny.
- cargo-binstall: "Binary installation for [R]ust projects"
- cargo-crev: A cryptographically verifiable code review system for the cargo (Rust) package manager.
- cargo-dist: "shippable application packaging for Rust"
- cargo-geiger: Detects usage of unsafe Rust in a Rust crate and its dependencies.
- cargo-wipe: Cargo subcommand that recursively finds and optionally wipes all "target" or "node_modules" folders that are found in the current path. See also: kondo.
- kani-verifier: A "bit-precise model checker for Rust."
Terminal emulators / terminal-related
- Alacritty: A cross-platform, OpenGL terminal emulator.
- Wezterm: A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
- Starship: Customizable prompt for any shell.
- Zellij: A terminal workspace with batteries included.
Text editors written in Rust
See this "Battle of the [Rust] text editors" post from 2022.
- himalaya: "Command-line interface for email management"
Other lists of Rust command line utilities
exa aliases I use in my
if hash exa 2>/dev/null; then alias ls='exa' alias l='exa -l --all --group-directories-first --git' alias ll='exa -l --all --all --group-directories-first --git' alias lt='exa -T --git-ignore --level=2 --group-directories-first' alias llt='exa -lT --git-ignore --level=2 --group-directories-first' alias lT='exa -T --git-ignore --level=4 --group-directories-first' else alias l='ls -lah' alias ll='ls -alF' alias la='ls -A' fi
Shameless plug: Tools that I've written in Rust
- Tidy: A command-line tool for combining and cleaning large word list files.
- Medic: Check the "health" of passwords in a KeePass database