I love the command line interface (CLI) and that is an understatement. In my first year in college, I stopped using Windows as my day to day operating system and switch to Linux: RedHat 6.3 first and then Debian Woody.

Since that time, around 2002, I have always preferred to work with the CLI when I can.

That is probably one of the reasons I fell in love with Cisco Networking hardware, the ability to configure it in CLI, both IOS and CatOS. I had the power in my fingertips.

So, basically, I am a CLI fanatic.

Several years ago I began a disruption journey of my own. I started programming things here and there. Small scripts basically for my Linux and Mac OSX needs and soon those skills became relevant in my job as a network engineer.

I worked with Expect and later on with Paramiko, doing small tasks in switches and routers and scrapping the response for what I needed.

At that time, it was a good way to solve things but technology kept changing and more capabilities became available, stuff like REST APIs, NETCONF, RESTCONF, YANG, and others.

I am writing a series of blog posts to show ways to use these technologies to build CLI interfaces and simplify tasks. Some of the examples might seem farfetched and might not be necessarily real ones; my goal is to inspire you to learn about the technologies and think about how you can use them to create interfaces for yourself and improve your work by doing so.

I’m not asking you to become a developer, I have, at least I think I have, but it is not something for everybody. I am just trying to show you the power in APIs so you can build stuff yourself or work with a developer to do it.

I am not going deep in the concepts and technologies. I am not wasting your time, it is much better for you to check Adam Radford’s blog. He explains the concepts very clearly. I am just going to use his blogs to show other approaches, tools or programming languages.

With that brief introduction, here is the first part of “There and back again: A network engineer’s journey to the API and back to the CLI.”