netmiko
Multi-vendor library to simplify legacy CLI connections to network devices
Decision gist · record as of 2026-08-14
Yes. Netmiko is a mature, actively maintained library with strong community adoption (4246 stars, top 5000 PyPI packages), zero known vulnerabilities, permissive MIT licensing, and low install friction. It directly solves the problem of multi-vendor network device automation with a clean API. Install it if you need to automate CLI-based network device management.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires SSH access to the target network device; device_type must match a supported platform in netmiko's CLASS_MAPPER.
- Low install friction with a pure-Python wheel distribution.
- The package is actively maintained with recent releases and has accumulated 4246 repository stars since its first release in 2015, indicating stable, long-term community support.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions, making it suitable for most network automation projects without licensing concerns.
last release 2026-05-12 (94 days) · last repo commit 2026-07-24 · 4,246 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,234,277 downloads/mo, #4,179 on PyPI
Alternatives
Verify before relying
from netmiko import ConnectHandler
device = {
'device_type': 'cisco_ios',
'host': '10.10.10.10',
'username': 'admin',
'password': 'password',
}
net_connect = ConnectHandler(**device)
output = net_connect.send_command('show ip int brief')
print(output)
net_connect.disconnect()- Exact number of supported device types and vendors beyond 'broad set of platforms' mentioned in description
- Whether TextFSM integration requires additional configuration or is automatically available
- Performance characteristics when managing large numbers of concurrent device connections
What it is and what it does
Netmiko is a multi-vendor SSH library designed to automate network device management by providing a unified interface for executing show commands and configuration changes across different network platforms. Rather than requiring developers to write low-level SSH and regex parsing logic for each device type, Netmiko abstracts these details away—you define a device dictionary with connection parameters, instantiate a ConnectHandler, and call methods like send_command() or send_config_set() to interact with the device. The library handles SSH session management, command mode transitions, and output parsing internally.
The package depends on paramiko for SSH transport, pyserial for serial connections, textfsm and ntc-templates for structured output parsing, pyyaml and ruamel.yaml for configuration handling, scp for file transfer, and rich for terminal output formatting. It supports modern Python versions (3.10 through 3.14) and is actively maintained with no known security vulnerabilities. The library is well-suited for network engineers building automation scripts, configuration management tools, or monitoring systems that need to interact with CLI-based network devices.
Use it for
- Gather interface statistics and routing tables from multiple Cisco, Arista, or Juniper devices in a single script without vendor-specific SSH logic
- Apply configuration changes across a fleet of network devices by passing a list of commands to send_config_set()
- Parse structured data from show command output using TextFSM templates for programmatic analysis
- Build network inventory tools that query device facts and system information via SSH without manual state management
- Automate backup of running configurations from network devices and store them centrally
- Transfer files to and from network devices using the integrated SCP support
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Netmiko is a mature, actively maintained library with strong community adoption (4246 stars, top 5000 PyPI packages), zero known vulnerabilities, permissive MIT licensing, and low install friction. It directly solves the problem of multi-vendor network device automation with a clean API. Install it if you need to automate CLI-based network device management.
Install
netmiko on PyPI
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with recent releases and has accumulated 4246 repository stars since its first release in 2015, indicating stable, long-term community support.
Requires SSH access to the target network device; device_type must match a supported platform in netmiko's CLASS_MAPPER.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most network automation projects without licensing concerns.
Quickstart
from netmiko import ConnectHandler
device = {
'device_type': 'cisco_ios',
'host': '10.10.10.10',
'username': 'admin',
'password': 'password',
}
net_connect = ConnectHandler(**device)
output = net_connect.send_command('show ip int brief')
print(output)
net_connect.disconnect()
Verify before relying
- Exact number of supported device types and vendors beyond 'broad set of platforms' mentioned in description
- Whether TextFSM integration requires additional configuration or is automatically available
- Performance characteristics when managing large numbers of concurrent device connections
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 8 packagesntc-templatesparamikopyserialpyyamlrichruamel.yamlscptextfsm |
| Maintenance | Actively maintained 94 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,234,277 / month, #4,179 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | License :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14 |
Evidence: netmiko-4.7.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “cli command execution network”
- netmikoNetmiko simplifies SSH connections to network devices across multiple…
- uniconUnicon provides a unified CLI connection interface to network…
- speedtest-cliCommand-line tool that measures internet bandwidth (download and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
psutil retrieves real-time information about running processes and system resources (CPU, memory, disks, network, sensors) across multiple operating systems, enabling system monitoring, process profiling, and resource management.
pyOpenSSL wraps OpenSSL's SSL/TLS functionality for Python, providing high-level connection objects and certificate handling through a Python-friendly interface around OpenSSL's cryptographic operations.
uvloop is a drop-in replacement for Python's built-in asyncio event loop, implemented in Cython and using libuv, that accelerates async I/O operations.
execnet lets you spawn and communicate with Python interpreters across local processes, remote hosts, and different platforms, using a simple API for task distribution and inter-process messaging.
However, the aging maintenance status (275 days since last release) means you should verify it meets your concurrency and performance needs before committing to a…
PyZMQ provides Python bindings for ZeroMQ (ØMQ), a lightweight messaging library that enables fast, asynchronous communication between distributed processes and applications.
See also napalm · scrapli · unicon.plugins · paramiko · unicon · junos-eznc · jumpssh · pyats.connections · netconf-client · ntc-templates