skillfed

nornir

Pluggable multi-threaded framework with inventory management to help operate collections of devices

nornir v3.6.0 94.5K downloads/30d#13,325 on PyPI1,611
Permissive license Apache-2.0 Active released

What it is and what it does

Nornir is a Python automation framework designed for managing and operating collections of network devices. Unlike traditional automation tools that use domain-specific languages, Nornir lets you write all automation logic directly in Python, making it easier to debug and leverage existing Python tooling. The framework handles inventory management, multi-threaded task dispatch, and provides a plugin architecture so you can extend it with custom tasks and integrations.

Since version 3.0.0, Nornir ships without built-in plugins; instead, you install plugins separately via pip as needed. It depends only on ruamel-yaml for configuration parsing and supports Python 3.10 through 3.14. The framework is actively maintained, with recent releases and an active community on GitHub and Discord.

Use it for:

  • Automate configuration deployment across a fleet of network devices by writing Python scripts that iterate over your inventory.
  • Gather operational data (show commands, metrics) from multiple devices in parallel and process results in Python.
  • Build custom network validation or compliance checks by combining Nornir tasks with your own Python logic.
  • Integrate network automation into larger Python applications or CI/CD pipelines without learning a new DSL.
  • Troubleshoot automation failures using standard Python debugging tools (pdb, logging) instead of framework-specific diagnostics.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Nornir is a pure Python automation framework that manages device inventory and dispatches tasks across network nodes, letting you write automation logic directly in Python rather than a domain-specific language.

Yes. Nornir is actively maintained, has low install friction, carries a permissive Apache-2.0 license, and is well-suited for teams comfortable with Python who want to avoid a domain-specific language. The framework is mature (since 2018) and has a growing plugin ecosystem. Install it if you need to automate network device operations and prefer writing Python over learning a DSL.

Install

nornir on PyPI

pip

pip install nornir

uv

uv add nornir

poetry

poetry add nornir

Installing nornir

Before you install

Low install friction; pure Python wheel with a single runtime dependency on ruamel-yaml. Actively maintained with a recent release (12 days old) and steady commit activity.

License in practice

Apache-2.0 permissive license allows commercial and private use with minimal restrictions; you may use, modify, and distribute Nornir freely provided you include the license notice.

Quickstart

pip install nornir

from nornir import InitNornir

nr = InitNornir(config_file="config.yaml")
results = nr.run(task=your_task_function)

Requires Python 3.10 or higher; you must provide a config file (typically YAML) to define your inventory and settings.

Verify before relying

  • Whether the plugin ecosystem is sufficiently mature and stable for your use case (documentation references a community plugin list but stability varies).
  • Performance characteristics under large-scale deployments (fact sheet does not quantify typical device counts or task throughput).
  • Integration requirements with existing network management or monitoring tools in your environment.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — ruamel-yaml
Maintenance actively maintained — 12 days since the last release
Last repo commit
First released
Downloads 94,506/month — #13,325 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: nornir-3.6.0-py3-none-any.whl

Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Tags

network device automation frameworkpython inventory managementmulti-threaded task dispatchernetwork operations automationdevice configuration managementpython network automationpluggable automation framework
network-automationinventory-managementmulti-threaded

More Networking packages