Stephan Schmidt, CTO Coach - April 20, 2024
Upgrading my WSL with Zsh and better tools
Fsf, Tabby, Lsd, bat and more
TL;DR: Windows Subsystem for Linux (WSL) can be significantly enhanced with modern CLI tools like Tabby (terminal), fzf (fuzzy search), zoxide (smart directory navigation), bat (syntax-highlighted cat), and fd (faster find), transforming the development experience to match or exceed traditional Unix environments. CTOs should consider standardizing these tools across development teams for productivity gains, though carefully evaluate security implications before deploying to production servers.
After 15 years with Apple I left my iMac Pro behind and had switched to Windows some years ago. The reason pre-M1 was mainly because I wanted to run some local AI models and needed a powerful GPU to do so, my eGPU experiments had failed (and I need Affinity and PowerPoint, so no Linux for me. I gave up dual booting after some time).
Luckily - although some parts of Windows are really annoying, settings for example, or bluetooth headsets - there is not too much difference to me, mainly because:
Me OSX:     Zsh-Obsidian-Goland-Affinity-PowerPoint-FF
Me Windows: Zsh-Obsidian-Goland-Affinity-PowerPoint-FF
WSL has been working for me for some time now, but it was time to upgrade my shell.

Following some guides, I came up with:
- Tabby for a better terminal - WSL had some problems with Nerdfonts for me, and CTRL-Space to get Tabby to the front is a really useful and nice feature
- lsd for better ls - the icons are nice, and the colors, mostly for the type and age of files
- bat for an excellent catreplacement with syntax highlighting - I love this so much, how could I have lived with cat for 30 years with no syntax highlighting and nice line numbers? And it just works, acting as a simplecatif needed, showing its power when it can
- fzf for fuzzy search - a lot has been said about this before, it’s a game changer to find a file or directory based on realtime search
- zoxide for a better cd - it remembers all directories, instead of cd ..\..\a\b\cyou just typecd c. Together with zsh history autocompletion even stronger
- zsh and oh my zsh with plugins - autocompletion, better history plugins, syntax highlighting. The problem I had in the past with oh-my-zsh, long startup times, is gone. But it frightens you when your shell has a profiler to profile startup times.
- topgrade to update all my coding environments at once - very nice, especially the upgrade of all #Golang and #Rust shell commands I use in development, like air. Before topgrade I did not upgrade them at all.
- broot for browsing directories - an alternative to fzfif you don’t remember the directory name
- fd for find - Working with findfor 30 years, never very happy, fd just works and is faaaaaaast
- difftastic for syntactic diffs - Looking for a better diff since years, tried this and that, for now this is my default shell diff (not the UI one)
I wonder now which of these do I need on my Linux production servers. Or does that make them insecure?
Overall very happy now. Colorful, but I like colors. The reason I did like my Amstrad CPC more than C64s was the colors even forty years ago.
More Stuff from Stephan
About me: Hey, I'm Stephan, I help CTOs with Coaching, with 40+ years of software development and 25+ years of engineering management experience. I've coached and mentored 80+ CTOs and founders. I've founded 3 startups. 1 nice exit. I help CTOs and engineering leaders grow, scale their teams, gain clarity, lead with confidence and navigate the challenges of fast-growing companies.
- no ads, no sponsorships, free.
 
 
 
 
 
 
