Like it or not, there's gonna come a day when your boss says, OH. MY. GOD. we should create a command line interface developer tooling application.
Oh, so you mean a CLI. Why don't you just say it like that? Well, I tried!
And when that day comes, you'll probably also think. But… How do we make a CLI? Introducing NodeCLI.com It's how you make a CLI.
Hello there! I am Awais and I have created hundreds of open source software and developer automation tools used by millions out there. And in this step-by-step 100-videos course, I want to teach you almost everything I know about creating CLIs and automation software.
We'll start by learning what is Node.js and the Node.js fundamentals. I'll teach you how to install and manage different versions of Node.js for different projects. And then, we'll quickly jump in; to start creating your first automation CLI project.
That's not all! You're also going to publish it for everyone to use, even for the people who are sitting in the outer space. Will you teach how to create node-modules?
Are there any production-ready CLI projects? Yup!!! Literally, everything you need to know to start creating awesome CLI projects.
And in this course, you are going to be building more than 20 projects completely from scratch. We are also going to do a production-ready, CLI project; a CLI that can create CLIs. It's going to be absolutely amazing.
You see making CLIs and automating your work has always been tough. Even today it is. Welcome back to part seven of our 58-part course on "how to exit vim?" But NodeCLI.com is simple.
Minimum effective effort? Minimum effective effort?! Oh, geez!
Yes, minimum effective effort. It's when you spend the least amount of time to produce most effective work. It's like doing more with less.
In this course, I'm going to teach you how to quickly prototype a CLI to automate literally anything. You see if you're spending more time creating the automation software, wouldn't you rather go ahead and do it manually? ha ha ha ha ha ha ha … It's what I've been doing my whole life. Oh yes, because creating automation software so damn hard.
You just sit back, relax, and say, Whoa! You have been waiting for this for years. I've been waiting for this for years!
I have been waiting for this for years! So, what are you waiting for? Hop in or subscribe for free, and I'll send you the first hour, i.e. 12 videos of this course completely free, on me.
Let me help you do more good. Automate your work. Create more automation projects that you can open-source to build excellent portfolio and become a senior dev where you can demand more salary for a skill like this.
Let's create your first CLI or 20th, but this time much, much better. Believe you me. By the end of this course, you'll feel like a hacker straight out of a Hollywood movie doing bunch of chores on a press of a button and whispering… I am in!
Well, I am in. But the question is, are you in? Sign up at NodeCLI.com and I'll see you there.
MUSIC: Wholesome & Sneaky Snitch by Kevin MacLeod https://incompetech.filmmusic.io/song/4384-sneaky-snitch https://incompetech.filmmusic.io/song/5050-wholesome SFX: https://freesound.org/people/Leady/sounds/26719/ License: http://creativecommons.org/licenses/by/4.0 Peace!
Price excludes tax VAT/GST
5,318+ ALREADY SOLD
VIDEOS:All Videos (~10 hours)
EXPIRY:Single One-time Payment
UPDATES:Free Lifetime Course Updates
EXAMPLES:Over 21 Node.js CLI Projects
EVERYTHING:Including all lessons & modules
COMMUNITY:Free Access to Private Discord
VALUE FOR MONEY:14 days refund (no Q/A)
Save 10% today!
Price excludes tax VAT/GST
5,318+ ALREADY SOLD
TEAM ACCOUNTS I have great discounts available if you're buying for 5+ team members — 50% to 70% off. Apply for the team-discount by letting me know how many team members you have.
Apply for Team discount— GET IN TOUCH WITH AWAIS!
I bought this course because I'm extremely interesting in building CLIs and want to deepen my knowledge even more. This course is by far the best value for the amount of content I've seen maybe ever. If you're interested in modern development, this is a solid investment!Nader DabitSr. Developer Advocate · Amazon
Suuuuper stoked for this I just picked up my copy of NodeCLI course! I can't wait to take my CLI skills to the next level. Keep up the great work Awais.Alexander RomanoFull Stack Associate App Developer · SKF · Virtually(Creative)
I've been walking through the VSCode.pro power user course by Ahmad Awais and I'm learning a lot! Bought the Node CLI course too, just to brush up. Good stuff.Kassian Rosner WrenDeveloper Advocate · Cloudflare
Ex Auth0, Bocoup
I had the chance to go over the course I can say it's brilliant! The amount of work and details @MrAhmadAwais has put into the course is astonishing. Also, it's a subject you don't see that often. Give it a go.Catalin PitSoftware Engineer at TypingDNA
I am learning a lot from the course. And it's approachable even if you're not experienced with Node.js.Tommy WilliamsSr. Director/Developer · Tempest Tech
Ex Group PM · Microsoft (14yrs)
Awais thanks for Node CLI course! This looks like a great set of resources! I love the intro video, top notch!!Scott SpenceWeb Developer · Karmarama UK
INTRODUCTION:What, why, who? Node.js CLI ToolsWATCH
NODE.JS:Understand what is Node.js?WATCH
NODE.JS:Node.js: Server Load TestWATCH
NODE.JS:Release Cycle - Current + Long-term supportWATCH
NODE.JS:Difference between npx and npmWATCH
You can install Node.js pretty easily. But maintaining different versions of Node.js for each project, changing between Active LTS, Maintenance LTS, Current version, and keeping up with node modules for each can be quite a task. Let me teach you exactly how I do it. We'll compare different options like
NODE.JS:How to download and install Node.jsWATCH
NODE + nvm:Node.js Version Management with nvmWATCH
NODE + nodenv:Node.js Version Management with nodenvWATCH
NODE + asdf:Node.js Version Management with asdfWATCH
NODE + n:Node.js Version Management with nWATCH
SUMMARY:Node.js Installation & ManagementWATCH
Here I'll take a step by step approach to building and publishing your first Command-Line Interface (CLI) project. You'll create a GitHub repo, an account on npmjs.com (inside your terminal), learn about semantic versioning, and will publish your project. The whole shebang. I'll talk about the readme, keywords, author info, and licensing. Finally, we'll polish the User Experience (UX) of your CLI app by adding colors, welcome-header, & custom alerts.
NODE.JS CLI:Building & publishing your first CLIWATCH
NODE.JS CLI:Creating GitHub and npmjs.com accounts
NODE.JS CLI:Difference between Bash vs Node
NODE.JS CLI:What is #! or shebang or hashbang?
NODE.JS CLI:npm link with package.json bin command
NODE.JS CLI:npm adduser, npm whoami, npm publish
NODE.JS CLI:npx yourname to run the CLI
NODE.JS CLI:Semantic Versions major.minor.patch
NODE.JS CLI UX:How to clear-any-console?
NODE.JS CLI UX:Welcome Header CLI introduction
NODE.JS CLI UX:Author info, readme, keywords, & license
NODE.JS CLI UX:Everything about CLI colors with chalk
NODE.JS CLI UX:Custom styled CLI alerts
Have you ever wondered how to build an actual Node module or npm package? In this chapter, I'll teach you how to build a Node module from scratch. We'll publish a real-life, production-ready npm package. This will help you create more FOSS (Free & Open Source Software) while building Node.js CLI applications.
NODE-MODULE PKG:Building & publishing your first node-module
NODE-MODULE PKG:Introduction: npm module pkg?
NODE-MODULE PKG:Architecture, files, & configuration
NODE-MODULE PKG:npm module dependencies
NODE-MODULE PKG:Coding a Node.js module
NODE-MODULE PKG:Custom options & Default options
NODE-MODULE PKG:Testing npm node modules
NODE-MODULE PKG:Refactoring a Node module
NODE-MODULE PKG:Publishing node-modules
Learn everything I know about handling errors in Node.js Command-Line Applications. You can build CLIs that run on specific versions of Node.js. Gracefully notify your users to update their node version. Even handling errors that are unexpected and unhandled. I'll also share my custom error handling module that you can use right away.
ERROR HANDLING:Check the Node.js version
ERROR HANDLING:CLI handle the unhandled errors
ERROR HANDLING:Refactor your CLI with an IIFE
ERROR HANDLING:Node process custom error handler
ERROR HANDLING:(IIFE) Immediately Invoked Function Expression
The theory is boring. I know. Yet without knowing all of the concepts in this chapter, you'll find yourself struggling with complex automation projects. We don't want that. That's why I'm teaching just enough so that you can understand Node.js with minimum effective-effort.
THEORY:Node.js Event loop (the right way)
THEORY:Node.js process & paths
THEORY:Node.js process.cwd() paths
THEORY:Node.js process.exit() strategy
THEORY:Node.js process.env info
THEORY:Node.js process.argv arguments
THEORY:Node.js process stdin stdout stderr
THEORY:Node.js parsing CLI arguments
You can code a Command-Line Interface all by yourself. To quickly prototype a production-ready CLI with minimum effective-effort, you can use one of the many available CLI frameworks. I'll review a couple of excellent CLI frameworks. And we'll start building out the Command-Line Interface based on top of
meow a minimal CLI Apps helper.
FRAMEWORKS:Node.js CLI frameworks
FRAMEWORKS:Node.js CLI flags, inputs, help
CLI HELPER:meow: Introduction, what & why?
CLI HELPER:meow: Creating help command
CLI HELPER:meow: CLI Refactor (production-ready)
CLI HELPER:meow: Help command refactor
CLI HELPER:meow: Help command UX with colors
CLI HELPER:meow: CLI version printing
CLI HELPER:meow: CLI flags & Flag aliases
CLI HELPER:meow: CLI flag detailed schema
CLI HELPER:meow: CLI flag minimal output
CLI HELPER:meow: CLI flag controlled clear screen
CLI HELPER:meow: handle missing command
CLI HELPER:meow: an overview of the new CLI
Mostly when building Node.js CLI Command-line Apps, you have to fetch data from an API; a remote resource. In this module, I teach how you can fetch data with node-fetch and axios. That's not all, when data is being fetched there's nothing on the CLI screen. We fix that weird user experience by introducing loading spinners that can succeed, fail, warn, or stop. Together we will improve our first CLI to fetch blog posts from our blogs.
DATA FETCHING:Fetching data in a Node.js CLI
DATA FETCHING:Fetching data with node-fetch
DATA FETCHING:Fetching data with axios
DATA FETCHING:CLI data fetching errors handling
DATA FETCHING:CLI fetching latest blog posts
DATA FETCHING:User experience loading animation
DATA FETCHING:User experience controlled spinners
Take input in your CLI from a user, process it, validate it, and provide a beautiful prompts interface. Remember the previous value in an input field (CLI temporary storage). Hide the display of a secret input like a password. Do it all with minimal effort. Some example input prompts include:
Toggle, & custom prompts.
CLI I/O:How to take user input in a CLI
CLI I/O:Taking user input with enquirer
CLI I/O:Tens of different enquirer prompts
CLI I/O:Ask questions, MultiSelect, fill forms
CLI I/O:BasicAuth, Sort, AutoComplete, Toggle
In this module, you'll learn to build 20+ different Node.js CLI Command-line projects. From simple things like a todo CLI to complex applications like pre-configurable and persistent memory with temporary storage for hints. We'll create progress bars, CLIs to execute commands, CLI Graphs, CLI Charts, and even Hollywood movie-like Hacker Dashboards all in your Command-Line. I'll also teach how to build project scaffolding or template generating CLIs like create-react-app. Caution: This is extremely fun for developers!
CLI PROJECT:Hello & Scopped Package
CLI PROJECT:Automatically Generate CLI Help
CLI PROJECT:CLI To do - manage project todos
CLI PROJECT:CLI to resize & optimize images
CLI PROJECT:CLI Quiz - Take a quiz
CLI PROJECT:CLI Survey - Fill a survey
CLI PROJECT:CLI to get WiFi Password
CLI PROJECT:CLI Remember-Me - persist config
CLI PROJECT:CLI Persistent data & temp storage
CLI PROJECT:CLI Pre-configurable like Babel & prettier
CLI PROJECT:CLI Progress Estimation & Progress bars
CLI PROJECT:CLI Display Fun Figlet printing
CLI PROJECT:CLI Project Update Notification
CLI PROJECT:CLI Graphs & Charts, Hacker dashboards
CLI TO EXECUTE COMMANDS
EXECUTE:CLI commands with child_process spawn
EXECUTE:CLI commands with child_process exec
EXECUTE:CLI commands with child_process exec p
EXECUTE:CLI commands with execa
EXECUTE:CLI commands with shelljs
CLI BOILERPLATE & TEMPLATE GENERATION
SCAFFOLDING:CLI Generate Boilerplate
SCAFFOLDING:Scaffolding like create-react-app
SCAFFOLDING:CLI Project Scaffolding
SCAFFOLDING:CLI Dynamic Template generation
INCEPTION:CLI that generates CLIs
You learned how to build CLI Command-line tools. You went through 21+ projects. But what does an actual production-grade quality CLI project look like? You're in luck because I decided to create a CLI that can create CLIs. Sort of like CLI Inception. This module teaches exactly that. Learn how to build a production-ready CLI scaffolding project.
PROD-READY:Create Node CLIs
PROD-READY:ncli: taking user input
PROD-READY:ncli: input refactor to ask.js module
PROD-READY:ncli: input refactor ask.js with questions
PROD-READY:ncli: output UX refactor with colors
PROD-READY:ncli: improve template with dynamic data
PROD-READY:ncli: template generation UX refactor
PROD-READY:ncli: validate user input cancellation
PROD-READY:ncli: graceful forced CLI cancellation
PROD-READY:ncli: optional command validation FTW
PROD-READY:ncli: fix potentially dangerous dir exists routine
PROD-READY:ncli: improve user experience, loading spinners
PROD-READY:ncli: persist in history to remember the last input
Writing CLIs is a lot of fun. Sadly, though, it's not as much fun to test and debug a CLI if something goes wrong. In this module, I'll equip you with my go-to debugging strategies. We'll study the latest techniques like log points in VSCode. You'll write unit tests for all the new released versions of your CLI tools are tested automatically. Super helpful.
UPDATES:Check and update npm dependencies
DEBUGGING:How to debug a Command-line tool
DEBUGGING:VSCode breakpoints & logpoints for debugging
UNIT TESTING:What is unit testing?
UNIT TESTING:Creating a dummy CLI for unit testing
UNIT TESTING:Write excellent unit tests for CLI Apps
EXTRA:Basics of Node.js
EXTRA:How does Node.js release-cycle work?
EXTRA:(IIFE) Immediately Invoked Function Expression
EXTRA:Reviewing popular Node.js CLI frameworks
EXTRA:Difference between npm vs npx commands?
EXTRA:Publishing @name scoped npm packages
EXTRA:FOSS (Free & Open Source Software) best practices
Yes, yes! I don't want money to get in the way of learning.
TEAMS: I have great discounts available if you're buying for 5+ team members — 50% to 70% off. Feel free to contact me, and I'll set you up with 5/10/…/100+ accounts with reasonable discounts.
PPP: Course too expensive where you live? I am a big believer in purchasing power parity. get in touch with for PPP discounts.
WORKSHOPS: You can also get in touch with me for workshops or conference talks on this topic.
STUDENTS: Email me any sort of schooling proof, i.e., uni/college card, Bootcamp ID, and I'll send you a student discount.
Oh, that. Just buy a package. I recommend the masterclass for the most bang for your buck. Once the payment is received, you get a welcome email with access to my course platform, click the access link, set a password, and stream the course anytime with any device.
The videos are crystal clear, professionally recorded at a whopping 1920x1080 resolution for TrueHD™ 1080p result. I invested over $1000 bucks in my audio setup, no pops, clicks, or weird breathing sounds there. I am actually funny at times. No slides/ppts just the real deal and actual hands-on demos.
I love to teach, I can't help it, I think it's genetic bug. Both my grandparents and parents grandparents are teachers. So, believe you me — I don't assume anything.
I'll take your hand and walk you through each and everything, the pace is just right, you won't find sleep-inducing material here. So, yeah this course is equally suitable for beginners and advanced developers. You can even slow down the pace to 0.75x and make it go faster to 2x. Easy peasy.
My software and courses are helping thousands of developers become experts at what they do — every single day. If for any reason, you're feeling blue and not satisfied then email me within 14 days of your purchase and I'll refund you. Do mention the email address you bought the course with. Money-back guarantee. Seriously, I want you to learn. That's simple. No question about it.
No worries. All of my courses live here → Courses.AhmadAwais.com. So what you need to do is, go to the Forgot your password? link — use the same email address you bought the course with, and you'll get the same welcome access email again — set a new password & login.
That's true, you pay only once, the videos access never expires. When you're learning with me, I don't want you to feel like you're paying for university or Netflix. It's a one-time investment that pays itself over ten folds. No recurring payments. No expiry dates. Truly learn at your own pace without worrying about any subscription cost.
I have set up a USES page to answer such questions. Developers often ask me about what theme I use (hint: Shades of Purple), what are my favorite TV shows, macOS apps, terminal workflow, yadda yadda… all of that is listed on this page →
Ex Auth0, Bocoup
Ex Group PM · Microsoft (14yrs)
Wow; the quality of the courses is outstanding. Really great work Awais Awesome work!Alberto MedinaGoogle Developer Advocate · Ph.D. CS
Just grabbed the new NodeCLI.com course from @MrAhmadAwais @NodeCLI. Really stoked to dig into this!Tre AmmatunaSoftware Engineer - AWS SageMaker Studio · Ex Microsoft
Shit, I didn't know that!!!!!!! This tip is life changing to me!!Zouhir ⚡Edge Microsoft · Google Dev Expert
Today for #devAdvent: the very hardworking @MrAhmadAwais! Awais is a WordPress Core member and TEDx speaker and he recently created a course to help people become VS Code Power Users. If you're using VSCode as your editor, VSCode.pro is a fun/cool resource!Sarah DrasnerVP of Developer Experience · Netlify
Vuejs Core Team · Ex Microsoft
I also just made the decision to move away from PHPStorm to VSCode. I mean, just one year in license fees pays for the VSCode.pro master package and I'll learn from one of the best Just by going through the UI improvements videos, I can already see how the course will help me become #VSCODEproJan KochMentor at WPMastery
"OMG awesome. How do you find those class names?" — Said in response to a VSCode tip shared by Awais on Twitter.Dan AbramovCore Dev ReactJS at Facebook
It’s a 5 hour course that teaches you a huge amount of knowledge and after going through it myself, I can state that even as a fairly advanced user of VS Code, Awais taught me some neat tricks that I immediately am integrating into my workflow now.Benjamin LannonVSCode Extensions Developer in NY
I've been using VSCode for a few months and I'm not a power user at all. Thanks to @MrAhmadAwais for creating an amazing course to help me bridge that gap in a short time. I highly recommend his course if you're looking to level up your VSCode game.Haris ZulfiqarFounder Avada · Engineer at WDS
If you're looking to expand your VSCode knowledge, I have no doubt this course will be extremely useful. @MrAhmadAwais does great work.Jeremy EnglertCore Contributor ZURB Foundation
Just grabbed @MrAhmadAwais's #VSCODEpro course masterclass. If you use any code editor, make the move. Support Awais :) he's a top guy — does great work. → VSCcode.proMike StottCore Contributor ZURB Foundation
I love this theme! 🦄 Themes with more unique colors like purple are relatively rare, so it's great to see purple represented here. 😃 It's a fun theme, and it's easy to read! 🙌Ali SpittelTech Director WomenWhoCode
Kudos to the teacher @MrAhmadAwais for making the #VSCODEpro learning a breeze. I am on the 14th chapter and this is getting as exciting as binge learning. Awais, your hard work is making a student's life easy. You deserve great respectRaghu VamsiSCRUM Master + Front End Dev
I always find him to be an excellent communicator, highly skilled, considerate, and extremely generous. He's a pleasure to collaborate with and he's produced some very impressive public and FREE #OpenSource work for developers to learn and benefit from. In my book, those are some of the best characteristics to have in a person. Awais is highly recommended.Matt CromwellPartner/Head Community Impress.org
I've never known someone to create such useful things on a regular basis. Truly impressive sir. I mean it. You just pump stuff out. It's incredible.Lee PetersonCreative Lead at Rusty Dog Design
I've read over Awais's tutorial a few times and implemented most of it. He's the bee's knees for this kind of stuff. — In ref to the WordPress & Gulp implementation via WPGulp.Alex ColemanWeb Designer at LeftSideDesign
This is a gorgeous, high contrast theme that stands out without getting in the way. Especially great for doing developer talks and screencasts and maintained by a supremely dedicated expert in all the VSCode pro tips. The documentation itself is a thing of beauty, too. 5 Stars!Shawn Swyx WangDev Experience @Netlify · Reactjs
Yes, Awais writes great WordPress tutorials and makes great looking themes and websites, but that's not the only reason I endorse Awais. He is a great community member, he is a core contributor to WordPress and always helpful to other WordPress users. Also, he is a really nice guy, which is important.Josh PollockLead Dev & Founder CalderaWP
Ahmad has written tutorials for me to publish at Tuts+ on a number of occasions, and I always appreciate his level of expertise both in the subject matter…, and in helping to educate others. I would hire Awais again for… training or consultancy in a heartbeat.Japheth ThomsonDirector of Hosting at Human Made
I know Awais from his contributions to world wide web. His expertise in web & software technologies and his contributions to various open-source projects make it stand out of the crowd. I highly recommend Awais.Jabran RafiqueTech Lead at Rated People
I'm really impressed with how much you are participating in the WordPress community! It's pretty insane. You're probably one of the most engaged people I have seen, ever. 😀Stanislav KhromovDev at Schibsted Media Group
It is extremely rare that you come across highly skilled talent like Awais! We worked together on several occasions over the years and his efficiency is beyond superior.Emil UzelacWordPress Quality Control Specialist
Awais regularly contributes to WordPress core for code and UX improvements. He is one of the most passionate developers I have ever met with an insatiable desire to streamline the workflow of the process of everything he works on. He dives in head first to any new challenges and conquers them with his tenacity and intelligence which make Awais an invaluable asset to any project.Mike AndreasenWordPress Expert at Codeable
Awais is a very thorough writer and he is extremely knowledgeable of the WordPress industry. He knows exactly what is going on in the WordPress community and his outreach is an addition to any blog. I would recommend him.Daan TollOwner of WPLift
I switch syntax themes so often, but I haven't felt the need to switch since using 🦄 Shades of Purple for the past 6 months, it's my new default 😃 - keep up the good work man!Adam HollisterLead Developer at The British & Irish Modern Music Institute
Amazing job with balancing out the colors to ensure it's not overloading the eyes. The comments, and markdown syntax semi-hidden state styling is also a good idea! If it's not critical to always see this information then it makes sense to reduce it's visibility. Nice job mate.B ...SOP Review
I jumped ship from Cobalt 2 by Wes to 🦄 Shades of Purple theme by Ahmad Awais and I'm not looking back, beautiful shades of purple lighten up my code in a way that no other theme can, great job Awais!IgnacioaalRails Hacker
At go6.media we always use Shades of Purple for all our PHP/HTML/JS/CSS and other languages. It's so beautiful and easy to read, we also added some slight tweaks to make it even better and we could not be happier that we found it. Thank you!WayneDevs at Go6 Media
Awais takes his extension seriously and fixed a bug for me overnight. A fantastic theme that is both attractive but more importantly, effective in bring your attention to the import parts of your code.Mark PorterDev at PorterPeople
I started loving the 🦄 Shades of Purple theme from its name ;) After seeing images of the themes, I saw there was more and to get to know about the 'more', an installation will have to occur which did occur...After installation, I got to find out that the theme is super duper awesome than I thought… Welldone Ahmad AwaisUche JudeSoftware Developer Andela
Have been using 🦄 Shades of Purple theme for the last couple of weeks and in love with it. Its fun writing code with those shades of purple <3Ajit BohraEngineer & Speaker @lubusIN