netconf-client
A Python NETCONF client
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-clientuv
uv add netconf-clientpoetry
poetry add netconf-clientInstalling 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
Tags
More Networking packages
h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
psutilpsutil retrieves real-time information about…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
uvloopuvloop is a drop-in replacement for Python's…
permissive · top 1,000 on PyPI
execnetexecnet lets you spawn and communicate with…
permissive · top 1,000 on PyPI
pyzmqPyZMQ provides Python bindings for ZeroMQ…
permissive · top 1,000 on PyPI
ncclientncclient is a Python library that implements…
permissive · top 5,000 on PyPI
netconf-console2A command-line and interactive console tool for…
permissive · top 15,000 on PyPI
scrapliscrapli is a Python library for connecting to…
permissive · top 15,000 on PyPI
sshconfsshconf reads and modifies SSH config files…
permissive · top 15,000 on PyPI
yang.connectorProvides NETCONF and gRPC/GNMI client…
permissive · top 15,000 on PyPI
netmikoNetmiko simplifies SSH connections to network…
permissive · top 5,000 on PyPI
pynetboxPynetbox is a Python client library for…
permissive · top 5,000 on PyPI
rest.connectorProvides REST API connectivity for network…
permissive · top 15,000 on PyPI
netapp-ontapA Python REST API client library for NetApp…
permissive · top 15,000 on PyPI