Here is a curated list of tools that I cannot live without, after many iterations (last update is January, 15th 2025). Working on Linux and Windows, I try to use cross-platforms tools.
Must-have
- nushell is my shell. fish is nice but if you want to lose POSIX compatibility, you should go all the way and embrace a new workflow. It considers all data as table, allowing for powerful manipulation. It makes shell scripting fun by staying is a single language. Also, pandas support has been added :)
- 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. - typst for writing papers and reports. More on that in a future post.
- ripgrep is a modern
grep
but cross-platform and faster. - wezterm as a terminal, also available on Windows. Alternative are
alacrity
(with a terminal multiplexer likezellij
ortmux
) orkitty
(not available on Windows) that have built-in tabs and windows - jj has replaced
git
in my workflow (jj is compatible with git though). But there are nice TUI interfaces with git worth mentioning :lazygit
1 - atuin to search shell history
- chezmoi to manage dotfiles
For the occasional use
- hugo for this blog. Contrary to zola, it supports org-mode.
- mdBook is my go-to way of generating documentation. Theme is very readable and setup is reasonably fast.
- pier serves as a database for your one-liners. For example, I have a Haskell script to toggle between a dark and light theme that is run with
pier run change-theme
.
Awesome tools that I no longer use
These may be of interest to other people but these are been superseded in my workflow.
- taskwarrior to manage tasks for non Org-mode users. More on that in a future post.
Replacement of
find
,ls
andbat
in Rust are really cool but in practice,nushell
is enough for my cases:- fd has an easier syntax than
find
(written in Rust). For example, convert all org files to markdown with
- fd has an easier syntax than
|
|
- sd also offers a simpler way to replace text with
sd
. Example: replacetitle:
bytitle =
:
|
|
Inspiration
Several ideas came from awesome cli apps list on github. See also other tools written in Rust
1
Or gitui
but
this issue
is troublesome.