Skip to main content

SDK-first NetBox toolkit with Python SDK, CLI, and Textual TUIs

Project description

netbox-sdk

netbox-sdk is an SDK-first NetBox toolkit with terminal interfaces built on one shared runtime:

  • netbox_cli — Typer command-line interface
  • netbox_tui — Textual terminal applications
  • netbox_sdk — standalone REST API SDK shared by both

Published package names remain:

  • netbox-sdk
  • netbox-console

Quick Start with the Demo Instance

Install:

pip install 'netbox-sdk[all]'

Authenticate against the public demo instance:

nbx demo init

Try a few commands:

nbx demo dcim devices list
nbx demo ipam prefixes list
nbx demo tui
nbx demo dev tui

Install

Current release documented on the docs site matches docs/snippets/package-version.txt (aligned with pyproject.toml). For the latest PyPI build you can omit the pin; add ==<version> to match that documentation snapshot.

Minimal SDK only:

pip install netbox-sdk

CLI:

pip install 'netbox-sdk[cli]'

TUI:

pip install 'netbox-sdk[tui]'

Everything:

pip install 'netbox-sdk[all]'

Pinned (same version as the docs site / package-version.txt):

pip install 'netbox-sdk[all]==0.0.7.post1'

With uv as a user tool:

uv tool install --force 'netbox-sdk[cli]'

Developer checkout:

git clone https://github.com/emersonfelipesp/netbox-sdk.git
cd netbox-sdk
uv sync --dev --extra cli --extra tui --extra demo
uv run nbx --help

Common Commands

nbx init
nbx dcim devices list
nbx dcim devices get --id 1
nbx tui
nbx dev tui
nbx cli tui
nbx logs

Architecture

  • netbox_sdk owns config, auth, caching, schema parsing, request resolution, shared formatting, and demo helpers.
  • netbox_cli owns the nbx command tree and lazy-loads netbox_tui where needed.
  • netbox_tui owns all Textual apps, themes, widgets, and TCSS.

Contributor Workflow

uv sync --dev --extra cli --extra tui --extra demo
uv run pre-commit install --hook-type pre-commit --hook-type pre-push
uv run pre-commit run --all-files
uv run ty check netbox_sdk netbox_cli netbox_tui tests
uv run pytest

Release Process

Use a single GitHub release title pattern for every release:

  • netbox-sdk vX.Y.Z

Example:

gh release create v0.0.7.post1 \
  --title "netbox-sdk v0.0.7.post1"

When cutting a release, bump pyproject.toml and netbox_sdk.__version__, then keep docs in sync: docs/snippets/package-version.txt, mkdocs.ymlextra.package_version, and the version strings in docs/snippets/documented-release-*.md and docs/snippets/pip-pinned-*.txt / uv-pinned-cli.txt. uv lock must reflect the new version. tests/test_docs_alignment.py asserts snippet and MkDocs metadata match pyproject.toml.

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

netbox_sdk-0.0.8.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

netbox_sdk-0.0.8-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file netbox_sdk-0.0.8.tar.gz.

File metadata

  • Download URL: netbox_sdk-0.0.8.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for netbox_sdk-0.0.8.tar.gz
Algorithm Hash digest
SHA256 b2be1bea5c6f24860d0b1ff2e9deed8a38aa1b6b66e1bb6d8e2623a4cf08050c
MD5 a9ad417cbaa4cd8f9be19dece29f32d2
BLAKE2b-256 98bd4b5c8be845eb880071edae14f04bde5b5c6ccc5cd05078e68ee985e09e09

See more details on using hashes here.

File details

Details for the file netbox_sdk-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: netbox_sdk-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for netbox_sdk-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6c27a4490a196e5aecbea5c68e1bf4594304a12cd0b3b7a7d025d97ce47f57d9
MD5 c05d38005f44f202de8487347b4bd73a
BLAKE2b-256 1a894b8725dcc58736259f1a458ac714191bff941fed38c2440c449019b77cfa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page