🔒 4 more in the full analysis
asciinema cbonsai croc Faker grex Hostinger Tutorials RSS Feed Hostinger VPS jrnl lolcat Newsboat ttyd
Searchable transcript of 10 useful CLI apps I'm guessing you've not heard of — Dreams of Code (19:07). Search for a phrase, then click its timestamp to jump straight to that moment in the video.
Captions sourced from the original video on YouTube, published by Dreams of Code. The video, its captions and all related intellectual property remain the property of their respective owners; AINotes claims no ownership. Provided for research, accessibility and search — see the Transcript Notice and Copyright Policy.
00:00 If you're like me, then you probably enjoy working in the terminal. Whether it's writing code, running commands, or you just happen to open Vim that one time and still haven't figured out how to close it down. Whatever your main reason for being inside of the terminal is, one thing that I'm sure we have in common is there's no greater feeling than finding a new CLI command that you want to use.
00:19 However, [snorts] most of the commands you'll see online, such as FCF, Z Oxide, and of course, my personal favorite, T-Max, have already been talked about to death. In fact, I myself put out a video recently talking about these exact commands. Whilst all of the applications that I listed in that video have improved the way that I work in the terminal, most of them are still reasonably wellnown.
00:42 And whilst I believe I brought some added value to the commands being discussed, I could feel that you, the audience, was yearning for something new. Therefore, I decided to do yet another CLI command video. However, this time doing one about 10 commands that I feel pretty confident you've likely never heard of, ranging from those that are really useful all the way up to some that are just a little bit more fun.
01:05 However, I'm just about to get on a flight, so I'm going to have to start packing up my laptop as I really don't want to miss it. Uh, but whilst I do so, let's kick off this video with the first and perhaps most zenful command on this list. Whilst this first application might not be the most useful command on this list, it's without a doubt the most zenful, which means it definitely appeals to me.
01:33 This application is C Bonsai which allows you to generate a random ASKI bonsai tree from within your terminal. By default, C bonsai will display a randomly generated fully formed ASI bonsai tree, which to be honest isn't that exciting. However, by using the -l or d-live flag, you can instead watch your bonsai tree grow from nothing into its final form.
01:56 Additionally, by adding in the -ash i or d- infinite flag, you can make this loop forever, constantly growing new trees, turning the application into a sort of terminal-based screen saver, which can also be activated using the - s flag. Other properties that you can configure include changing the base of the plant using the -B flag to one of three different options, changing the size of the tree using the -L or- life flag, as well as a few other options to configure pretty much everything else such as the leaf and
02:28 branch color, leaf characters, branch multipliers, the random seed, etc., etc. In addition to C Bonsai, there are a few other terminal-based screens saver type applications, including C matrix, which generates a matrix-like screen effect, pipes, which draws lines across the screen, and my personal favorite, Ask Aquarium, which is one I've actually used in a few videos.
02:52 All of these commands are great if you want to turn your terminal into a sort of living art, which is really useful when it comes to creating video content. However, on that note, these aren't the most useful commands on this list when it comes to creating videos, as this is pretty much the entire purpose of this next command. This command is ASKI cinema, which is perhaps my favorite command when it comes to creating video content.
03:18 ASI cinema is a CLI tool for recording a terminal session. However, rather than recording your screen like typical screen recording software, ASI Cinema instead runs inside of a terminal session, recording all of its output into a textbased file, which can then be played back inside of a terminal using the ASI Cinema CLI. Whilst this by itself is pretty awesome, it's not what I would consider to be the most interesting reason to use ASI Cinema.
03:44 This is because you can actually play back this terminal recording inside the ASI cinema embedded web player, which allows users to select text and copy it to their clipboard, making it pretty perfect when it comes to demonstrating code or CLI commands. To start a recording, you can use the ASI cinema w command, passing in the name of the file that you want to record, too.
04:05 This then opens up a new terminal session, which you can then enter commands into as if it was a normal shell. Once [snorts] you're finished, you can then press Ctrl and D or type exit to finish the recording, which will save the session to the file that you passed in. With the recording now created, this can then be played back using the ASKI cinema play command as follows, which will cause all of the sessions output to be played back with the exact same timings.
04:31 In addition to playing this recording on a terminal, you can also play it back on a web page using the ASI cinema embedded player, which is a JavaScript package available on MPM. Additionally, because there are some situations where you won't be able to embed this player into a web page, such as in the case of a GitHub repositories readmemes, then you're able to convert this recording into a GIF using the associated AG command.
04:55 In addition to both recording and playback, ASI Cinema supports a few other key features as well, including the ability to live stream a terminal session, self-hosting of the ASI Cinema server, which is something I really appreciate, and like all good terminal commands, the ability to select a different theme, including Monokai, Nord, and of course, Dracula.
05:16 Personally, I absolutely love Aski Cinema as it allows me to easily create terminal based recordings that I can share with other people and they can still copy and paste into their own terminal session. In addition to Aski Cinema, another CLI command that I find incredibly useful, at least when it comes to my own personal workflow, is Croc. Croc allows you to easily share both files and directories with other devices and other people.
05:40 Very similar to SCP, but in my opinion, it's a lot easier to use. This is because Croc allows you to easily share these files between devices by using a simple code phrase rather than needing to set up and configure SSH servers, manage firewalls, handle SSH keys, or even exchange IP addresses. To send a file, you can do so by using the following croc send command, passing in either the file name or the directory you want to share.
06:08 This then generates a code phrase that you can then pass to your recipient which they can then use to download the file passing it into the croc command as follows. Whilst there are a number of other CLI utilities that achieve the same thing, uh croc in my opinion makes it much easier to do so. It also provides some other key features that you would expect from a file sharing application.
06:30 These include the ability to resume any transfers that may be interrupted, end to-end data encryption for security, and the ability to use your own relay server. For me, this makes Croc perfect for either sharing files between my different devices or just for sharing it with other users without needing to worry about email attachments or using something like Google Drive.
06:50 Okay, so the fourth command on this list is actually one I've been using quite a lot recently when it comes to my own agentic AI workflow. This is the TTYD command which allows you to access a terminal session over a browser. In order to do so, you first call the TTYD command with the first argument being the command you want to be executed whenever a web connection takes place.
07:13 In my case, I'm setting this to be zshell. Now, if I open up my browser and head to where TTYD is running on my local machine, you can see it opens up a Zshell session for me. However, I can't actually do anything inside. This is because by default TTYD is read only, which is cool, but isn't exactly that useful. Fortunately, we can enable write access by running the TTYD command again, but instead using the -w flag, which will allow us to send commands to the terminal session.
07:43 This is where the TTYD commands starts to become incredibly useful in my opinion, especially if you happen to pair it with Tailscale and run it on a VPS. Personally, I like to use TTYD on a dedicated VPS instance with both Tailscale and Claude Code installed. By doing so, it means I can effectively Vibe Code or more accurately, Vibe Engineer from my phone whilst I'm on the road.
08:06 And because I use a dedicated VPS instance to do this, then I effectively have an always online agent that can operate regardless of my own internet connectivity. If you're interested, I'll do a dedicated video in the future talking more about this setup. However, for the meantime, let me quickly talk about both my VPS provider and the sponsor of today's video, Hostinger.
08:28 If you're looking to get your own long-term VPS instance that can handle either production projects or be used with applications like TTYD, then now is the perfect time. This is because Hostinger is currently having their Black Friday sale, meaning you can get a long-term high resource VPS instance at some of the best prices of the year. Take for example the KVM2, which is the instance size that I use to run all of my production services.
08:53 This instance comes with two vCPUs and 8 gigs of RAM, which is more than enough to run multiple applications at the same time. If that wasn't good enough, however, the KVM2 also comes with 8 TB of monthly bandwidth, which if you try to run using something like Versel, would end up costing you an arm and a leg. When it comes to the KVM2, however, thanks to the Black Friday sale, this only costs $6.49 a month when you purchase a 24-month term.
09:20 Additionally, you can also get this price even lower. By making use of my coupon code, dreams a code when you check out, you'll save an additional 10% off the already low price. So, to get your own VPS instance during this Black Friday sale, then make sure to visit hostinger.com/dreamsofcode or use my link in the description down below. and make sure to use my coupon code dreams of code when checking out to get that additional 10% off.
09:45 A big thank you to Hostinger for sponsoring this video. The next CLI command that I'm betting you've not heard of is one that I've been using a lot recently to help improve my own productivity. This command is JRnl, pronounced journal, which is a lightweight journaling app for the terminal. Journal basically takes the idea of something like bullet journaling and applies it to the terminal in an open- source way, allowing you to write down or note your thoughts as easily as possible.
10:16 To get started with the application is as easy as using the journal command, which will prompt you to create a new journal, which you can also encrypt if you want to keep your thoughts private. Once you have a journal initialized, you can then add an entry to it by using the journal command, passing in the text you wish to add. Once added, I can then list the most recent entries using the journal command with the -ashn flag, specifying the number of entries I wish to return.
10:45 In this case, I'm passing in the value of 10, although I only have two entries available, both of which are returned. In addition to being able to add entries, the journal command also allows you to retrieve them by querying for different options, such as the associated timestamp of an entry or searching for entries that contain a specific string. Each of these options can either be combined together or negated, enabling you to create complex queries to find the entry you're looking for.
11:11 Other features that the CLI command provides includes the ability to use tags, mark entries as favorites, modify the associated timestamp of an entry, and even work with multiple journals. Say you want one specifically for work entries and a different one for personal use. All of this makes Journal an incredibly powerful yet minimal journaling application, enabling you to write down your thoughts without ever having to leave the terminal.
11:35 Okay, so that's five commands down. Hopefully, there's been at least one so far that you haven't heard of. If not, then I'm hoping that this next one will be new to pretty much all of you. Although, it is a little bit of a cheat as it's not a dedicated CLI application, but instead it's a command you use with curl. This is the following curl command with the domain of wtt.in, in which if I go ahead and execute, you can see returns back a weather forecast for my current location which is currently Dublin, Ireland.
12:07 This command allows you to basically get back the weather for your current location. However, you can easily change it by either using a VPN to change your IP or a much easier approach is to just pass in the location as a path parameter. For example, let's say I want to get the current weather for Chicago. All I have to do is pass this in as a path as follows.
12:29 Whilst this isn't a CLI application, it's still a really cool CLI command, especially as an example of what you can achieve using an API endpoint to fetch information that displays well in the terminal. Speaking of which, if you happen to like pulling down information from the web without ever leaving the CLI, then this next command uh might be something that you'll find interesting.
12:50 This is Newsboat, which is a textbased RSS reader for the terminal, allowing you to read from RSS feeds using a TUI interface. To set up an RSS subscription, all you need to do is add in the URL of the feed you want to subscribe to to the Newsboat configuration file. Here you can see I've got it set up with both the dreams of code and hosting a blog.
13:11 Uh, both of which you can find a link to in the description down below. Then you can go ahead and run the newsboat command which will open up the TUI application where you can download, navigate and read the various posts from your configured subscription. Very cool. Additionally, Newsboat will also open up any URLs in the feed using the terminal based web browser links uh provided you have it installed.
13:36 Next up, we have a CLI application that I think is probably going to be the one on this list that most people have heard of. Locat. LOCAT is basically identical to the CAT command in that it's used to print to standard out the standard input it receives but with one major difference in that the printed output will have a gradient color applied. By default, this is a randomly generated gradient.
14:01 However, you can of course configure LCAT a number of different ways such as being able to control the rainbow's random seed which allows you to regenerate the same output at a later time as well as also other options for the gradient including the spread or the frequency. However, my favorite flag when it comes to LCAT is the - a flag which is used to toggle animation mode causing the output to render line by line rather than all at once.
14:24 As for my own personal use case of LOCAT, I like to couple it with another CLI application called Figlet in order to produce a colored ASKI welcome message for TTYD whenever I open it up in my browser. Whilst LCAT isn't the most useful command on this list, I do find it to be a fun CLI to add a little bit of flare to other commands. This contrasts to the next application on this list, however, which is incredibly useful both as a CLI command but also as a package.
14:53 This application is faker which as I mentioned is both a CLI tool and a Python package for generating fake data. The command itself can be used to generate any type of data that you desire. Be it user identity data such as a person's name, email address, physical address, birth date, or even a social security or passport number or more user application type data such as passwords, user agents, URLs, hashes and even binary data.
15:22 All of this makes Faker extremely versatile when it comes to automated testing, user simulation, and perhaps for some more nefarious tasks. As I mentioned before, in addition to being a CLI tool, Faker is also a Python package, which means you can also use it inside of any Python scripts. Personally, I actually prefer to use the Python package over the CLI as I find it a little easier to integrate with any custom testing or simulation flows.
15:49 Therefore, whilst I do think the fake CLI is really cool, I just don't find myself using it that often. However, that's certainly not the case when it comes to the last command on this list, which happens to be extremely useful when it comes to regular expressions. This command is gre, which allows you to effectively generate a regular expression given a list of strings you want it to match against.
16:10 For example, let's say I have the following list of file names and I want a regular expression that will match against these and any other similar ones. If I go ahead and pass a couple of these to the GX command, you can see that it's produced the following regular expression, which if I go ahead and test using regx 101, you can see matches the same file names that I passed in.
16:32 However, if I try to run this reg x against all of the file names in my list, then you can see it only matches with the three that I generated the regular expression from. This is because by default the regular expression that Grex generates specifically matches the test cases you provide due to the fact that it will hardcode any values in such as characters or digits.
16:50 Fortunately, by making use of CLI arguments, we can configure Gregs to generate a regular expression that is a little more generic. To begin, we can specify that any numerical digits be set to a generic value using the d-digits flag. Next, we can then configure the generated regular expression to handle any repeating values using the -ash r flag. As you can see, this produces a much more generic regular expression, which if I go ahead and test against all of the file names on reg x101, you can see matches all of them,
17:20 even though it was only generated from three. In addition to passing in these strings as arguments, Grex also supports the ability to pass these in as a file, which can make it a lot easier when you have a lot of strings that you want to generate a regular expression from. Personally, I find Gre to be absolutely fantastic to help me get started with defining a regular expression.
17:41 And whilst it may not always work with the generic case 100% of the time, it works well for producing an expression I can then iterate from. With that, we've covered the 10 CLI applications that I'm assuming you've likely never heard of. Hopefully, there was at least one new command you learned from this list. But if you did happen to know all of them beforehand, then my hat is off to you.
18:03 However, if you did learn at least one new command, then feel free to let me know which one was your favorite in the comments down below. Personally, mine is TTYD, which I found to be incredibly useful when running Aentic AI on a VPS instance, which I'll probably do a more in-depth video on in the future. Until then, however, I want to give a big thank you to my VPS provider, Hostinger, for sponsoring this video.
18:28 If you're looking to get your own VPS instance to host all of your applications on, then Hostinger is both a great and affordable option. I've been using them for just over a year now for the majority of my production services, and I couldn't have asked for anything more. So, if you're interested in getting your own long-term VPS instance at an incredibly affordable price, then make sure to visit hostinger.com/dreamsofcode and use my coupon code dreams of code for an additional 10% off.
18:55 Otherwise, I want to give a big thank you to you for watching and I'll see you on the next one.