DEV Community

Ruairí O'Brien
Ruairí O'Brien

Posted on • Originally published at ruarfff.com

My Dev Tool List 2025

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

GitHub CLI

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

brew install gh
Enter fullscreen mode Exit fullscreen mode

Example, creating a new repo:

gh repo create cool-repo --public --source=. --remote=origin
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

bat a cat clone with syntax highlighting and git integration

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

brew install bat
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

ripgrep fast grep replacement

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

brew install ripgrep
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

fd find replacement

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

brew install fd
Enter fullscreen mode Exit fullscreen mode

e.g. from the docs:

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

tmux terminal multiplexer

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

brew install tmux
Enter fullscreen mode Exit fullscreen mode
# Start a session in a directory
tmux new-session -d -s my-session -c ~/some-dir

# Attach to session
tmux attach -t my-session
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Example installing python 3.14 globally:

mise use --global python@3.14
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Setting it up in an existing git repo:

jj git init --colocate
Enter fullscreen mode Exit fullscreen mode

hl high-performance log viewer

No more getting wrekt by huge log files.

brew install hl
Enter fullscreen mode Exit fullscreen mode
hl /path/to/huge/logfile.log

# or many log files
hl /path/to/logs/*.log
Enter fullscreen mode Exit fullscreen mode

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:

Top comments (0)