Read-only multi-vendor network device query SDK (core library)
Project description
NetSight
NetSight is a read-only, multi-vendor network device query SDK written in Python 3.14. It connects to devices over vendor-native APIs (currently PAN-OS XML; more vendors planned), enforces a deny-all command allowlist, and returns structured data parsed from declarative YAML parser specs.
For users
See the User Guide for installation, configuration, and day-to-day SDK usage — connecting to a device, running an operation, handling results, writing a template workflow.
from netsight import NetSight
ns = NetSight(config="config/devices.yaml")
device = ns.device("fw-01")
info = device.show_system_info()
routes = device.show_routing_table()
Installing the core SDK
# Minimal SDK install — just the device-query core
pip install netsight-sdk
# With the dev MCP server (for Claude Code contributors)
pip install 'netsight-sdk[dev]'
Or, to track the development branch directly:
pip install git+https://github.com/magicboxlab-ai/netsight-sdk.git
First-time setup
After installing the core SDK, run netsight init to create your device
configuration file:
# Create ~/.config/netsight/devices.yaml with a template
netsight init
# Edit the file to add your devices, then verify
netsight doctor
The config file search order is: $NETSIGHT_CONFIG_DIR → ./config/
(cwd, for project-local dev workflows) → $XDG_CONFIG_HOME/netsight/
→ ~/.config/netsight/.
Installing vendor packs
The core SDK is vendor-agnostic. Vendor support ships as separate pack packages installed alongside the core. Use the netsight pack CLI to discover and install packs:
# List packs available in the bundled catalog
netsight pack list --available
# Install a pack
netsight pack install paloalto-firewall-xml
# Verify everything loaded correctly
netsight doctor
Packs can also be installed directly from their source repositories:
pip install git+https://github.com/magicboxlab-ai/netsight-packs-paloalto.git#subdirectory=packs/paloalto-firewall-xml
After installation, the pack is auto-discovered at startup via the netsight.packs entry-point group — no config change required.
See User Guide → Vendor packs for the full install and configuration flow.
For contributors
NetSight ships a purpose-built MCP server (netsight-dev) that exposes the codebase to Claude Code as structured resources and validation tools. The bootstrap flow for a new clone is documented end-to-end in the developer guide:
See Developer Guide → Getting Started for Development.
TL;DR:
git clone <repo-url> netsight
cd netsight
python3.14 -m venv .venv
source .venv/bin/activate
pip install -e .
netsight init --local # creates ./config/devices.yaml from the template
netsight doctor # verifies the dev env end-to-end
claude # approve the netsight-dev MCP server when prompted
The rest of the developer guide covers adding vendor packs, writing parser specs, custom types and transforms, registry wiring, self-documentation conventions, testing, and the release workflow.
Project layout at a glance
netsight/— SDK source (pack registry, parsers, config management, security module, dev MCP server).UNITTEST/— pytest test suite (nottests/).TOOLS/— shell utilities (full_test_cycle.sh,security_check.sh).docs/guides/— user guide and developer guide.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file netsight_sdk-1.0.1.tar.gz.
File metadata
- Download URL: netsight_sdk-1.0.1.tar.gz
- Upload date:
- Size: 179.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77e4e3cff34363b21589748a77260d8050536c85a5fde06c70f0e57f96ce010c
|
|
| MD5 |
f4ea71aaa247ca93182852906b04079f
|
|
| BLAKE2b-256 |
60c6e989c975f97707d585b850b2bc8b1132c8fa9bbf012415f43d39a07a0c47
|
Provenance
The following attestation bundles were made for netsight_sdk-1.0.1.tar.gz:
Publisher:
release.yml on magicboxlab-ai/netsight-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netsight_sdk-1.0.1.tar.gz -
Subject digest:
77e4e3cff34363b21589748a77260d8050536c85a5fde06c70f0e57f96ce010c - Sigstore transparency entry: 1272118565
- Sigstore integration time:
-
Permalink:
magicboxlab-ai/netsight-sdk@87e11ac2af8a0e3dfef3edc956cfb37b5c284509 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/magicboxlab-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@87e11ac2af8a0e3dfef3edc956cfb37b5c284509 -
Trigger Event:
push
-
Statement type:
File details
Details for the file netsight_sdk-1.0.1-py3-none-any.whl.
File metadata
- Download URL: netsight_sdk-1.0.1-py3-none-any.whl
- Upload date:
- Size: 224.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eaa7b7855d79902e67e83337f0a0ae1a18e00602ff36e50319d101e9b7706fd5
|
|
| MD5 |
9a48ca9d8012d275f573c1dafa1b2229
|
|
| BLAKE2b-256 |
509a65bebcb4b7a9dd6e1f5f7f4afd57efbb754d4416bb8b3812ab0af52327a9
|
Provenance
The following attestation bundles were made for netsight_sdk-1.0.1-py3-none-any.whl:
Publisher:
release.yml on magicboxlab-ai/netsight-sdk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
netsight_sdk-1.0.1-py3-none-any.whl -
Subject digest:
eaa7b7855d79902e67e83337f0a0ae1a18e00602ff36e50319d101e9b7706fd5 - Sigstore transparency entry: 1272118642
- Sigstore integration time:
-
Permalink:
magicboxlab-ai/netsight-sdk@87e11ac2af8a0e3dfef3edc956cfb37b5c284509 -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/magicboxlab-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@87e11ac2af8a0e3dfef3edc956cfb37b5c284509 -
Trigger Event:
push
-
Statement type: