Skip to main content

NetBox Scripts

Manage, validate and run Python scripts in NetBox.

Upload scripts or connect a Project to a directory in a NetBox Data Source. The plugin keeps source in immutable revisions, validates changes before activation and lets each Project serve one active revision at a time.

What you can do

  • Run scripts where you need them. Use the NetBox interface, REST API, Event Rules or command line, with support for dry runs, scheduled runs and recurring execution.
  • Set defaults for each script. Configure its timeout, notification policy and commit behavior.
  • Use familiar NetBox interfaces. Browse Projects, Script Files and Scripts through the UI, REST API, GraphQL and global search, with read-only views of revision details.
  • Bring your existing scripts. Keep using extras.scripts imports or adopt the plugin's authoring API. A migration workflow helps you move from NetBox's built-in Custom Scripts. The extras.scripts compatibility layer is transitional and stops working at NetBox v5.0. Legacy Reports are not supported.

See the Features guide for supported functionality and current limitations.

Compatibility

Plugin version Minimum NetBox Maximum NetBox Minimum Python
0.0.1 4.7.0 4.7.99 3.12

See COMPATIBILITY.md for the per-release compatibility matrix.

Getting started

Once the release is published on PyPI, install it in your NetBox virtual environment:

pip install netbox-scripts

For local development, run pip install -e . from the repository root instead.

Add netbox_scripts to PLUGINS in NetBox's configuration.py, keeping any existing plugins:

PLUGINS = [
    # Keep your existing plugins here.
    'netbox_scripts',
]

Configure source storage in the same file. This is required even when you use the default plugin settings. For a single-node installation:

STORAGES = {
    'netbox_scripts': {
        'BACKEND': 'django.core.files.storage.FileSystemStorage',
        'OPTIONS': {
            'location': '/var/lib/netbox-scripts',
        },
    },
}

Keep any existing custom storage entries when adding this configuration. NetBox merges it with its built-in storage entries. The plugin requires its own storage entry and does not fall back to default.

Create the directory and allow the NetBox web and worker processes to read and write it. Only trusted service or deployment accounts should have write access. The installation guide covers directory setup, static files and restarting the services.

Apply database migrations from the NetBox directory containing manage.py:

python manage.py migrate

All PLUGINS_CONFIG settings are optional. See the configuration guide for available settings and object storage options, and the documentation for the complete setup and usage guides.

Feedback and support

Found a bug or something that is hard to use? Please open an issue. Include your NetBox and plugin versions, what you expected and what happened. Feedback on installation, migration and documentation is especially helpful during the alpha. Remove credentials and private data from reports and logs.

Report suspected vulnerabilities privately. Follow SECURITY.md rather than opening a public issue.

Contributing

Code, documentation, bug reports and feature proposals are welcome. Read CONTRIBUTING.md for the issue and assignment process, development setup and checks.

License

Licensed under the Apache License 2.0.

Copyright (c) 2026 NetBox Labs.

Release files for netbox-scripts 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for netbox-scripts 0.0.1
File Size Uploaded
netbox_scripts-0.0.1.tar.gz 471.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for netbox-scripts 0.0.1
File Interpreter ABI Platform
netbox_scripts-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / netbox_scripts-0.0.1.tar.gz

Download URL netbox_scripts-0.0.1.tar.gz
Size 471.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e8032526de72b1b5fe97edf151b5242842626c52d6eb470d30dcc9e33377d38e
BLAKE2b-256 checksum
How to use checksums
3bd39350fd2acf51a0d7033e8d7b9f2906f6ddd7d702994342b7f965404eab56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / netbox_scripts-0.0.1-py3-none-any.whl

Download URL netbox_scripts-0.0.1-py3-none-any.whl
Size 577.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f35586139ad81ad5ac8e0a23641457a445653ed613d630528a2cd75afb986e48
BLAKE2b-256 checksum
How to use checksums
3ec69af3bda19413b12f73b8093699cd182af8d09f9577d86c4e8ff58c27fa3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page