The 5 tools I actually open every day

I have 200+ things installed on my laptop and the homelab. Most of them I open once a month. Five of them I open every day. Here’s the list, what they do, and why they earned the spot.

1. The terminal (Alacritty + tmux + zsh)

The terminal is the front door. I open it before I open anything else. The terminal is where the agent runs. The terminal is where the code gets written (vim inside the terminal, mostly). The terminal is where the logs get read. The terminal is where the server gets SSHed into.

Alacritty is the terminal emulator. It’s fast, GPU-rendered, and doesn’t have any features I don’t use. tmux is the session manager. I run two panes most of the time: one for the agent, one for vim. zsh is the shell. The setup is in a dotfiles repo so it replicates to any new machine in 5 minutes.

What I do in the terminal: everything. The terminal is the integration point. Every other tool either has a CLI I run from the terminal or it doesn’t get used.

2. The browser (Firefox)

I use Firefox. I’ve used it for 15 years. The extensions I keep installed:

  • uBlock Origin (essential, non-negotiable)
  • Tree Style Tab (vertical tabs, the only way)
  • Bitwarden (password manager, syncs to my phone)
  • Multi-Account Containers (work, personal, banking, projects all in separate containers)

I open the browser maybe 30-40 times a day. Most of those are the same 10 sites: GitHub, my email, the homelab dashboard, the Proxmox web UI, the pfSense web UI, the NAS web UI, Gitea, Hacker News, the local newspaper, the search engine.

The browser is the only GUI I use for “work” things. Everything else is the terminal or the file manager.

3. The code editor (neovim)

I use neovim. I’ve used vim for 20 years. The setup is:

  • LSP via nvim-lspconfig (Python, TypeScript, Go, Rust, Bash, Terraform)
  • telescope.nvim for fuzzy-finding
  • treesitter for syntax highlighting and code navigation
  • vim-gitgutter for inline git diff
  • vim-fugitive for the heavier git operations
  • lazy.nvim for plugin management

I write about 2000 lines of code a week. Most of that is in nvim. The plugins are minimal. The configuration is in a dotfiles repo. The whole thing replicates to a new machine in 10 minutes.

The agent CLI is inside nvim (I use a terminal pane for claude or codex). I review the diff in vim-fugitive or lazygit. I commit from vim-fugitive. The loop is nvim plus a terminal pane.

4. The password manager (Bitwarden)

I open Bitwarden 20+ times a day. Every site I log into, every server I SSH into, every API key I use. The password manager is the only reason I have a hope of having unique strong passwords for the 200+ services I use.

The setup: Bitwarden self-hosted on the homelab (so my password database is on my hardware), with the Bitwarden browser extension and the Bitwarden CLI (rbw) for the terminal. The CLI integrates with the shell so I can rbw get github.com to get the password for a service from the terminal.

The reason this is in the top 5: it’s the only tool I touch in every other tool. The browser uses it. The terminal uses it. The phone uses it. The integration is what makes it indispensable.

5. The file manager (nnn)

I use nnn. It’s a terminal file manager. It’s fast. It does what a file manager is supposed to do. I open it maybe 5-10 times a day, mostly to:

  • Move a file from one directory to another
  • Rename a batch of files
  • Check the size of a directory
  • Find a file I lost

nnn is faster than the macOS Finder or the GNOME Files app for everything I use a file manager for. The terminal muscle memory is faster than the mouse. The plugin system is minimal but useful (nnn has a nerdfont integration and a few others).

If I didn’t have nnn, I’d use the eza + cd + mv shell combo. nnn is the file manager I want for the rare cases where the shell combo is too much typing.

The things that almost made the list

The Kindle app. I read 30-40 books a year. The Kindle app is on the phone and the laptop. It almost made the list. It didn’t because the books are mostly for fun, not for work.

The chat app. I use Signal and iMessage. The chat app is open all day. It didn’t make the list because it’s not a “tool” in the same way. It’s a communication channel. The other 5 are tools I use to do work.

The music app. I use Spotify. The music is what makes the work tolerable. The music app is open all day. It didn’t make the list for the same reason as the chat app.

The pattern

The pattern is: 5 tools, all of them text-first, all of them scriptable, all of them with a CLI. The browser is the only one with a GUI. The other 4 are terminal apps.

The reason: text-first tools compose. The agent can run a command. The agent can read a log file. The agent can edit a config file. The agent can search the filesystem. The agent can’t click a button in a GUI.

GUI tools don’t compose. GUI tools are islands. Terminal tools are nodes in a graph. The graph is what makes the AI work.

The cost

All 5 are free. Alacritty is MIT. tmux is BSD. zsh is MIT. Firefox is MPL. Bitwarden is AGPL (I self-host, but the cloud version has a free tier). nvim is Apache. neovim plugins are mostly MIT.

The cost is the time to set them up. The setup is in a dotfiles repo. The setup replicates to a new machine in about 30 minutes if I have to do it by hand, or 5 minutes if I have access to the dotfiles repo.

The honest summary

5 tools. 4 of them run in the terminal. 1 of them is the browser. The 5 cover maybe 95% of the work I do in a day. The other 5% is the random GUI tool I open once a month and forget the name of.

If you’re trying to simplify your stack, this is the target. 5 tools. All of them open every day. All of them earning the spot.


← back to all posts