Scripting & agents
nps is a plain CLI, so anything that can run a command and parse JSON can drive
it — shell scripts, CI jobs, or an AI agent with shell access. No extra server or
SDK is required.
JSON output
Add --json to any search to get a JSON array on stdout instead of the human
listing. Logs are suppressed in this mode, so stdout carries the payload alone
and is safe to pipe.
nps "tearaway" --json
nps -p PS3 -t DLCS "persona" --json
[
{
"title_id": "PCSA00142",
"name": "Tearaway Soundtrack (with bonus tracks)",
"region": "US",
"platform": "PSV",
"content_type": "GAMES",
"content_subtype": null,
"downloadable": true,
"url": "http://zeus.dl.playstation.net/cdn/UP9000/PCSA00142_00/...pkg",
"file_size": 207406320,
"sha256": "530995daf2f7358807eb3d4c4f1115cb927e2b81cf99def2e1749cb4840276fd",
"content_id": "UP9000-PCSA00142_00-GTEARAWAYSOUND01",
"last_modification_date": "2017-10-19 06:44:20"
}
]
--json lists; it never downloads. Combine it with -p/-t/-r to scope the
results, then act on the url and sha256 fields yourself.
Fields
| Field | Notes |
|---|---|
title_id, name, region |
Catalog identity. |
platform, content_type |
The dataset the row came from. |
content_subtype |
Free-text sub-type, when the dataset provides one. |
downloadable |
true when a usable PKG link exists. |
url |
Direct PKG link, or null when not downloadable. |
file_size |
Bytes, or null if the catalog omits it. |
sha256 |
Expected hash for verification, or null. |
required_fw |
Minimum firmware string (e.g. 3.60), or null. Filter with --max-fw. |
content_id |
Sony content ID. |
last_modification_date |
As published by NoPayStation. |
Patterns
Pick the largest downloadable match with jq:
nps "tearaway" --json \
| jq 'map(select(.downloadable)) | max_by(.file_size) | .url'
Download everything that matched without re-querying:
nps "patapon" -p PSP --all -o ./downloads
For AI agents
A documented --json CLI is usually all an agent needs: it can search, read the
structured result, and either download in-process (nps <id> -o <dir>) or hand
the url/sha256 to its own fetcher. There is no dedicated MCP server today —
if a sandboxed, shell-less agent ever needs one, nps --json is the contract it
would wrap.