Monitor with a terminal split into several panes running an editor, git and a shell

A recent essay on Medium by developer and course author mbvissers argues that a handful of command-line tools — tmux, Vim, zoxide, lazygit, Oh My Zsh and Starship, on top of a solid grasp of grep, sed, awk and git — remain essential for senior engineers even as AI coding agents take over more of the typing. The list is personal and the author openly promotes his own Udemy courses on several of these tools, but the underlying argument holds up well for anyone who administers Linux servers: the agents themselves live in the shell, and someone has to understand what they are doing there.

The key points in 20 seconds

  • The core idea: AI agents run grep, sed, find and git constantly, so knowing those tools is how you supervise them, not an old habit.
  • The two that matter most: tmux and Vim, because they work the same on a laptop and on any server reached over SSH.
  • The comfort layer: zoxide, lazygit, Oh My Zsh and Starship save time and make the terminal pleasant, but they belong on workstations more than on production hosts.
  • The caveat: the original piece is an opinion list from someone who sells courses on three of the tools; the value is in the reasoning, not in any claim of a definitive toolkit.

The agents already live in the shell

The most interesting point in the essay is also the least flashy. Before recommending any new tool, the author insists on the old ones: grep or ripgrep, sed, awk, find, head, git and, above all, Bash. His argument is that coding agents call these commands non-stop to explore a codebase, so an engineer who cannot read them cannot really follow what the agent is doing.

For system administrators this is familiar ground, but it gains a new edge. When an agent proposes a one-liner that pipes find into xargs and then into sed with an in-place flag, the person approving it needs to know exactly which files will be rewritten. The same applies to git: graphical integrations in editors make version control look effortless, and the essay warns, rightly, that convenience is not the same as understanding what a rebase or a reset actually does to the history.

Tmux and Vim: the tools that follow you over SSH

The author ranks tmux and Vim as the two most important skills on the list, and his reason for tmux is portability: terminal tabs differ from one emulator to the next, while a tmux configuration behaves the same everywhere. For an administrator, the stronger argument is a different one. A tmux session keeps running on the server when the SSH connection drops, so a long package upgrade, a database dump or a migration script survives a flaky Wi-Fi link or a laptop that goes to sleep. That alone justifies learning it, and it is why many admins install it on every host almost by reflex. For those who find tmux too heavy, lighter options exist, such as Atch, a small tmux alternative built around simple sessions and persistent logs.

On Vim, the essay describes a split that many readers will recognise: plain Vim with no plugins for quick edits, and a heavily configured Neovim for larger projects, for writing documentation in Markdown and for reviewing code written by Claude. The sysadmin case for Vim is simpler still. Some flavour of vi is present on practically every Unix-like system, including minimal containers and rescue environments where no other editor is installed. Knowing how to open a file, edit a line, save and quit without a mouse is a survival skill, not a matter of taste.

For learning tmux, the author recommends the book tmux 3: Productive Mouse-Free Development by Brian P. Hogan, published by the Pragmatic Bookshelf, alongside his own course.

Zoxide and lazygit: speed without hiding the basics

Zoxide replaces cd with a command that remembers the directories you visit and ranks them by how often and how recently you use them. Typing a fragment of a path is enough to jump to the best match from anywhere in the filesystem. The author goes as far as aliasing cd to zoxide. That works, and zoxide supports it directly through its init option, which only affects the interactive shell and leaves scripts untouched:

# Debian, Ubuntu and Fedora ship zoxide in their repositories
sudo apt install zoxide

# ~/.bashrc: replace cd with zoxide in interactive shells
eval "$(zoxide init bash --cmd cd)"Code language: PHP (php)

Lazygit, created by Jesse Duffield, is a terminal interface for git that shows staged files, changed lines, branches and commits in panels you navigate with the keyboard. The essay presents it as quality of life for people who already know the underlying commands, which is the right framing: it speeds up staging hunks or reviewing a branch, but it does not replace understanding git. According to the project’s documentation, it is available with apt in Debian 13 and later and in Ubuntu 25.10 and later; Fedora users can install it from a Copr repository, and older releases can use the static binaries published on GitHub.

Oh My Zsh and Starship: comfort for the workstation

The last two recommendations are about ergonomics. Oh My Zsh is a framework on top of Zsh that adds themes and plugins; the author values it mainly for its git plugin, which provides short aliases such as gst for git status or gco for git checkout. He recalls a previous employer installing it on every developer laptop to speed up daily work.

Starship is a cross-shell prompt written in Rust that shows context such as the current git branch, and its appeal, in the author’s words, is mostly that a nicer-looking terminal makes him want to use it more. Starship can be installed with apt in Debian 13 and later and in Ubuntu 25.04 and later, through a Copr repository on Fedora, or with the project’s install script, and it is enabled with a single line in the shell configuration:

sudo apt install starship

# ~/.bashrc (use "init zsh" in ~/.zshrc)
eval "$(starship init bash)"Code language: PHP (php)

Here the sysadmin perspective adds a caution the essay does not cover. These layers are excellent on a personal workstation and questionable on production servers. A root account with a customised Zsh framework, extra plugins and a prompt that runs git commands on every keystroke is more to maintain, more to audit and less predictable for the next person who logs in. Prompt icons also depend on Nerd Fonts being installed on the client side. A sensible split is to keep the comfort tools on the machine you work from, and keep servers close to their defaults, with tmux and vim as the main additions.

What the list leaves out

As a personal list, the essay naturally skips tools that many administrators would put near the top: fzf for fuzzy finding, ripgrep and fd as faster replacements for grep and find, jq for JSON, htop or btop for monitoring, and ncdu for disk usage. It also leaves aside the terminal interfaces that have become common on servers in the last few years. Readers looking for a broader map can start with our selections of the best Linux TUIs in 2026 and open-source tools every Linux sysadmin should know.

The broader lesson is less about any single tool than about where judgement sits. AI agents can generate shell commands faster than anyone can type them, but they do not carry responsibility for a server. The engineer who reads a pipeline fluently, keeps work alive in a tmux session and can fix a config file in vi on a broken host is the one who can safely say yes or no to what the agent proposes.

Frequently asked questions

Do CLI skills still matter if AI agents write most of the code?

Yes. Coding agents rely heavily on standard tools such as grep, sed, find and git to explore and modify projects. Understanding those commands is what allows an engineer to review and approve the agent’s actions safely, especially on servers.

Why use tmux if my terminal already has tabs?

Tmux works the same in any terminal and, on remote machines, keeps sessions running after an SSH disconnection. Long-running tasks survive network drops, and you can reattach later from another computer.

Is it safe to alias cd to zoxide?

For interactive use, yes. Zoxide’s init command accepts a –cmd cd option that replaces cd only in interactive shells, so shell scripts keep using the standard builtin.

Should I install Oh My Zsh and Starship on production servers?

Generally not. They are designed to improve a personal workflow. On shared or production servers, a default shell with minimal additions is easier to maintain and audit; tmux and vim are the most useful exceptions.

Source: Quick Programming (Medium), essay by mbvissers

Scroll to Top