My current oxidised toolkit
Added 2025-05-08 11:35:48 +0000 UTCHi folks, It's been a bit over 2 years since my Oxidise your Command Line video, and as people ask for updates now and then, I thought I'd finally make a post.
(Video coming very soon, hopefully before RustWeek 2025, which I'm attending next week!)
This patron-only update is to thank you for supporting me! :-)
Standard Tools
The tools I've replaced with modern oxidised versions
Uutils (rust)
A REPLACEMENT FOR ALL GNU COREUTILS
Using the nixos uutils-coreutils-noprefix package, all gnu coreutils are swapped out for aliases to uutils' version
If you're on any other operating system - INCLUDING WINDOWS - you can grab the binary from https://github.com/uutils/coreutils or find it packaged for your package manager
Only do this if you want to be the life of every party, and for every day to be a party
Fish (rust)
The Rust rewrite released in February! https://fishshell.com/blog/new-in-40/)
though a non-standard shell (you wouldn't write shell scripts in it), it's lovely for interactive use
batteries included, even a web-based theme chooser - feels like running other shells with loads of plugins
finally, a shell for the 90s!
Honourable mention: Nushell, a pure rust radical take on what a shell can do
Du-dust (rust)
graphical disk usage analyser
On my machine, 600GB analysed in 2 seconds, compared to 30 for du
Ripgrep (rust)
the first rust program I ever knowingly used, I think!
the fastest grepper in town
has a smart defaults that ignore many files we aren't usually concerned with, even reads the .gitignore file to do so
searches 600GB in 1 minute even on my mid-tier thinkpad, only double what du did
Fd (rust)
a fast, pretty, drop-in replacement for find
bat (rust)
the cat with wings!
syntax highlighting of basically every file type
alias cat=bat
Zoxide (rust)
alias cd=zoxide for a drop-in replacement
but it also knows where you've been, so instead of typing cd /home/username/projects/coolproject/ you can type cd coolproject from anywhere, and it'll usually do what you want
Eza (rust)
Alias ls=eza and you get a drop-in replacement that supports colours and git status
fork of exa, which stopped being developed in 2021
Xh (rust)
A simpler interface than curl
with pretty-printed output
a rust rewrite of the excellent httpie
Zellij (rust)
tmux/screen replacement
great defaults, great UI, great plugin community
Gitui (rust)
nice rust port of lazygit (go), which is also a great option
At the moment I also have an alias set up to commit with meteor (go), which interactively coaches me into writing better git commits in a standard format.
a great alternative to `git commit -am 'updates'
Jj (rust)
This might also be in my future, but you never know with a google project...
Non-standard Cli Tools
I recommend these to anyone because they're COOL!
starship.rs (rust)
A really fast informative shell prompt, works with all shells
Yazi (rust)
the best command-line file manager I've found
it's like ranger but modern
fast, and backgrounds long operations (like copying large files)
vim bindings
IMAGE PREVIEW (if used with kitty, ghostty, etc)
Hyperfine (rust)
genius cli benchmarking tool
runs the command a sensible number of times to eliminate run-to-run variance, with an initial discarded run to warm up any caches
Evil-helix (rust)
a fork of helix, mostly putting the keyboard bindings back to vim
helix is a batteries-included vim-y editor in a single binary, but with backwards keybindings by default
I keep it around for when I break my vim config...
Non-rust Tools that Are Awesome
(but I'd love you to tell me that there are rust rewrites!)
Tmate (c)
tmux fork that instantly share a terminal session with someone by ssh or web
tmate.io run an intermediary server so you don't need to faff with firewall settings
if I'm pairing with my mentees, this is what we use to run cargo bacon etc
Kitty (go)
(or if you prefer more GUI, ghostty, written in zig)
GPU accelerated terminal
IMAGE SUPPORT
used by in yazi and the image.nvim plugin
Fzf (go)
fzf fuzzy finds files so fast it doesn't need to build an index
used as a backend for many programs (like my fav neovim distro, lazynvim.org)
on my mid-tier thinkpad, searches ~100k files/s
skim (rust) might be a good interactive replacement, but I would still keep fzf around for use by other tools
Jq (c)
pretty-print and query json
What am I missing?!
Thank you so much again for your support,
Tris
Comments
I love fish shell. I had been using since way back in 2014. Yup, best not to write shell scripts for fish. It’s likely much better(!) because bash `if` is actually directly using `/usr/bin/if` and `/usr/bin/[` which is what the shell uses (IIRC!) and everything is a string. And we might get less flaky conditionals using `[[` (instead of `[`, or `/usr/bin/[`)
Renoir Boulanger
2025-10-21 12:47:36 +0000 UTCooh, very nice! As I use nixos, I get automatic background upgrading for free, so this tool isn't useful for me SPECIFICALLY, but I'll take a look, thank you!
No Boilerplate
2025-05-15 13:55:30 +0000 UTCNice! After exploring nixos flakes, I've actually come back to nixos 'classic', no flakes for my core config (I use individual flakes like the mozilla rust flake, but not for core), for 2 reasons: 1. Even the most perfect reproducable modern flake system that relies on random git shas is not reproducable, so why bother 2. If you use flakes, you by definition can't use auto-upgrade (auto-upgrade and locked versions are kindof oposites) I value most of all a quiet life, all I want is bleeding edge software that auto-updates and never fails with rollback. I get that with classic nixos. If something's not packaged (and isn't cargo installable) I find something else! :-D I learned a lot from this article https://jade.fyi/blog/flakes-arent-real/
No Boilerplate
2025-05-10 11:28:46 +0000 UTCMagnificent, this list is sensational! I would love to hear more about your experience with Nix/NixOS a year later. :-) Have you perhaps found a program that wasn't packaged with Nix yet and if so have you packaged that program yourself? How was that experience? I'm very curious because we started at nearly the same time, your video came out as I was looking into NixOS independently after using Arch Linux for a few years which started me down a very deep rabbit hole going from Merkle DAGs to shared objects all the way back to Eelco Dolstra's original PhD, very insightful read, by the way. How've you found software development to be on NixOS? I began using Flake templates myself because I got *super* into the whole reproducibility thing. LOL Do you have your NixOS configuration public? If so I'd love to take a look, see if we approach things differently. :-) Kind regards from Denmark, Bastian.
Bastian Asmussen
2025-05-09 10:31:05 +0000 UTCA tool I use daily is topgrade ( https://github.com/topgrade-rs/topgrade ) which automatically runs the update for all the package managers on your system. It supports linux, windows, and macos. It also supports nix (including home-manager), cargo, rustup, arch linux (though paru), winget, choco, scoop, and lots of other stuff. They don't seem to list what they support anywhere other then the help output with the tool. Their documentation ( https://topgrade-rs.github.io/intro.html ) is awful, but the tool is really useful.
semicolon drainpipe
2025-05-09 10:12:31 +0000 UTC