AVD CLI
A command-line interface for processing Arista AVD inventories and generating configurations, documentation, and ANTA tests using pyavd.
[!IMPORTANT] Personal Project Notice
This project (
avd-cli) is a personal project and is not an official development of the Arista AVD team or Arista Networks. It is maintained independently and is not endorsed, supported, or affiliated with Arista Networks, Inc.For official AVD tools and support, please visit avd.arista.com.
Key Features
- 🔧 Configuration Generation: Generate EOS device configurations using pyavd
- 📚 Documentation Generation: Create comprehensive network documentation in Markdown
- 🧪 ANTA Test Generation: Generate ANTA test catalogs for network validation
- 🚀 Configuration Deployment: Deploy configurations to EOS devices via eAPI with diff statistics
- ⚡ Lightning fast generation: Generate configurations, documentation and tests way faster than ansible (
1.28secfor 10 hosts compare to3secwith Ansible) - 🌐 Multi-Fabric Support: Process multiple network fabrics with variable inheritance
- 🔧 Rich Terminal Experience: Beautiful CLI with progress bars and formatted output
Getting Started
Installation
# Using pipx (recommended)
pipx install avd-cli
# Or using pip
pip install avd-cli
Basic Usage
- Build AVD artifacts for the entire fabric
# Generate all outputs (configs, documentation, ANTA tests)
# Default output: ./examples/atd-inventory/intended/
avd-cli generate all --inventory-path ./examples/atd-inventory
→ Loading inventory...
✓ Loaded 10 devices
ℹ Using default output path: examples/atd-inventory/intended
→ Generating configurations, documentation, and tests...
✓ Generation complete!
Generated Files
┏━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Category ┃ Count ┃ Output Path ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Configurations │ 10 │ examples/atd-inventory/intended/configs │
│ Documentation │ 10 │ examples/atd-inventory/intended/documentation │
│ Tests │ 2 │ examples/atd-inventory/intended/tests │
└────────────────┴───────┴─────────────────────────────────────────────────┘
- Deploy configurations to EOS devices using eAPI
# Deploy configurations to EOS devices
avd-cli deploy eos --inventory-path ./examples/atd-inventory --dry-run --diff
Deployment Plan (dry-run)
Mode: replace
Targets: 10 devices
Concurrency: 10 devices
⠼ Deploying to 10 devices...
Deployment Status
┏━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┓
┃ Hostname ┃ Status ┃ Duration ┃ Diff (+/-) ┃ Error ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━┩
│ spine01 │ success │ 2.34s │ +127 / -5 │ │
│ spine02 │ success │ 1.89s │ +127 / -5 │ │
│ leaf-1a │ success │ 3.12s │ +245 / -12 │ │
│ ... │ ... │ ... │ ... │ │
└────────────────┴─────────┴──────────┴────────────┴───────┘
Documentation
Complete documentation is available at titom73.github.io/avd-cli
🙏 Acknowledgments
Core Dependencies:
- Arista Networks AVD - AVD collection and pyavd library
- Arista Networks ANTA - ANTA Framewaork for network testing
- Click - Elegant CLI framework
- Rich - Beautiful terminal formatting
- pytest - Comprehensive testing framework
- UV - Fast Python package management
Community: Special thanks to the Arista AVD community and all contributors making network automation accessible and reliable.
License
This project is licensed under the Apache License 2.0.
Metadata
Release files for avd-cli 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| avd_cli-0.2.1.tar.gz | 1.8 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| avd_cli-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / avd_cli-0.2.1.tar.gz
| Download URL | avd_cli-0.2.1.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02fe0a8a7daab23d7fe1404dc0126a2368e7494227c71797bee5cbf50582f3e7
|
|
BLAKE2b-256 checksum How to use checksums |
5d85ca23e72b717da3fbea08e82675ef46377dc7c507d29d73f3423f7015d3e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Release files / avd_cli-0.2.1-py3-none-any.whl
| Download URL | avd_cli-0.2.1-py3-none-any.whl |
|---|---|
| Size | 64.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b297d00d870db202c65967e4536881a12782618c0522af0f1ed0fb3aa66d5eab
|
|
BLAKE2b-256 checksum How to use checksums |
daff09bd1836559708aa61b63efc717e30b2a674c09788817288beca07712151
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Security for avd-cli 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.