The Tools I Actually Use Every Day
A running list of the software, CLI tools, and workflows that have stuck around in my daily work.
I used to chase new tools constantly. New editor, new terminal, new note-taking app every month. At some point I realized that tool-chasing was a form of procrastination disguised as productivity.
Here’s what survived the culling.
Editor: VS Code
I’ve tried them all. Vim (still use it over SSH), Sublime (fast, miss it sometimes), Nova, Zed. VS Code won because the ecosystem is unmatched and it’s good enough at everything. Not the fastest, not the prettiest, but it works and I never fight it.
Key extensions I rely on:
- Python (ms-python) — Obvious
- GitLens — Inline blame and history
- Remote SSH — Edit files on render nodes without leaving my chair
Terminal: Ghostty + zsh
Ghostty is fast and stays out of the way. That’s all I want from a terminal. I use zsh with a minimal prompt — just the current directory and git branch. No fancy themes.
CLI Tools That Stuck
# The essentials
rg # ripgrep — fast search, replaced grep years ago
fd # find replacement that respects .gitignore
jq # JSON processing, indispensable
bat # cat with syntax highlighting
eza # ls but better
fzf # fuzzy finder for everything
Python Environment
After years of virtualenv, conda, pyenv, and various combinations:
- uv — Package management that’s actually fast
- ruff — Linting and formatting, replaced black + flake8 + isort
That’s it. Two tools replaced five.
Notes & Thinking
Plain text files in a folder. Markdown when I need formatting. I tried Notion, Obsidian, Bear, and Apple Notes. They all added friction between having a thought and writing it down.
~/notes/
projects/
daily/
ideas/
The Pattern
Every tool that stuck has something in common: it does one thing well and gets out of the way. The moment a tool makes me think about the tool instead of the work, it’s gone.