Command-line tools for productivity

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. Keybindings are a bit different from ViM: here you select first, then act on it. I like 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 to book, instead of typing cd 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:

  • typst for writing papers and reports.
  • chezmoi to manage dotfiles.

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 and cat in Rust:
    • fd has an easier syntax than find. For example, convert all org files to markdown with fd -e md -x pandoc {} -o {.}.md
    • sd also offers a simpler way to replace text with sd. Example: replace title: by title =: sd 'title:' 'title = '
    • eza can replace ls
    • bat is more colorful than cat
    • see also bottom for htop and procs for ps

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 replaced by atuin scripts, recently released.

Inspiration