runspec-snow
ServiceNow ITSM runnables for runspec — the
ServiceNow counterpart to runspec-jsm, for teams migrating
service-desk tasks to ServiceNow. pip install it into a venv and the runnables
are discoverable by runspec local, runspec serve (MCP), and runspec-console.
Pure HTTP via httpx over the Table API (/api/now/table/{table}) for CRUD
and the Service Catalog API (/api/sn_sc/servicecatalog) for discovery. All
runnables emit JSON on stdout. Tuned for incident, sc_task and sc_req_item,
but --table accepts any table.
Install
pip install runspec-snow
Runnables
| Kind | Runnables |
|---|---|
| Records | snow-create-record, snow-get-record (by sys_id or number), snow-set-field |
| Comments | snow-add-comment (--internal → work_notes, else comments) |
| State | snow-list-states, snow-update-state (validated state choice, label→value via sys_choice) |
| Catalog discovery | snow-list-catalog-items, snow-list-variables |
Auth — env vars only
Set the instance and one credential; an OAuth/bearer token wins over Basic:
export SNOW_BASE_URL=https://acme.service-now.com # or SNOW_INSTANCE=acme
export SNOW_TOKEN=<oauth-token> # Bearer
# …or Basic:
export SNOW_USER=svc-itsm
export SNOW_PASSWORD=<password>
Every runnable takes --env dev|uat|prod, selecting SNOW_<ENV>_* prefixed
vars so one install serves several instances. Same deploy-determined identity
— no sudo flag model as runspec-jsm.
snow-create-record --table incident --field short_description="Printer offline" --env prod
snow-get-record --table incident --number INC0012345
snow-add-comment --table incident --sys-id <id> --body "On it" --internal
snow-update-state --table incident --number INC0012345 --state "In Progress"
Public Python API
Every operation takes a SnowConfig first arg, so a private package can inject
credentials and bake in a default default_table / env to build "one runnable
per table" on top:
from runspec_snow import config_from_env, create_record, add_comment, update_state
cfg = config_from_env(env="prod")
create_record(cfg, table="incident", fields={"short_description": "Printer offline"})
Operations raise SnowError on failure.
Development
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
ruff check . && ruff format --check .
pytest
Metadata
Release files for runspec-snow 0.1.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 | |
|---|---|---|---|
| runspec_snow-0.1.1.tar.gz | 13.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| runspec_snow-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.3 kB
Release files / runspec_snow-0.1.1.tar.gz
| Download URL | runspec_snow-0.1.1.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5ff2febb7064c5c9ff0b50c80327d812ce477be11c53469e529d5d5165969f2c
|
|
BLAKE2b-256 checksum How to use checksums |
500afc9311f4e1f7f159b8ab7bd60246efaf5fe9bc8d336fca1bf468e8e3a496
|
| 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 20, 2026.
Transparency logRelease files / runspec_snow-0.1.1-py3-none-any.whl
| Download URL | runspec_snow-0.1.1-py3-none-any.whl |
|---|---|
| Size | 14.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b20b8bbe0ec78fe4339f3281e8f614f1ac2c0c2d3308eb33c9e72c54571cabe4
|
|
BLAKE2b-256 checksum How to use checksums |
d9db818ed42207b040d062a0e4e31ecde81fd7432ea86cb1b4e01c84d971efb2
|
| 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 20, 2026.
Transparency log