jsn
The ServiceNow CLI for people and agents

Stop clicking. Start understanding.

JSN gives your terminal the context the ServiceNow REST API leaves out. Records with relationships. Catalog items with variables. Flows with their subflows. Diagnostics you can actually use.

Open source · MIT · Runs locally · No MCP server required

jsn · pdi
jsn requests show RITM0010001 Request RITM0010001 short_description: Knowledge Speaking Session requested_for: System Administrator approval: Approved Catalog Variables Topic: Moveworks! What is Slate? Speaker: Teo → update: jsn req update RITM0010001 --data '{...}'

READ CONTEXT   ·   DIAGNOSE FASTER   ·   CHANGE SAFELY   ·   GIVE YOUR AGENT THE RIGHT TOOL

REST gives you rows. JSN gives you the thing.

Most ServiceNow work is not “get this record.” It is figuring out what the record means, what it touches, and what happens if you change it. JSN handles that context in the command.

“The useful part is not the request. It is the answer you can act on.”

That is the bet. Keep the CLI small, composable, and safe. Make the output useful to a person at a terminal and predictable for an agent in a workflow.

No hosted dashboard. No telemetry. No server to maintain between your agent and the instance.

Three jobs. One CLI.

Use the specific command when JSN has one. Drop to generic records or raw REST when it does not.

Explore

Read records, resolve catalog variables, walk CMDB relationships, inspect forms, schemas, and application scopes.

jsn cmdb relationships --ci ID

Diagnose

See platform health, transaction timing, system logs, flow executions, performance captures, and code matches.

jsn perf compare BASELINE NEW

Change

Create and update records, manage flows and update sets, run ATF, execute scripts, and make bulk changes with guardrails.

jsn records bulk --table incident

Try the shape of it.

This is sample output from real JSN commands. Pick a workflow, then install JSN to run it against your own instance.

browser demo · sample output

Try it on your instance.

Install it globally. Authenticate once. Then use the command that fits the job.

npm install -g @jacebenson/jsn
jsn setup
jsn skill install