Fish shell

Nice defaults, feels nice to use.


ripgrep (rg)

Grep replacement. Better performance, respects .gitignore by deafult, visually appealing output format, and the dev seems nice.

Find the foo function in go codebase(s)

rg -tgo 'fn foo('

Find the projects using react as a dependency in my code directory

rg -tjson '"react"'

Find usages of the unsafe keyword in rust projects

rg -trust unsafe

Show the number of occurences of a match on a per-file basis without showing the matches themselves

rg -c foo



Nice alternative to find. More convenient syntax, respects .gitignore, supports case-sensitivity & regex. If I know the filename or part of it I’ll often use fd over the operating system search.

Find all the javascript projects

fd package.json



Quickly inspect file contents with syntax highlighting & scrolling from the command line.

Preview a readme

bat README.md



Runs arbitrary commands when files change. Useful for building/compiling in an interative manner.

Run a file on code change

ls | entr node index.js



ls 2.0. Coloured output for quick parsing by humans, human friendly file sizes, git integration, tree view. I have l aliased to exa -al on every computer I use.



This is a tool I wrote myself. It’s for cleaning up temporary/build artifacts from software projects, like node_modules in node or target in rust. These artifact directories can easily run in the multi-gigabyte range, and having a handful of those kinds of projects can chew through a surprising amount of space.

I’ll run it perhaps once a month and clean up all the projects I’m not actively working on. This usually gets me 2-20 gb free space.

Especially handy if you want to back up/copy a bunch of projects. Your drives will appreciate you 🙂.


Noise TerrainBevy Best PracticesThree years of BevyHomeProjectsRust compile timesTools I like