fastcli is a CLI tool, built on Nornir 3.0, for automatically generating and deploying routing-protocol configuration across multiple network devices at once — published on Cisco DevNet CodeExchange.
Network engineers configuring BGP, OSPF, EIGRP or RIP across a fleet of devices normally hand-write or template CLI commands per device. fastcli replaces that with a declarative model: describe the desired network state once in YAML, and the tool generates and pushes the matching configuration to every targeted device over SSH. It supports Cisco IOS, NX-OS and IOS-XR, and ships with a companion web dashboard for project management and monitoring alongside the CLI.
Nornir 3.0 is the orchestration core: it reads inventory from hosts.yaml and
groups.yaml, then fans out tasks across the matching devices. Device connections and command
delivery go through Netmiko and NAPALM, which abstract the per-vendor CLI syntax differences. Commands are
organized by routing protocol (fastcli bgp configure, fastcli ospf configure, and
so on), each generating the protocol-specific configuration block for every device in scope. A
fastcli show facts command and pyATS integration let you capture device state as a golden
configuration and verify deployments against it.
Network state — interfaces, ASNs, BGP neighbors, OSPF/EIGRP networks — lives entirely in hosts.yaml, not scattered across imperative scripts. Re-running a command against the same inventory produces the same result, so deployments are idempotent by construction.
Devices are organized into logical groups (bgp, ospf, eigrp, rip) so a command can target exactly the devices that need it, instead of every push touching the whole fleet.
The CLI understands routing-protocol specifics directly — eBGP vs. iBGP, OSPF stub and Not-So-Stubby-Area configuration — rather than pushing that logic into user-maintained Jinja templates.
Beyond pushing configuration, fastcli can capture a known-good device state and verify later deployments against it, closing the loop between "config applied" and "config correct."