Trigger¶
“Keep your eyes on the prize, and your finger on the trigger.”
What is Trigger?¶
Trigger is a robust network automation toolkit written in Python that was designed for interfacing with network devices and managing network configuration and security policy. It increases the speed and efficiency of managing large-scale networks while reducing the risk of human error.
Key Features¶
Trigger is designed to work at scale and can support hundreds or thousands of network devices with ease. Here are some of things that make Trigger tick:
Support for SSH, Telnet, and Juniper’s Junoscript XML API
Easily get an interactive shell or execute commands asynchronously.
Leverage advanced event-driven functionality to manage any number of jobs in parallel and handle output or errors as they return.
Powerful metadata interface for performing complex queries to group and associate network devices by name, manufacturer, type, location, and more.
Encrypted storage of login credentials so you can interact without constantly being prompted to enter your password.
Flexible access-list & firewall policy parser that can test access if access is permitted, or easily convert ACLs from one format to another.
Detailed support for timezones and maintenance windows.
A suite of tools for simplifying many common tasks.
Import your metadata from an existing RANCID installation to get up-and-running quickly! (added in 1.2)
Import your metadata from a CSV file and get up-and-running even quicker! (added in 1.3)
Documentation¶
Trigger v2.0+ requires Python 3.10 or 3.11. Python 2.7 support ended with v1.6.0, and Python 3.12+ is not yet supported due to SimpleParse C extension incompatibility.
For now, most of our documentation is automatically generated from the source code documentation, which is usually very detailed. As we move along, this will change, especially with regards to some of the more creative ways in which we use Trigger’s major functionality.
- Overview
- Supported Platforms
- Installation
- Migration Guide: v1.6.0 (Python 2.7) → v2.0.0 (Python 3.10+)
- Configuration
- Usage Guide
- Usage Examples
- API Documentation
trigger.acl— ACL parsing librarytrigger.changemgmt— Change management librarytrigger.cmds— Command execution librarytrigger.conf— Configuration & Settings moduletrigger.contrib— Extra, optional tools that solve common problems, extend, or modify core functionality.trigger.exceptions— Trigger’s Exceptionstrigger.gorc— Determine commands to run upon logintrigger.netdevices— Network device metadata librarytrigger.netscreen— Juniper NetScreen firewall parsertrigger.rancid— RANCID Compatibility Librarytrigger.tacacsrc— Network credentials librarytrigger.twister— Asynchronous device interaction librarytrigger.utils— CLI tools and utilities library
- Development
- License
- Getting Help
- Experimental
- Changelog
- 2.2.2 (2026-02-06)
- 2.2.1 (2026-02-06)
- 2.2.0 (2026-02-06)
- 2.1.1 (2026-02-06)
- 2.1.0 (2026-02-06)
- 2.0.3 (2026-02-05)
- 2.0.2 (2026-02-05)
- 2.0.1 (2026-02-05)
- 2.0.0 (2026-02-03)
- 1.6.0 (2017-03-08)
- 1.5.10 (2016-04-18)
- 1.5.9 (2016-04-01)
- 1.5.8 (2016-03-08)
- 1.5.7 (2016-02-18)
- 1.5.6 (2016-02-16)
- 1.5.5 (2016-02-04)
- 1.5.4 (2016-01-29)
- 1.5.3 (2016-01-19)
- 1.5.2
- 1.5.1
- 1.5
- 1.4.9
- 1.4.8
- 1.4.7
- 1.4.6
- 1.4.5
- 1.4.4
- 1.4.3
- 1.4.2
- 1.4.1
- 1.4
- 1.3.1
- 1.3.0
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2
- 1.1
- 1.0.0.100
- 1.0.0.90
- 1.0.0.80
- 1.0.0.70
- 1.0.0.60
- 1.0.0.50
- 1.0.0.40
- Legacy Versions