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.scriptsimports or adopt the plugin's authoring API. A migration workflow helps you move from NetBox's built-in Custom Scripts. Theextras.scriptscompatibility 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)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_scripts-0.0.1.tar.gz | 471.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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