• Genie requires pyATS to be installed.
  • It is highly recommended to install Genie and pyATS within a virtual environment. (Cisco engineers get this automatically with pyATS installation script).
  • Cisco only make sure to request permission to bitbucket.

Prerequisite knowledge

Installation & Upgrade

Once pyATS is installed:

pip install genie


For Cisco employee, you might need to source the proxy first source /auto/pyats/bin/lab_proxy.csh (or .sh if bash)

This will install the follow packages:

Each package will be explain in this documentation, except the following which can be found in their coresponding documentation:

Code Structure

Genie code base is divided into two sections:

  • Infrastructure
  • Feature libraries & SDK


The infrastructure is the core and baseclass of Genie and is released via pip packages. For any question contact us.

Feature libraries & SDK

The feature libraries & SDK are user-community owned and developed. When installing Genie, all the libraries are automatically installed with the latest version. To contribute to the library, do the following:

  1. git clone
  2. pip uninstall genie.libs.conf genie.libs.ops genie.libs.sdk
  3. cd genielibs
  4. make develop


Make sure to understand how develop mode works for setuptools.

Once this steps are done, you can develop any changes and send pull request. Here are some rough steps. No exact steps can be given as every scenario is different. Make sure you are familiar with git.

git branch
git checkout -b <branch name>
# Do the modifications on the file(s)
git add <file>
git commit -m "some message explaining the  change"
git push origin branch_name

Genie.libs are divided in 4 main parts.

  • pkgs/conf-pkg/src/genie/libs/conf/ - Libraries configuring the topology through Python object attributes
  • pkgs/ops-pkg/src/genie/libs/ops/ - Libraries representing the operational state of the topology through object attributes
  • pkgs/conf-sdk/src/genie/libs/sdk/ - Libraries creating the pool of Triggers and Verifications
  • pkgs/conf-robot/src/genie/libs/robot/ - RobotFramework libraries interacting with Genie


genie.libs.parser is owned by genie.metaparser package genie.libs.telemetry is owned by genie.telemetry package

Support Mailer

For support, question and training contact us.