Networking & Messaging

netmiko

Speaks fluent router and switch, so network engineers don't have to type the same commands by hand endlessly.

Install it: pip install netmiko

What does it do?

Netmiko lets a Python program log into network devices, routers, switches, firewalls, from many different manufacturers, and run commands on them the same way a network engineer would type them into an old-school text terminal. Think of it as a universal remote that works across brands of TV, radio, and speaker system, when normally each manufacturer’s device expects its own particular sequence of button presses. Many network devices still rely on decades-old command-line interfaces that were never designed for automation, and Netmiko handles the fiddly connection quirks, like login prompts and differing command styles, across vendors like Cisco, Juniper, and Arista. This lets engineers write one script that reconfigures hundreds of devices instead of typing the same commands into each one by hand.

See it in action

This logs into a network router using its address and login details, runs a status-checking command on it, and prints the router’s response.

from netmiko import ConnectHandler

device = {
    "device_type": "cisco_ios",
    "host": "192.168.1.1",
    "username": "admin",
    "password": "your_password_here",
}

connection = ConnectHandler(**device)
output = connection.send_command("show ip interface brief")
print(output)

Why would a non-developer care?

Corporate networks, ISPs, and data centers still rely heavily on legacy command-line device management, and manually configuring each device one at a time simply doesn’t scale once there are hundreds or thousands of them. Netmiko is part of the reason network automation became practical at all for teams stuck supporting older hardware.

Real-world examples

Netmiko, created by network engineer Kirk Byers, became one of the most widely adopted tools in the network automation community specifically because it papers over the maddening inconsistencies between vendors’ command-line interfaces. It’s commonly used by network engineers at companies managing large fleets of routers and switches who need to push configuration changes or pull status information without manually connecting to each device.

Who uses it

Network engineers and IT infrastructure teams responsible for configuring and monitoring routers, switches, and other network hardware at scale.

How it compares to alternatives

It builds on top of Paramiko, the general-purpose Python library for SSH connections, adding network-device-specific handling on top, and it’s often discussed alongside newer approaches like Cisco’s NAPALM or vendor-native APIs, which aim to replace command-line scraping with more structured data.

New to Python and want to actually try libraries like this yourself?

Find a beginner-friendly course

Related libraries