skillfed

netconf-client

A Python NETCONF client

netconf-client v3.6.0 107.7K downloads/30d#12,600 on PyPI16
Permissive license Apache-2.0 Active released

What it is and what it does

netconf_client is a lightweight NETCONF protocol client for Python that communicates with network devices and management systems over SSH or TLS. It provides a Manager interface to send NETCONF RPC messages (edit_config, get, etc.) and receive XML responses, making it suitable for automating device configuration and state retrieval in network operations workflows.

The library is intentionally simpler than some alternatives, with a smaller codebase and fewer dependencies. It assumes you are sending valid NETCONF messages to a compliant server, which means less defensive error checking but also less overhead and fewer workarounds for non-standard device behavior. It depends on lxml for XML handling and paramiko for SSH transport.

Use it for:

  • Automate configuration changes on NETCONF-compliant network devices (routers, switches, firewalls) via SSH.
  • Query device state and operational data from network management systems using NETCONF get and get-config operations.
  • Build network provisioning or remediation scripts that interact with standards-based device APIs.
  • Test NETCONF server implementations by sending raw or edge-case protocol messages.
  • Integrate device management into Python-based orchestration or monitoring platforms.

Worth the install?

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

A NETCONF client library for Python that enables SSH and TLS communication with NETCONF servers to retrieve and edit device configurations using XML-based protocol messages.

Yes. The package is actively maintained, has no known vulnerabilities, supports current Python versions, and offers a simpler alternative to heavier NETCONF libraries when you need straightforward SSH/TLS communication with standards-compliant devices. Install friction is low and the Apache-2.0 license is permissive. Best suited for teams comfortable with NETCONF protocol basics and RFC-compliant device behavior.

Install

netconf-client on PyPI

pip

pip install netconf-client

uv

uv add netconf-client

poetry

poetry add netconf-client

Installing netconf-client

Before you install

Low install friction with a pure-Python wheel distribution. Actively maintained with a recent release (79 days ago) and current Python version support (3.8–3.11). Two lightweight runtime dependencies (lxml and paramiko) are well-established libraries.

License in practice

Apache-2.0 is a permissive license; you may use, modify, and distribute this package freely in commercial and private projects, provided you include a copy of the license and note any material changes.

Quickstart

pip install netconf-client

from netconf_client.connect import connect_ssh
from netconf_client.ncclient import Manager

session = connect_ssh(host="localhost", port=830, username="admin", password="password")
mgr = Manager(session, timeout=120)
print(mgr.get(filter="...").data_xml)

Requires a NETCONF server listening on the target host (typically port 830) and valid credentials; Python 3.8 or later.

Verify before relying

  • Whether lxml can actually be bypassed in practice and what the performance implications are.
  • Extent of error checking differences versus ncclient and whether that matters for your use case.
  • Whether TLS session support is production-ready or still experimental.

Package facts

License Apache-2.0 (permissive)
Python support supports the current Python release (<4.0,>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 2 — lxml, paramiko
Maintenance actively maintained — 79 days since the last release
Last repo commit
First released
Downloads 107,735/month — #12,600 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

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

Keywords: netconf

Development Status :: 5 - Production/StableIntended Audience :: Telecommunications IndustryLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9

Tags

netconf client pythonnetwork device configuration managementssh netconf protocolxml device config retrievalnetwork automation netconftls netconf sessionsdevice state queries
network-automationdevice-managementprotocol-client

More Networking packages