Skip to content

Tools

Finally, the good stuff.

The components that make up my terminal-based working environment.

Ghostty is my preferred terminal emulator.

I use Zsh as my shell.

Tmux is a terminal multiplexer that does persistent sessions, windows and “tabs” (panes).

Starship provides my shell prompt.

Right now it looks like this:

dev on feat/astro [$✘!?] is 📦 v1.0.0 via ⬢ v22.16.0

which shows me

  • dev is the directory I’m in
  • feat/astro is the git branch I’m on
  • [$x!?] means that there are new files and changes to old ones
  • is v1.0.0 shows my current version of this project
  • via (node) v22.16.0 tells me I’m using Node.js version 22.16.0

Nerd Fonts are patched monospace fonts with extra glyphs and icons.

They’re used by shell prompts, TUIs and terminal-based editors for things like git status and icons for programming languages.

Speaking of terminal-based editors…

I use Neovim as my editor.

My config is here. It started off as kickstart-modular.nvim and now it has some extras in it.

I spend most of my time on the command line using these:

records the commands I run so I can search through my history to find out what I did.

website

cat with wings”.

website

a better top.

website

a better ls.

website

a better find.

website

a fuzzy finder that also gets used in Neovim.

website

a “more correct” jq.

website

a fast text search tool, good with large codebases and used by my editor.

website

a better sed.

website

is a TLDR tool that’s been written in Rust.

It’s like man but shortened to results you’ll actually use.

website

I use Git for version control.

syntax highlighting for use with git diff and git blame.

website

is a TUI for interacting with git.

website

is the GitHub CLI so I can interact with pull requests on GitHub through my terminal.

is the Gitea CLI to interact with PRs on Gitea, which I self-host in my homelab.

Tools I use to provision, deploy and operate apps and infrastructure.

for running Ansible, which I use for configuring servers.

for interacting with ArgoCD, which handles continuous deployment on Kubernetes clusters.

is “Containers On Linux MAchines”, which provides an easy way to install a Linux virtual machine and use it to run containers on macOS.

website

is the CLI for interacting with Docker containers.

is how you interact with containers managed by containerd.

It’s installed with colima and is available by running colima nerdctl.

website

is the package manager for Kubernetes.

website

is the only way to interact with Kanidm as an admin.

I use Kanidm in my homelab for identity management.

is the CLI for interacting with Kubernetes.

website

is how I write Infrastructure as Code and manage servers from cloud providers and in my homelab.

website

Tools I use to build and publish sites, blogs, and documentation.

Most of these (including Astro, which powers this site), are installed by the language runtime they depend on, rather than as standalone tools, which is why this list is small.

is the static site generator that powers my blog.

website