Dev tools — my must-haves in 2026 (terminal, editor, tooling)
After a year of mixing in new tools I have a stable list of dev tools I actually use daily. Showing each one, why, and what I dropped along the way.

Each quarter I audit my dev tools. Picked new ones, dropped old ones, didn't keep things "because they were always there". After a year I have a list of 10 tools I really use daily. Each picked deliberately. Showing each.
Terminal: WezTerm
From iTerm2 → Alacritty → Kitty → WezTerm. I stay on WezTerm because:
- config in Lua (not YAML)
- multiplexing built in (replaces tmux for 90% of cases)
- GPU-accelerated
- ligatures work out of the box
-- ~/.wezterm.lua
return {
font = wezterm.font 'JetBrains Mono',
font_size = 13.0,
color_scheme = 'tokyonight',
use_fancy_tab_bar = false,
}5 lines, works. Alacritty needed a plugin for tabs, Kitty crashed on me.
Editor: Cursor
From VSCode → Cursor. Cursor is a VSCode fork with deeper AI integration. Tab-completion (like GitHub Copilot but better) + chat side panel + composer (multi-file edits).
Composer is the killer feature, describe a change, it edits 3-4 files at once. Regular AI completion gives one line at a time.
But Claude Code (terminal) is my primary tool. I use Cursor for quick edits, Claude Code for bigger tasks.
CLI: ripgrep, fd, bat, jq, fzf
The classic five that replaced grep/find/cat:
# ripgrep instead of grep
rg "useState" --type tsx
# fd instead of find
fd "*.config.ts" --max-depth 3
# bat instead of cat (with highlighting)
bat src/auth.ts
# jq for JSON
docker ps --format json | jq '.[] | .Names'
# fzf as a fuzzy finder
git checkout $(git branch | fzf)Each is 10× faster with better UX than the BSD/GNU equivalent.
Git: lazygit + delta
lazygit is a git TUI. Vim-like keybindings, line-level staging, instant diff view:
lazygit
# in UI: space = stage, c = commit, P = push, etc.git-delta is a pretty diff renderer. In ~/.gitconfig:
[core]
pager = delta
[delta]
syntax-theme = github-dark
side-by-side = truegit diff shows side-by-side with syntax highlighting. Changes review.
Docker: lazydocker
Like lazygit, but for Docker. TUI showing all containers, logs, statuses, restartable:
lazydockerIn UI: space = pause/unpause, r = restart, l = logs. Replaces 5 different docker ps, docker logs, docker stats commands.
Notes: Obsidian (with CouchDB)
I wrote about it already, markdown + livesync. Daily notes, project notes, code snippets. Searchable by tags.
Dotfiles management: chezmoi
After years of stow, ad-hoc copy, crappy Dropbox sync, chezmoi. Templating + secrets + multi-host:
chezmoi init https://github.com/user/dotfiles.git
chezmoi applyPer-host overrides via templates. Secrets via 1Password integration. Chezmoi = git pull for my setup on a new machine.
Communication: Telegram + Slack-only-when-must
Telegram is my default. Agent bot + partner comms + family. Slack only if a client requires.
Backup: BorgBackup
Incremental snapshots, deduplication, encryption. Hard backups for:
~/projects/→ external drive- Postgres dump → external drive
- Obsidian vault → cloud (B2)
borg create --stats backup-repo::backup-{now} ~/projectsDaily cron. 3 years of operation, 0 data loss.
What I dropped along the way
Tools I used in 2024-2025 and threw out:
- VSCode → Cursor
- iTerm2 → WezTerm
- find → fd
- grep → ripgrep
- tmux → built-in WezTerm multiplexing
- VS Code GitLens → lazygit + delta
- DBeaver → CLI psql + DBmate
- Postman → CLI curl + httpie
- Notion → Obsidian
- Trello → Vikunja
I don't miss any. Every upgrade gave me a faster workflow.
What I'm considering but haven't taken
- Helix instead of Cursor, modal editor with built-in LSP. Tried for 2 weeks, dropped because Claude Code in terminal covers most editor needs.
- Atuin instead of standard shell history, sync history across hosts, better search. Trying, not decided yet.
- mise (rtx) instead of nvm/pyenv/etc., one manager for all language runtimes. Migration in progress.
The 10-tool list isn't "the 10 best ever". It's my daily loop. Quarterly audit, what came in, what went out, why. Without an audit I'd have a pile of zombie tools "because it used to work". Audit your list. Brutally.