Skip to main content

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)

Source distribution for runspec-snow 0.1.1
File Size Uploaded
runspec_snow-0.1.1.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for runspec-snow 0.1.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

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