skillfed

genie

Genie: THE standard pyATS Library System

genie v26.7 283.1K downloads/30d#8,079 on PyPI
Permissive license Apache 2.0 Active released

What it is and what it does

Genie is a test automation framework and standard library for pyATS, designed to accelerate network testing by providing object-oriented abstractions for device configuration (Conf), operational state (Ops), and event-driven testing through a modular harness. It abstracts away differences between operating systems and management interfaces (CLI, YANG, REST), allowing developers to write reusable test cases in Python that work across heterogeneous network environments.

The framework bundles configuration management, operational state representation, test harness orchestration, and utility functions into a cohesive system. Developers use Genie to define network topologies, verify device states, and trigger dynamic test scenarios based on predefined events. It supports rapid iteration and scaling from simple linear tests to complex asynchronous suites, with active maintenance and broad Python version support (3.8+) on Linux and macOS.

Use it for:

  • Automate network device configuration validation across multiple vendors and OS types using unified Python objects
  • Build event-driven test suites that dynamically generate test cases based on network triggers and verification rules
  • Verify operational state consistency across network devices after configuration changes or failures
  • Develop reusable test libraries for CI/CD pipelines in network automation and NetDevOps workflows
  • Perform data-driven testing of network features with scalable, asynchronous test execution

Worth the install?

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

Genie is a test automation library and harness built on the pyATS framework, providing object-oriented abstractions for network device configuration, operational state, and event-driven testing across multiple operating systems and management interfaces.

Yes, if you are building network test automation on Linux or macOS. Genie is actively maintained, production-stable, carries no known vulnerabilities, and provides a mature framework for network device testing. The permissive Apache 2.0 license and broad Python support (3.8+) make it suitable for enterprise use. Install friction is moderate due to 12 dependencies, but prebuilt wheels minimize compilation overhead. Not suitable for Windows environments.

Install

genie on PyPI

pip

pip install genie

uv

uv add genie

poetry

poetry add genie

Installing genie

Before you install

Medium install friction due to 12 runtime dependencies including multiple genie.libs subpackages. Active maintenance with a release 7 days ago. Supports Python 3.8+ across macOS and Linux with prebuilt wheels for Python 3.10–3.14.

License in practice

Apache 2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for enterprise network testing environments.

Quickstart

pip install genie

from genie import testbed

tb = testbed.load('testbed.yaml')
device = tb.devices['device_name']
device.connect()

Requires Linux or macOS; Windows is not supported. Testbed YAML configuration file needed to define network devices.

Verify before relying

  • Specific capabilities of each genie.libs subpackage (conf, clean, health, filetransferutils, ops, parser, sdk) and how they integrate
  • Whether all 12 runtime dependencies are always required or if some are optional for specific use cases
  • Current state of documentation and examples at the Cisco DevNet homepage

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (>=3.8)
Install friction medium — platform-specific wheel
Runtime dependencies 12 — PrettyTable, tqdm, dill, jsonpickle, netaddr, genie.libs.conf, genie.libs.clean, genie.libs.health, genie.libs.filetransferutils, genie.libs.ops, genie.libs.parser, genie.libs.sdk
Maintenance actively maintained — 7 days since the last release
First released
Downloads 283,131/month — #8,079 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: genie-26.7-cp310-cp310-macosx_11_0_universal2.whl; genie-26.7-cp310-cp310-manylinux2014_aarch64.whl; genie-26.7-cp310-cp310-manylinux2014_x86_64.whl; genie-26.7-cp311-cp311-macosx_11_0_universal2.whl; genie-26.7-cp311-cp311-manylinux2014_aarch64.whl; genie-26.7-cp311-cp311-manylinux2014_x86_64.whl; genie-26.7-cp312-cp312-macosx_11_0_universal2.whl; genie-26.7-cp312-cp312-manylinux2014_aarch64.whl; genie-26.7-cp312-cp312-manylinux2014_x86_64.whl; genie-26.7-cp312-cp312-musllinux_1_2_x86_64.whl; genie-26.7-cp313-cp313-macosx_11_0_universal2.whl; genie-26.7-cp313-cp313-manylinux2014_aarch64.whl; genie-26.7-cp313-cp313-manylinux2014_x86_64.whl; genie-26.7-cp314-cp314-macosx_11_0_universal2.whl; genie-26.7-cp314-cp314-manylinux2014_aarch64.whl; genie-26.7-cp314-cp314-manylinux2014_x86_64.whl

Keywords: genie, pyats, test, automation, cisco, netdevops

Development Status :: 5 - Production/StableDevelopment Status :: 6 - MatureEnvironment :: ConsoleIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsIntended Audience :: Telecommunications IndustryLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: POSIX :: LinuxProgramming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonTopic :: Software Development :: Build ToolsTopic :: Software Development :: LibrariesTopic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Testing

Tags

network test automationpyats test frameworkdevice configuration testingnetwork device opscisco network testingevent-driven test harnessnetwork state verification
network-automationcisco-pyatstest-harness

More Libraries packages