Skip to content
SPECIFICTION
Get listed

Nornir

nornir.readthedocs.io

Free plan macOSLinux

What it is

Nornir is a free, open-source Python automation framework for managing inventory and dispatching tasks to network nodes and devices. It is used directly from Python: inventories contain hosts, groups, and defaults, while reusable tasks accept a Task and return a Result. The included ThreadedRunner runs tasks across hosts with threads and defaults to 20 workers. Plugins cover inventories, transforms, connections, runners, and processors, with community integrations for NAPALM, Netmiko, NetBox, Ansible inventories, Scrapli, Nautobot, and other systems. Nornir supports configuration management, workflow orchestration, and network testing across platforms including Cisco IOS, Cisco NX-OS, Arista EOS, Junos, and Palo Alto PAN-OS. OpsMill describes parallel writes, idempotence, and dry-run safety. The package is published on PyPI and installs with pip; the current package requires Python 3.10 or later. It is self-hosted under Apache-2.0.

Spec sheet

What it does
Nornir is a pure Python automation framework intended to be used directly from Python.Read 30 Sep 2026 · github.com
Intended users
Users need basic Python knowledge, package installation skills, and familiarity with variables, functions, and imports.Read 30 Sep 2026 · nornir.readthedocs.io
Integrations
Community plugins support NAPALM, Netmiko, NetBox, Ansible inventories, Scrapli, Nautobot, and other systems and libraries.Read 30 Sep 2026 · nornir.readthedocs.io
Support
Official support channels include GitHub issues and discussions, the OpsMill Discord #nornir channel, and a monitored Network to Code Slack channel.Read 30 Sep 2026 · github.com
License
Nornir is distributed under the Apache-2.0 license.Read 30 Sep 2026 · pypi.org
Core responsibilities
Nornir manages inventory and dispatches tasks to nodes and devices.Read 30 Sep 2026 · nornir.readthedocs.io
Execution
The included ThreadedRunner executes tasks over hosts using threads and defaults to 20 workers.Read 30 Sep 2026 · nornir.readthedocs.io
Execution characteristics
OpsMill describes Nornir as a pure Python, multi-vendor execution engine with parallel writes, idempotence, and dry-run safety.Read 30 Sep 2026 · opsmill.com
Installation
Nornir is published to PyPI and can be installed with pip install nornir.Read 30 Sep 2026 · nornir.readthedocs.io
Inventory
The inventory consists of hosts, groups, and defaults.Read 30 Sep 2026 · nornir.readthedocs.io
Plugin architecture
Nornir supports inventory plugins, transform functions, connection plugins, runners, and processors.Read 30 Sep 2026 · nornir.readthedocs.io
Project stewardship
OpsMill states that it stewards, funds, and maintains Nornir while keeping it community-led and open source.Read 30 Sep 2026 · opsmill.com
Python requirement
The current PyPI package requires Python >=3.10 and provides classifiers through Python 3.14.Read 30 Sep 2026 · pypi.org
Task model
A task is reusable code for a single host that takes a Task and returns a Result.Read 30 Sep 2026 · nornir.readthedocs.io

Plans and prices

Nornir Free free forever open source · Apache 2 license · public repositories Read 30 Sep 2026 · opsmill.com

Every Nornir plan and price →

Strong points and limits

Strong points

  • Free open-source Apache-2.0 license
  • Threaded execution defaults to 20 workers
  • Extensible plugin architecture
  • Community integrations with network tools
  • Supports configuration and network testing

Limits

  • Requires Python 3.10 or later
  • Requires basic Python knowledge
  • Self-hosted deployment

Who it suits

It suits users comfortable with basic Python, package installation, variables, functions, and imports who need self-hosted network automation. Support is available through GitHub, Discord, and Network to Code Slack.

Verdict

Nornir provides Python-native inventory and task execution with threading and a broad plugin ecosystem. Its self-hosted model and Python requirement make it most appropriate for technically prepared network automation users.

Where Specifiction places it

Alternatives to NornirAll alternatives →