Tools: Building A Rich Shell Experience: Modern Cli Tools For Developers

Tools: Building A Rich Shell Experience: Modern Cli Tools For Developers

Posted on Jan 17

• Originally published at wsl-ui.octasoft.co.uk

After years of using the same old Unix utilities, I decided it was time to modernize my shell environment. The result? A terminal setup that feels like upgrading from a bicycle to a sports car. Every command is faster, every interaction is smoother, and I've reclaimed hours of my day that I used to spend fighting with outdated tools.

In this post, I'll walk you through the modern CLI tools that transformed my development workflow—from version management to file searching, from directory navigation to shell history. These aren't just shiny new toys; they're productivity multipliers that make working in the terminal a genuine pleasure.

Let's start with mise (formerly rtx), which sits at the foundation of this setup. Think of it as nvm, pyenv, rbenv, and asdf all rolled into one, but faster and more intuitive.

mise allows you to manage versions of tools and languages across projects without the version manager chaos. Instead of juggling multiple version managers, I define all my tool versions in a .mise.toml file (or via environment-specific configurations), and mise handles the rest. It's incredibly fast, written in Rust, and supports everything from Node.js to kubectl.

What makes mise special is its automatic tool installation and version resolution. When I cd into a project directory, mise automatically switches to the correct versions of Python, Node.js, or any other tool that project needs. No manual activation required—it just works. mise also supports project-specific tasks, letting you define common scripts in your .mise.toml that team members can run with mise run.

While Oh My Zsh is great, Zim Framework offers similar functionality with significantly faster startup times. It's a minimal, modular framework for Zsh that loads only what you need, when you need it.

The framework itself is lightweight, but the real magic comes from pairing it with the tools below.

Remember typing cd over and over again to navigate deep directory structures? zoxide eliminates that pain. It's a smarter cd command that learns your habits.

After using it for a while, z myproject might take you directly to ~/projects/github.com/username/myproject, even if you're currently several directories deep. It uses a "frecency" algorithm (frequency + recency) to rank directories, so the places you visit most often become easiest to reach.

Source: Dev.to