skillfed

scrapli

Fast, flexible, sync/async, Python 3.7+ screen scraping client specifically for network devices

scrapli v2026.2.20 126.9K downloads/30d#11,761 on PyPI695
Permissive license MIT License Copyright (c) 2021 Carl Montanari Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) Active released

What it is and what it does

scrapli is a Python library designed for automating interactions with network devices via SSH or Telnet. It abstracts the complexity of device communication by providing a consistent API across multiple vendor platforms including Cisco, Juniper, and Arista. The library is built with speed and developer experience in mind, offering full type hints for IDE support and a clean, straightforward interface for connecting to devices, sending commands, and retrieving output.

The package has no external dependencies for core functionality, relying only on Python's standard library. It supports both synchronous and asynchronous operations and provides a pluggable transport system, allowing users to extend or replace the default SSH/Telnet transports with custom implementations. The library is actively maintained, well-tested against real network devices, and suitable for network automation, configuration management, and operational scripting tasks.

Use it for:

  • Automate configuration changes across multiple network devices from a single Python script
  • Build network monitoring and health-check tools that query device state via CLI
  • Integrate network device management into larger infrastructure automation workflows
  • Create vendor-agnostic network automation scripts that work across multiple platforms
  • Develop operational runbooks that execute commands and parse output from network devices

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

scrapli is a Python library for connecting to and automating network devices via SSH or Telnet, with support for multiple vendor platforms and a pluggable transport system.

Yes. scrapli is a mature, actively maintained library with zero known vulnerabilities, no external runtime dependencies, and broad platform support for network device automation. It is well-suited for anyone automating network operations or building tools that interact with CLI-based network devices. The MIT License imposes no restrictions on use or distribution.

Install

scrapli on PyPI

pip

pip install scrapli

uv

uv add scrapli

poetry

poetry add scrapli

Installing scrapli

Before you install

Installation is straightforward with no external runtime dependencies for core functionality. The package is actively maintained with a recent release and no known vulnerabilities, making it a low-friction addition to network automation workflows.

License in practice

MIT License permits unrestricted use, modification, and distribution in both open-source and commercial projects, with only the requirement to include the original license notice.

Quickstart

pip install scrapli

from scrapli import Scrapli

device = {
    "host": "10.0.0.1",
    "auth_username": "admin",
    "auth_password": "password",
    "platform": "cisco_iosxe"
}

conn = Scrapli(**device)
conn.open()
print(conn.get_prompt())

Requires Python 3.9 or later; SSH/Telnet connectivity to target network devices; appropriate credentials and network access.

Verify before relying

  • Whether the ssh2 transport plugin mentioned in the description is included or requires separate installation
  • Performance characteristics compared to other network automation libraries
  • Extent of platform support beyond the keywords listed (arista, cisco, juniper, etc.)

Package facts

License MIT License Copyright (c) 2021 Carl Montanari Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 175 days since the last release
Last repo commit
First released
Downloads 126,855/month — #11,761 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: scrapli-2026.2.20-py3-none-any.whl

Keywords: arista, automation, cisco, eos, iosxe, iosxr, juniper, junos, netconf, network, nxos, ssh, telnet

License :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries :: Python Modules

Tags

network device automation ssh telnetcisco juniper arista device connectionnetwork cli screen scrapingrouter switch firewall automationnetwork device management pythonssh telnet network automationvendor-agnostic network cli
network-automationdevice-managementssh-telnet

More Python Modules packages