Here is a curated list of tools that I cannot live without, after many iterations (last update is July, 15th 2025). Working on Linux and Windows, I try to use cross-platform tools.
Must-have
Daily usage:
- ghostty as a young but promising terminal written in Zig. For a terminal that also works on Windows, see alacritty with a multiplexer like zellij.
- nushell offers a refreshing take on a modern terminal: everything is a table! You can open JSON, XML, SQLite.. with the same interface. This makes scripting actually fun. Its community has been steadily increasing and tools supporting nushell have grown. Honorable mention for fish (not available on Windows).
- helix as an modal editor with batteries included. Keybinding are a bit different from ViM: here you select first, then act on it. I lilke the fact there’s no need for a plugin manager. The drawback is your workflow may not be supported as plugins aren’t available yet.
- taskwarrior for complex task management for non Org-mode users or todo.txt for a lighter alternative. More on that in a future post.
- jj has replaced
git
in my workflow (jj is compatible with git though). But there are nice TUI interfaces with git worth mentioning :lazygit
- yazi a life-changing file manager. Can be integrated with helix
- zoxide is fantastic for moving around quickly in the shell. For example,
z boo
jumps tobook
, instead of typingcd home/user/misc/books
. A must have. - ripgrep is a modern
grep
but cross-platform and faster. - atuin is a better shell history by storing it in a database. It makes it easy to search and even sync across machines.
Often used:
Occasional use
- zola for blogging or, if you like living on the edge zine, a fresh take on static blog managers written in Zig.
- mdBook is my go-to way of generating documentation. Theme is very readable and setup is reasonably fast.
- Replacement of
find
,ls
andcat
in Rust:- fd has an easier syntax than
find
. For example, convert all org files to markdown withfd -e md -x pandoc {} -o {.}.md
- sd also offers a simpler way to replace text with
sd
. Example: replacetitle:
bytitle =
:sd 'title:' 'title = '
- eza can replace
ls
- bat is more colorful than
cat
- see also
bottom
for htop andprocs
for ps
- fd has an easier syntax than
Tools that I no longer use
These may be of interest to other people but these have been superseded in my workflow.
- pier serves as a database for your one-liners. This has been replace by atuin scripts, recently released.
Inspiration
Several ideas came from awesome cli apps list on github. See also other tools written in Rust