5 CLI Tools That Actually Changed How I Work in 2026
By Mischa van den Burg
Summary
Topics Covered
- Fzf seduces you into forgetting fundamentals
- Learn tmux defaults once, use them everywhere
- Most engineers barely scratch SSH's surface
- Own your passwords with Pass and GPG
- Fabric chains AI like Unix pipes
Full Transcript
I have taught thousands of people all over the world how to use the command line properly and in this video I'm going to share you five CLI tools that have changed the way I work and have made me 10 times more productive. So,
let's go. The first tool I'm going to share is called FCF, which is a command line fuzzy finder and this really changed the way how I work on the command line both positively and negatively. So, the way it works is if I
negatively. So, the way it works is if I am on the command line and let's say I'm in my Zettelkasten directory and I want to find a certain note, but I don't really know the exact title of it,
right? So, if I then do V and then
right? So, if I then do V and then control T, then this is already going to show me a lot a list of files that are in this directory. If I then start searching for Volkswagen, for example,
then as you can see on the top there is the most matching result here. In this
case, I'm looking for my Volkswagen California, my van. So, if I do then press enter, it's going to complete the path of that file. And if I now press
enter, I am opening this file in Vim or NeoVim in this case. So, this is how I can very easily search large directories and their subdirectories for any type of
keyword and it's fuzzy, right? So, if I do V and then Kubernetes, then I'm going to see all of the stuff in Kubernetes, but let's say I'm looking for down there
I can see Kubernetes visualization, so Kubernetes viz and then all of a sudden Kubernetes visualization is at the top here. Do you see? So, it's actually
here. Do you see? So, it's actually super powerful. I can search my notes
super powerful. I can search my notes like this. I can if I do Linux, then I
like this. I can if I do Linux, then I see all of these Linux notes that I have here. If I I start searching for Python,
here. If I I start searching for Python, then all of my Python notes are here.
Python expert like it's so powerful that I can just search my notes this way. And
the second really useful case for FCF is history. So, if I press control R, I can
history. So, if I press control R, I can actually search my history and if I ran this rsync command two weeks ago that I've forgotten, all I have to do is rsync and then oh, boom, here it is. I
can already see the all of the rsync commands I ever ran or dnf, right? If I
like it's so easy to just fuzzy search my history this way. It made me so much faster on the command line. However,
there is a big caveat for using fcf.
Obviously, if I SSH to a virtual machine at work, I don't have this available.
So, you should only start using this when you have mastered the history, the find and the grep commands properly because if you are on a server somewhere and you're used to pressing control R
and suddenly this nice little GUI doesn't come up anymore, then you have a problem. If you're a beginner, I
problem. If you're a beginner, I strongly recommend you first learn how to use history, find and grep properly before you even start thinking about using this. But when you are comfortable
using this. But when you are comfortable with this, then fcf is definitely going to make you much faster on the command line on the machines where you have control over what you install on them.
The second command is of course going to be tmux, which is a terminal multiplexer. So, if you quickly open up
multiplexer. So, if you quickly open up the man page, we'll see tmux terminal multiplexer. Tmux is a terminal
multiplexer. Tmux is a terminal multiplexer. It enables a number of
multiplexer. It enables a number of terminals to be created, accessed and controlled from a single screen. So, in
other words, your terminal multiplexer is able to create multiple sessions or windows inside of your terminal window.
Now, many terminal emulators like Westerm or iTerm and those things, they have the these little tabs in the top, etc. But that's completely unnecessary
if you just use tmux well. This is also why I like Alacritty. So, the first concept in tmux is a session. So, if I do tmux ls, then we'll see that I have two sessions running on this machine. A
session is a collection of windows and when you look at the top here, then you will see that there is only one window.
This has all of the windows. If I want to create a new window, I press control b c, control b c and now I have three windows. So, if I do tmux LS, you will
windows. So, if I do tmux LS, you will see that session three now has three windows. Now, my tmux is config pimped
windows. Now, my tmux is config pimped up a little bit, so I have my windows on the top, and you will also notice if I now change my directory, you will see that my tmux window is automatically
changing the directory name. And I've
also configured the color scheme in such a way that the color is readable, but it's not very intrusive, and that is just the way how I like it. Now, you may be asking, "What's the point of this?
Why would you need multiple windows?"
Well, let's say I'm in my temp directory, and here I'm I'm running a very important command like date. And
then in my second window, actually I am looking at my Volkswagen California note. So, if I go back to my settle
note. So, if I go back to my settle casten, and I use FCF to find my Volkswagen note, for example, I can be working on this note inside of here, and
then in this window I can be running all of these other commands that are really important for me to run at this moment.
And then by pressing control B three or control B two, I can switch between these windows, and I can work on multiple things at the same time. Now,
the next tmux concept is panes. So, if I press control B percent, I can actually split the window here, and now I suddenly have two places where I can work inside of the same window. So,
let's say I am working on this Volkswagen California note, but at the same time I want to keep track of my resources. So, if I do toolbox enter
resources. So, if I do toolbox enter tools, and then run B here, then I am able to have my note here at the same
time while I'm also monitoring my CPU usage, for example, in the same window.
Now, I can split this in as many ways that I want, so I can I can have stuff going on here, going on here, and I can basically make a massive IDE out of all
of these processes that are running on my system, and this can be really useful if you are, for example, running multiple processes on multiple servers.
I can have something going on in this one and this one and see everything at the same time. So, if you run tmux well, if you learn this well and you become fast at it like I am and I can just
easily switch between the things and set it up without even thinking, then you can become extremely productive on the command line. Now, one of my mentors,
command line. Now, one of my mentors, Rob, he has this phrase, "tmux is my window manager." And that has really set
window manager." And that has really set the stage for me in the way how I think about this. So, I do almost everything
about this. So, I do almost everything on the command line and I do everything inside of tmux. And over the years, I've become so fast and so good at it that I don't even think about it anymore. I
very easily switch between everything and I just also use tmux to orchestrate multiple AI agents, for example. Now,
there's one piece of wisdom that I have to share with you that almost nobody talks about, which is the key bindings.
No matter what you do, if you start using tmux, do not change the default key bindings. And I'm going to get angry
key bindings. And I'm going to get angry comments about this, but you have to learn how to use the standard key bindings and I know they're a little bit uncomfortable, but if you learn how to do control B percent and control B
quotation to split, no matter what system you are in the world, it's always going to be the same. So, if I'm on a virtual machine at work or if I'm on a
another person's computer, tmux default key bindings are always going to work.
And if you do some like control B V in order to have a vertical split or changing the the prefix to control A or some stuff like that, the moment you are
on a different system that is different from your main machine, you're going to be struggling, you're going to be thinking, "What was it again? Was it
percent or was it the ampersand? How was
it?" Don't do it. Learn the standard key bindings. If you just learn it, it takes
bindings. If you just learn it, it takes a bit of pain for a week and then you have it for your the rest of your life.
I don't even think about it anymore. So,
learn the standard key bindings and you will thank me the moment you are in your first production outage on a virtual machine somewhere and you need tmux to have multiple things open and you're not
struggling. Believe me, you will thank
struggling. Believe me, you will thank me. If you enjoy this video or any other
me. If you enjoy this video or any other of my videos, please subscribe to the channel. It's a completely free way to
channel. It's a completely free way to support me, but each of these videos cost me $700 to produce. I have editors that I have to pay. I have to pay for designers and everything. So, it
actually is a high cost for me to produce these videos. So, please it's a free way to support the channel. We're
almost at 100k right now. So, please
show your support by just subscribing and it really helps me out. Thank you so much. The third command I'm going to
much. The third command I'm going to share is called SSH and most people are going to think now, wait, tmux SSH, everybody knows about this stuff, right?
Well, the difference is that yes, most people watching this video will know the about the SSH command and in its most basic definition, if we type man SSH,
you will see that SSH is a program for logging into a remote machine and executing commands on a remote machine.
Big deal, right? But, the thing is that most people, they just literally use it only for logging in and that's it. But,
there is a multi-year study you can do on SSH. Like, there's so many powerful
on SSH. Like, there's so many powerful things that you can do using SSH and most mediocre engineers have never looked beyond just logging into somewhere. So, I'm going to show you a
somewhere. So, I'm going to show you a couple of tricks that have completely changed the way I work and maybe these will give you some inspiration to dig deeper into this command. So, in its
most basic fashion, SSH is used to log in on a remote machine. So, in this case, I'm logging in as the user OBS on this host, which is a virtual machine
running in Hetzner, which I'm reaching via Tailscale. So, this could be
via Tailscale. So, this could be Usually, you would have an IP address here, but since I'm using Tailscale, I can use a fully qualified domain name here. So, now I'm on the machine and I
here. So, now I'm on the machine and I am now on this remote machine. So, if I do cat /etc/os-release, then we see that I am now on a Ubuntu
machine. And if I exit this and I run
machine. And if I exit this and I run the same command, cat /etc/os-release, we will see that I am on Fedora Linux.
So, that is the difference here. I'm
opening a session and now I'm suddenly on this remote machine. Now, what's
really nice is that I can actually run cat /etc/os-release over SSH as a one-off command. So, if I run this, I am now running this one
command on the remote machine, which is really neat. Now, there are a thousand
really neat. Now, there are a thousand tricks that I can show you with SSH, but the most powerful one is SSH port forwarding. And this has completely
forwarding. And this has completely changed the way I work both with containers, virtual machines, everything. So, let me demonstrate with
everything. So, let me demonstrate with an example. We're going to be SSHing
an example. We're going to be SSHing back to our OBS machine here. And I am now on the machine and on the machine I have Podman installed. If I do Podman
ps, we see that there are no containers running at this moment. Now, in this case, I'm going to be running a container. I'm going to start a
container. I'm going to start a container with the name hello. I'm
running it in detached mode. The
container is going to expose port 8080 on the virtual machine, on the local machine, and I'm going to start a busybox container that is going to run a
very simple web server showing the the text hello from this container. So, I'm
going to run this. If I now do Podman ps, now we see that this container is running. If I do curl localhost 8080,
running. If I do curl localhost 8080, then we see that the web server is working. But, this is only working on
working. But, this is only working on the remote on the remote machine. If I
now split the window, hm, this is what we saw in tmux. If I run curl localhost 8080 on this machine, we see, oh, this is not working because we have nothing
running on port 8080 on this machine."
So, now I will close the SSH connection and I'm not SSH to the machine anymore, okay? So, if I now still I'm curling,
okay? So, if I now still I'm curling, it's not working. And now I will run the following command, SSH {dash} L. This is
going to take my local port 8080 and forward it to localhost 8080 on the host OBS Misha at Tailscale. So, it's going
to open an SSH connection and forward the port to where I specified in this command. So, now the SSH connection is
command. So, now the SSH connection is open. I have this terminal window open.
open. I have this terminal window open.
And if I now curl localhost 8080, then it's going to return hello from this container. And to prove to you I'm at
container. And to prove to you I'm at I'm still in on my Fedora machine, right? I'm on Fedora. And if I curl it
right? I'm on Fedora. And if I curl it again, this is what it shows. But if I close this connection by pressing Ctrl C and curl it again, it's going to fail.
So, what's happening here is if I open this tunnel, this connection, then whatever I do with port 8080, it's now going to be forwarded to the remote machine. And it's not even just the
machine. And it's not even just the remote machine, it's actually forwarding it to the container running on the remote machine. Now, this is super
remote machine. Now, this is super useful because now I can have multiple virtual machines running anywhere, running any container on any port, and I don't have to mess around with local
port forwarding and everything. I can
just tell SSH, "Hey, open a connection to this port, and it doesn't matter where it's located. As long as this tunnel is open, I can actually talk to that port." And this is super powerful
that port." And this is super powerful if you are, like me, running multiple machines in your home lab, you're running multiple environments at work, et cetera. And if you combine this with
et cetera. And if you combine this with good tmux skills, you can have multiple tunnels open in this window, and you can then be working via port forwarding in other windows. So, maybe you can see how
other windows. So, maybe you can see how all of this is going to come together already. So, SSH, learning it well is a
already. So, SSH, learning it well is a complete game-changer and I strongly recommend you spend some time learning it well. Now, speaking of learning it
it well. Now, speaking of learning it well, I have a gift for you. I have a free 8-hour course that's going to teach you Linux from the ground up. It's going
to teach you how to get Linux, how to get a Linux machine going, how to run your first commands, and after that, we're going to go deeper into SSH, into tmux, and all of the other things, and
you can get access to this by going to school.com/linux.
school.com/linux.
It's completely for free. The 8 hours are taken from the material that my paid students pay thousands of dollars for, and you can get access to it completely for free. Go to school.com/linux,
for free. Go to school.com/linux,
and it's not just the course, it's also an active community of over 5,000 people even talking about SSH connections as we speak. So, go to school.com/linux
speak. So, go to school.com/linux
to get access right now. The fourth
command I'm going to show you is called pass, which is the standard Unix password manager. And as the website
password manager. And as the website says, password management should be simple and follow Unix philosophy. So,
you have all of these tools like Bitwarden, 1Password, all of that stuff.
But really, all you need, and if you are a serious engineer, all you want is to just do this from the command line. So,
I manage all of my passwords right from the command line, and the way it works is let's say I am going to create a password for my website cubecraft.dev,
and my website does not have a login function, but let's say I want to login on this website or I'm going to create an account here. Well, what we do is we
do pass generate cubecraft.dev.
This is now going to generate a password for me and storing it in my password storage vault. And it stores this as a
storage vault. And it stores this as a local file on my hard disk, but it also automatically GPG encrypts it, okay? So,
the generated password here is this uh Now, if I go uh to my password uh uh store, so CD password store, then I can literally see the file. So, you can
generate passwords, and then you can show them. But, let's say I have a
show them. But, let's say I have a password that I don't remember the name of, I can do pass find, and I can do cube cube, and now I see everything that has to do with cube graph. So, I
absolutely love how this works. And,
what's also really cool about this is that it has a D menu extension. So, if I um if let's say I'm over here, and I want to find this password, I can press my hotkey, I can find my password that
we just generated, and it opens it up.
It decrypts it now, and now it will copy it. I can copy the pass, and then boom,
it. I can copy the pass, and then boom, I have it right here. So, this is how I can always access my passwords everywhere, right from the keyboard, right from the command line. And, the
final piece is that this is all going to be stored in Git. So, I now can do pass Git push, and it's now going to push this to a repository, which has all of my passwords saved as GPG encrypted
files. So, it's completely safe. If you
files. So, it's completely safe. If you
don't have my GPG key, well, good luck.
I can literally send you this repo right now, and it will be completely useless to you if you don't have my GPG key. So,
in my opinion, this is how real men manage their passwords, and I would strongly recommend you look into it, because if you use things like Bitwarden, or 1Password, or God forbid
storing it in your browser, all you get is a trust me, bro. Like, with this, I am in control, I have my passwords all my disk, all my repo, I have it on multiple machines, and I am in complete
control of this. But, I mean, how many times have you heard that these companies have been hacked, and passwords are leaked? Here, I am in control, I have complete sovereignty, and this is how real men do it, in my opinion. Now, the fifth command I'm
opinion. Now, the fifth command I'm going to show you is called Fabric.
Fabric is created by Daniel Miesler, who is a amazing human being. I strongly
recommend checking out his YouTube channel, and following him, because he has some extremely interesting thoughts about AI and how humanity is evolving
with AI. And he created this CLI tool
with AI. And he created this CLI tool called Fabric, which is a very convenient way of calling LLMs from the command line. So, in its most bare
command line. So, in its most bare essential form, I can do fabric and then say, "Hello, how are you?" And now, based on how you have configured it, like I have and configured it to have
Anthropic Opus 4.7. So, it's now going to send a request to the Anthropic API and then it's going to send these contents to the Anthropic API and I get an answer, right? So far, so good. This
is really simple. It's almost the same as if you are in a browser just talking to it. Now, Fabric has this concept
to it. Now, Fabric has this concept called patterns. So, if you go to the
called patterns. So, if you go to the config directory of Fabric when you install it on your machine machine, then you will see that there are a ton of patterns that you have available to you.
So, you can analyze stuff, analyze personality, analyze presentation. There
is create prompts, so you can create coding features, create logos, whatever.
What's really cool is there at extract patterns. So, you can extract book
patterns. So, you can extract book ideas, book recommendations. So, if you have a video like is the or a podcast and you can ask it, "Hey, is is this person
recommending any books?" For example.
But, the really cool ones are extract ideas or extract insights. So, let's use the idea pattern as an example. So, I
have this highlights channel that you can subscribe to if you want, which contains all of the highlights from all of the live streams and all of the YouTube videos that I create. So, here's
one called Don't Learn Web Dev in 2026, Learn This Instead. Let's say I see this video and I just want to get the ideas out of that. So, what I can do is I do fabric Y and then give it that link and
then I'm going to say pattern and then it's even has autocomplete, so I can do X and now extract and I can tap tap and says, "Oh, extract ideas." So, let's see
if I run this, it's now going to get the transcript, and then extract the ideas from it. So, let's see which ideas are
from it. So, let's see which ideas are are contained in this particular video.
So, here it says, "Web development should not be learned first as AI tools like lovable have largely automated website creation. Non-coders can now
website creation. Non-coders can now build beautiful, responsive, animated websites using AI tools without writing any code at all." Now, I have created this video, so I know that this is actually things that I have said. Now,
the cool thing about this is that because this is a CLI tool, and we have the Linux concept of pipes and redirecting, I can now start chaining
these commands, okay? So, I have extract ideas. Now, let's say I want to then
ideas. Now, let's say I want to then turn that into something. So, I can pipe that, and then I'll do fabric again, fabric, and then pattern, and then these are all the patterns that I have. So,
let's do create. What stuff do we have to create here? Create tags, create We'll create summary, for example. So,
let's do create summary, and then I'm going to add the {dash} S flag, or I can I think it's stream. What it does now is that it will also stream the output output as the LLM is generating the
output. So, first it's extracting the
output. So, first it's extracting the ideas, and now it's going to stream the output back to me. We have We take the ideas, then we create a summary of those ideas, and then this looks pretty good.
And now what we can do is we do another one. We pipe it to fabric pattern, and
one. We pipe it to fabric pattern, and then create, and then I think there is something called a create academic paper. Well, that's maybe a little bit
paper. Well, that's maybe a little bit too much. So, now we have a command that
too much. So, now we have a command that takes the transcript, extracts the ideas, then we create a summary from that, and let's say we want to write something out of it. So, I will do
fabric, and then pattern, and then we find write. Let's see, what can we
find write. Let's see, what can we write? We can write an essay, we can
write? We can write an essay, we can write a pull request, but let's do a micro essay in this case. And again, I'm just going to add a dash S command to stream the output. So, it's going to
take these one by one, get the ideas, create the summary, and now it's going to write a micro essay for us. And here
we go. It's now streaming it. Skip the
website. If you want to become a devops engineer, the obvious first step seems like it should be learning web development, build some websites, learn HTML, and then work your way towards the back end and infrastructure. That made
sense 5 years ago. It doesn't anymore.
This is a pretty good um link post, for example. So, this is really powerful
example. So, this is really powerful because I can chain these commands together, and basically anything that's located on your disk, for example, hint hint, my settle casting with thousands
of notes in it, I can do so much cool stuff right from the CLI just by using AI and chaining these together.
And the final thing about fabric is that it has really good ways of creating prompts. So, just opening the patterns
prompts. So, just opening the patterns and just reading through these prompts or is actually a really good exercise if you want to learn more about AI prompting. Now, I got a question for
prompting. Now, I got a question for you. Did you learn anything new in this
you. Did you learn anything new in this video? Did you find a command that you
video? Did you find a command that you didn't know about it before? Let me know in the comments, and remember, there is a free 8-hour course that goes even deeper into many of these commands that you can get completely for free by going
to school.com/linux.
to school.com/linux.
It's the same stuff that my paid students use. It is premium video course
students use. It is premium video course material, and I'm giving it away for free because it's my mission to help as many people as possible discover the pleasure of working on the command line.
So, go to school.com/linux
and get the free 8-hour course. Thank
you so much for watching, and I'll see you in the next video.
Loading video analysis...