Network automation toolkit for managing network devices
Project description
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.
Started by the AOL Network Security team in 2006, Trigger was originally designed for security policy management on firewalls, routers, and switches. It has since been expanded to be a full-featured network automation toolkit.
With the high number of network devices on the AOL network this application is invaluable to performance and reliability. We hope you'll find it useful on your network and consider participating!
Supported Platforms
- Cisco IOS, NX-OS, and ASA software
- Juniper Junos and ScreenOS
- Force10 router and switch platforms running FTOS
- Arista Networks 7000-family switches
- ... and more!
Refer to the official docs for the full list.
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.
- Import your metadata from an existing RANCID installation or a CSV file to get up-and-running quickly.
- A suite of tools for simplifying many common tasks.
Getting Started
The best way to get started is to read the documentation hosted by Read the Docs at https://trigger.readthedocs.io. There you will find everything you need to get going including usage examples, installation and configuration instructions, and more!
Python Version Requirements
Trigger v2.0.0+ requires Python 3.10 or 3.11. Python 3.12+ is not yet supported due to SimpleParse C extension compatibility issues.
Python 2.7 support ended with v1.6.0 (the last Python 2.7 compatible release).
Installation
# Install the latest version
pip install trigger
# Install in development mode
pip install -e ".[dev]"
# Using uv (faster)
uv pip install trigger
For users still requiring Python 2.7, use the v1.6.0 release:
pip install trigger==1.6.0
Development Setup
Contributing to Trigger? Set up pre-commit hooks to catch issues early:
# Install prek (fast pre-commit framework)
uv tool install prek # or: pip install prek
# Enable hooks in your clone
prek install
# Hooks will now run automatically on git commit
See CLAUDE.md for complete development documentation.
Upgrading from v1.6.0?
See the Migration Guide for detailed upgrade instructions.
Before you begin
- The main branch is the
primary branch for all development and releases. All pull requests target
main. - Each point release of Trigger is maintained as a tag. If you require a specific Trigger version, please refer to these.
Get in touch!
If you run into any snags, have questions, feedback, or just want to talk shop, please open an issue on GitHub Issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file trigger-2.2.3.tar.gz.
File metadata
- Download URL: trigger-2.2.3.tar.gz
- Upload date:
- Size: 245.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83416ec089e2517ff8c69cec1edaaa5d2f37d51e8e9ee4d00857a4a90b36c05e
|
|
| MD5 |
8081749506a6f7fe460fd602f740301c
|
|
| BLAKE2b-256 |
a3c825d74f72cd5a480f83d02c81ce3f60ddc1942513db161897350b5c37969d
|
Provenance
The following attestation bundles were made for trigger-2.2.3.tar.gz:
Publisher:
release.yml on trigger/trigger
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trigger-2.2.3.tar.gz -
Subject digest:
83416ec089e2517ff8c69cec1edaaa5d2f37d51e8e9ee4d00857a4a90b36c05e - Sigstore transparency entry: 926629683
- Sigstore integration time:
-
Permalink:
trigger/trigger@edbda6793165e7a8dda618f087f5d6bd5579a05b -
Branch / Tag:
refs/tags/v2.2.3 - Owner: https://github.com/trigger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@edbda6793165e7a8dda618f087f5d6bd5579a05b -
Trigger Event:
push
-
Statement type:
File details
Details for the file trigger-2.2.3-py3-none-any.whl.
File metadata
- Download URL: trigger-2.2.3-py3-none-any.whl
- Upload date:
- Size: 249.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
594adce3e9381ef9c2152ca40defdb4f719440a34e22326eb4688e33d45a297f
|
|
| MD5 |
a30621f6ad08c2569f6cd50685ef4739
|
|
| BLAKE2b-256 |
844234a2f432abec8cd532c894acda74985f1ee4167f3a87467c7bd7f20e5f88
|
Provenance
The following attestation bundles were made for trigger-2.2.3-py3-none-any.whl:
Publisher:
release.yml on trigger/trigger
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
trigger-2.2.3-py3-none-any.whl -
Subject digest:
594adce3e9381ef9c2152ca40defdb4f719440a34e22326eb4688e33d45a297f - Sigstore transparency entry: 926629718
- Sigstore integration time:
-
Permalink:
trigger/trigger@edbda6793165e7a8dda618f087f5d6bd5579a05b -
Branch / Tag:
refs/tags/v2.2.3 - Owner: https://github.com/trigger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@edbda6793165e7a8dda618f087f5d6bd5579a05b -
Trigger Event:
push
-
Statement type: