RuairĂ­'s Site

My Dev Tool List 2025

2025-12-02

TL;DR

On Mac:

brew install --cask nikitabobko/tap/aerospace brew install atuin chezmoi gh fzf eza bat ripgrep starship git-delta fd tmux stern mise jj hl

On Linux with apt:

sudo apt install -y \ fzf \ fd-find \ ripgrep \ bat \ tmux # eza (modern ls) sudo apt install -y gpg sudo mkdir -p /etc/apt/keyrings wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list sudo apt update && sudo apt install -y eza # delta (git pager) DELTA_VERSION="0.18.2" wget https://github.com/dandavison/delta/releases/download/${DELTA_VERSION}/git-delta_${DELTA_VERSION}_amd64.deb sudo dpkg -i git-delta_${DELTA_VERSION}_amd64.deb rm git-delta_${DELTA_VERSION}_amd64.deb # mise (version manager) curl https://mise.run | sh # jj (Jujutsu) curl -LsSf https://github.com/jj-vcs/jj/releases/latest/download/jj-x86_64-unknown-linux-musl.tar.gz | tar xzf - -C ~/.local/bin jj # gh (GitHub CLI) curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list sudo apt update && sudo apt install -y gh # Setup chezmoi and pull your dotfiles sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply YOUR_GITHUB_USERNAME

AeroSpace window manager for macOS

It angers me how much time I wasted dragging things around the screen before. If you use a mac, give it a try.

brew install --cask nikitabobko/tap/aerospace

Atuin modern shell history

Sync your shell history across devices. Only useful if you're working on multiple machines, which I do and this is extremely useful.

brew install atuin echo 'eval "$(atuin init zsh)"' >> ~/.zshrc

Atuin also comes with a pretty cool desktop app which I love the idea of but have yet to do anything useful with.

Chezmoi dotfile and config sync

I regularly work on at least 3 different machines. This makes everything way easier to keep in sync and is a lot better than the custom git setup I made a few times.

brew install chezmoi chezmoi init chezmoi add ~/.bashrc # or .zshrc or whatever

GitHub CLI

Obviously, if you use GitHub. Makes everything way easier.

brew install gh

Example, creating a new repo:

gh repo create cool-repo --public --source=. --remote=origin

fzf fuzzy finder cli

When you've got bad memory and can't type, like me, this is a very useful tool.

brew install fzf

Then you can use Ctrl-R to search.

eza modern ls replacement

A common theme is I like colours and icons, particularly in the terminal. eza is a modern replacement for ls with all that built in.

brew install eza

bat a cat clone with syntax highlighting and git integration

Cat a file and see colours. Also shows git changes inline.

brew install bat

I alias cat to bat. You can do this with atuin's dotfile sync if you're using that:

atuin dotfiles alias add cat bat

ripgrep fast grep replacement

Something so impressively fast you can't help but use it.

brew install ripgrep

starship cross-shell prompt

I just like the colours and things. Spent too much time configuring it maybe but I like it.

brew install starship

git-delta git pager with syntax highlighting and side-by-side diffs

If you use git diff a lot, this will save your eyes.

brew install git-delta

Update your ~/.gitconfig:

[core] pager = delta [interactive] diffFilter = delta --color-only [delta] navigate = true # use n and N to move between diff sections # delta detects terminal colors automatically; set one of these to disable auto-detection # dark = true # light = true [merge] conflictStyle = zdiff3

fd find replacement

I have never remembered the correct arguments for find. This is a modern replacement that I like.

brew install fd

e.g. from the docs:

> cd /etc > fd '^x.*rc$' X11/xinit/xinitrc X11/xinit/xserverrc

tmux terminal multiplexer

It took me way too long to get on the tmux train. What was I even doing before?

brew install tmux
# Start a session in a directory tmux new-session -d -s my-session -c ~/some-dir # Attach to session tmux attach -t my-session

Leave ssh sessions, or anything really, running in the background and come back to them later.

stern multi-pod log tailing for Kubernetes

The amount of times I've opened a bunch of terminal windows trying to tail logs in a multi instance setup. This is much easier than any of the hacky solutions I came up with before.

brew install stern

mise version manager for CLI tools

I was a chef briefly in a past life so the name speaks to me. This is a tool like nvm, pyenv etc. but supports a collection of CLI tools.

brew install mise

Example installing python 3.14 globally:

mise use --global python@3.14

jj a version control system that works with git

This is the most recent addition for me. I don't know why I like it yet. I just know I do.

brew install jj

Setting it up in an existing git repo:

jj git init --colocate

hl high-performance log viewer

No more getting wrekt by huge log files.

brew install hl
hl /path/to/huge/logfile.log # or many log files hl /path/to/logs/*.log

lazyvim Neovim config

I'm forever trying to use vim and then giving up, falling back to VSCode. I think this one is starting to stick.

Coding Agents

Of course. Wrote a detailed post about how I'm using those: https://ruarfff.com/posts/a-gaggle-of-agents