A Declarative API for Host Network Management

View on GitHub

We are NMState!

A declarative network manager API for hosts.

What is it?

NMState is a library with an accompanying command line tool that manages host networking settings in a declarative manner. The networking state is described by a pre-defined schema. Reporting of current state and changes to it (desired state) both conform to the schema.

NMState is aimed to satisfy enterprise needs to manage host networking through a northbound declarative API and multi provider support on the southbound. NetworkManager acts as the main (and currently the only) provider supported.

Visit the examples page to see what it can do.


Example output

    "interfaces": [
            "description": "Production Network",
            "ethernet": {
                "auto-negotiation": true,
                "duplex": "full",
                "speed": 1000
            "ipv4": {
                "address": [
                        "ip": "",
                        "prefix-length": 24
                "enabled": true
            "mtu": 1500,
            "name": "eth3",
            "state": "up",
            "type": "ethernet"