{"_id":"@byronwallrus/product-grid-cli","_rev":"7-0f8b0e77e5ba1b86960d7788c0e914fb","name":"@byronwallrus/product-grid-cli","dist-tags":{"latest":"0.1.7"},"versions":{"0.1.0":{"name":"@byronwallrus/product-grid-cli","version":"0.1.0","_id":"@byronwallrus/product-grid-cli@0.1.0","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"1c3a29af0a1b396d11ef105e0e4c425dd1a20f26","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.0.tgz","fileCount":8,"integrity":"sha512-H93+djqZJZjbX/dhONtNYkZi1qEQT80PmYcKuPcbXDwcUYak1hCOrKeDntp0Q8lVNt98EHmJEfiKQdo3IVWLFA==","signatures":[{"sig":"MEYCIQCP+ZyFdJwXRf3mElsMnZkwPIYDrEE7h71k4LQoOVomMAIhAPRTlEZWCPAHlwhILkNrWConMYCNuJ7ONiNTne48GNBz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19023},"type":"module","engines":{"node":">=22"},"gitHead":"de3a4807b84a51ffe7ed91832e29beb8edb8c7c8","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.0_1777600417739_0.03184362764424109","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@byronwallrus/product-grid-cli","version":"0.1.1","_id":"@byronwallrus/product-grid-cli@0.1.1","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"5944da038f0bf0f26a527f35c07030e6c3a2472a","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.1.tgz","fileCount":11,"integrity":"sha512-1jhTLiAnbDkib5SYcHwrPcSRyI2XIQVEWvbyuFmvH89z7cCQz4GwHoHDugBKBzQdo3Fc80SWokhJzWwArQlsvg==","signatures":[{"sig":"MEUCIF5XlPRHrs1hQYQmLaW96/qvh+8qKy2ivCzOR2YP/mZwAiEAuhR5J+xY6hl6xq75+dsEI/2WT3mb8qpy7kaAG7rOlwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49483},"type":"module","engines":{"node":">=22"},"gitHead":"8de5ac1741faf22036cb1d3e9f41bdfa0effd813","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.1_1777606077566_0.6486863243651322","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@byronwallrus/product-grid-cli","version":"0.1.2","_id":"@byronwallrus/product-grid-cli@0.1.2","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"3285aa073457f7fc37e477a28693798b4390e8e5","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.2.tgz","fileCount":12,"integrity":"sha512-k3oGdxCyyomw+P3E8fpik+CZaARn+POm/QBUBZWa1T8FHCDd3MZzU+3JOC10/O1+/dRIYMDeNhL9niGw0R9Ccw==","signatures":[{"sig":"MEUCIQCfmGn0lKC5LHJfu3Ix/na7MwDN9ljfSBv6AFIh9RNlNwIgM7iGKe9PoyrSbUjwdE+ptjPxGEKis2+aLcuchN4ClBg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50689},"type":"module","engines":{"node":">=22"},"gitHead":"c7af6c5854078c9497623c6eb6e401d50f3d5fb1","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.2_1777607442271_0.3132937293723377","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@byronwallrus/product-grid-cli","version":"0.1.3","_id":"@byronwallrus/product-grid-cli@0.1.3","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"86dcf42b638fb0ae4464559d4993fc3526b12dd5","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.3.tgz","fileCount":12,"integrity":"sha512-AmVyJA6IHBJrGrNnRr4rTJHv3TVe5Fo4zrW/TxQIp9bS07Xcr7HCUydaDocd5Uj0GHdOVqqvhSUgeHFgeOXIzw==","signatures":[{"sig":"MEUCIQC3XoD8j+uuOJvPLuYAqVqKDDLo1IIGL7Qn0zrsKdmJJgIgMt9oXLWCfFROeSN+jfMrLijMp4iO527wkmqsK3b2fxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50689},"type":"module","engines":{"node":">=22"},"gitHead":"de7b75c9b9c9ba9de385db01715f6f23d0ea7284","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.3_1777608149575_0.5189450848920596","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@byronwallrus/product-grid-cli","version":"0.1.5","_id":"@byronwallrus/product-grid-cli@0.1.5","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"de60a167b07a2ff775edcaafb2e9db96e48e6043","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.5.tgz","fileCount":13,"integrity":"sha512-1eA+iNx7fI1AptL/cBnZX/FBlYQEN8gxu+CAZJfwbnOvaL651+qvRdWZs+HJHF3hyo7leosRSxAx4ilogWSj3A==","signatures":[{"sig":"MEYCIQDvnSUMVbfEx74fO4cSbArbMbgNEsLiN3qQcUybW57MswIhANW1GA1qoGflm3KVpblfhHiEnTg1yLq2r5uMLTbaIAYZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63906},"type":"module","engines":{"node":">=22"},"gitHead":"ecc43fb6b523b39786a549e5645e2750b6938481","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.5_1778041831022_0.48025449173740187","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@byronwallrus/product-grid-cli","version":"0.1.6","_id":"@byronwallrus/product-grid-cli@0.1.6","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"bin":{"pgm":"bin/pgm.mjs"},"dist":{"shasum":"a925390ddaa74944cc509609e6beabc5fc1126c1","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.6.tgz","fileCount":13,"integrity":"sha512-TnQZAnpxRK85jNDllGAxx8nag0KzwcI5HwuA3Do1mtPXSZk6Z5ADbmEIOJcVsjjp1aAmVQdjftnbAGPjPXFQfg==","signatures":[{"sig":"MEQCIAaYHZWLmDo5EUa/Tdvmf415aJUkOI6D69lMvPWtemiLAiAlmeqm1qn0sjMu3VfrDpULmgbqy/tggBt10Hj8gTaJ1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74731},"type":"module","engines":{"node":">=22"},"gitHead":"7f9d3a5a515d7806409cbe2206fd2e576cb70ce1","scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"_npmVersion":"10.9.4","description":"CLI for Product Grid Management.","directories":{},"_nodeVersion":"22.21.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/product-grid-cli_0.1.6_1778127853782_0.9401524352277177","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@byronwallrus/product-grid-cli","version":"0.1.7","description":"CLI for Product Grid Management.","type":"module","bin":{"pgm":"bin/pgm.mjs"},"engines":{"node":">=22"},"scripts":{"dev":"node ./bin/pgm.mjs","test":"node --test test/*.test.mjs","pack:check":"npm pack --dry-run"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_id":"@byronwallrus/product-grid-cli@0.1.7","gitHead":"d781a3e21f45f5762d1197795846bee6f1adb837","_nodeVersion":"22.21.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-qcUw7jPe5g/1Oh9qDErFQIAKKDFShWQPtQOgV49e/loBA25VoVuYOl92GGzBctAz6kOBHTFu8MHX3/QeccGP1g==","shasum":"7fe601d81542f09e5b96e0853ecba8dc86c545bd","tarball":"https://registry.npmjs.org/@byronwallrus/product-grid-cli/-/product-grid-cli-0.1.7.tgz","fileCount":13,"unpackedSize":83083,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICo0UH7/FrxfuK88dzPCa0H0FCxHUgpI8OSAPaSuK+3ZAiBr88hkQ1eOVsIucyTJmN9gi42PGjyTMMSV4J09Qv/AGw=="}]},"_npmUser":{"name":"byronwallrus","email":"byron@byroni.us"},"directories":{},"maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/product-grid-cli_0.1.7_1778505084343_0.7780935871453736"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T01:53:37.654Z","modified":"2026-05-11T13:11:24.591Z","0.1.0":"2026-05-01T01:53:37.888Z","0.1.1":"2026-05-01T03:27:57.710Z","0.1.2":"2026-05-01T03:50:42.414Z","0.1.3":"2026-05-01T04:02:29.768Z","0.1.5":"2026-05-06T04:30:31.195Z","0.1.6":"2026-05-07T04:24:13.988Z","0.1.7":"2026-05-11T13:11:24.495Z"},"description":"CLI for Product Grid Management.","maintainers":[{"name":"byronwallrus","email":"byron@byroni.us"}],"readme":"# Product Grid CLI\n\nLocal first-slice CLI for Product Grid Management.\n\n## Local Install\n\nFrom the repo root:\n\n```bash\nnpm install -g ./packages/cli\n```\n\nThen use `pgm` from any terminal:\n\n```bash\npgm --help\npgm project list --server http://localhost:3000\n```\n\nThe CLI defaults to `http://localhost:3000`, so `--server` is optional when your dev server runs there.\nWhen `pgm` reports that a newer CLI version is available, run:\n\n```bash\npgm update\n```\n\n## Local Dev Server\n\nIn another terminal:\n\n```bash\ncd app\npnpm dev\n```\n\nFor local development, `/api/v1` allows read access without a token when `AGENT_API_TOKENS` is not set and `NODE_ENV` is not `production`.\n\nTo test token auth locally, start the app with:\n\n```bash\nAGENT_API_TOKENS='local-token:project:read|node:read' pnpm dev\n```\n\nThen log in:\n\n```bash\npgm auth login --token local-token\n```\n\nFor write commands such as project creation, markdown import, and image upload, include write scopes:\n\n```bash\nAGENT_API_TOKENS='local-token:project:read|project:write|node:read|node:write|image:write' pnpm dev\n```\n\n## First Commands\n\n```bash\npgm project list\npgm project create \"New Product Site\" --link --json\npgm project link <project-id>\npgm project schema --json\npgm node list --roots --compact --json\npgm node list --type task --status planned --with-ancestors --json\npgm node list --search \"checkout\" --json\npgm node view <node-id> --with-context --json\npgm node export-context <node-id> --output ./node-context.md\npgm node context-pack <parent-node-id> --output ./context-pack-dir --json\npgm node create --title \"Checkout\" --type page --json\npgm node update <node-id> --status working --json\npgm node complete <node-id> --note \"Implemented the requested change.\" --json\npgm node move <node-id> --parent <parent-node-id> --json\npgm node import-markdown --file ./brief.md --title \"Product Brief\" --split-headings --json\npgm image add <node-id> ./screenshot.png --json\npgm image list <node-id> --json\npgm project export-markdown --output ./project-context.md\npgm update --dry-run\n```\n\nAvoid starting with `pgm project view --json` for agent work; it returns the full graph and can be much larger than the schema and node context needed for a scoped change.\n\n## Agent Write Commands\n\nCreate a new project and link it as the current project:\n\n```bash\npgm project create \"New Product Site\" --link --json\n```\n\nThe JSON response includes `project.id`, `project.name`, `projectId`, `name`, `server`, and `linked`. Agents should use `projectId` or `project.id` in the next command.\n\nCreate a context node from markdown:\n\n```bash\npgm node import-markdown --file ./notes.md --title \"Imported Notes\" --json\n```\n\nSplit markdown into a hierarchy of context nodes using heading structure:\n\n```bash\npgm node import-markdown --file ./notes.md --title \"Imported Notes\" --split-headings --max-heading-depth 2 --json\n```\n\nThe JSON response includes the root node ID, every created node ID, the created node records, and the created parent-child links so an agent can use them immediately.\n\nCreate or update product structure nodes:\n\n```bash\npgm node create --title \"Checkout\" --type page --parent <parent-node-id> --context-file ./context.md --json\npgm node update <node-id> --title \"Checkout\" --status working --type page --json\npgm node complete <node-id> --note \"Implemented the requested change.\" --json\npgm node context set <node-id> --file ./context.md --json\npgm node metadata set <node-id> purpose \"Checkout entry point\" --json\npgm node move <node-id> --parent <parent-node-id> --json\n```\n\nAttach one or more screenshots/images to a node:\n\n```bash\npgm image add <node-id> ./desktop.png ./mobile.png --json\npgm image list <node-id> --json\npgm image remove <node-id> <image-id> --json\n```\n\nExport scoped node context as LLM-ready markdown:\n\n```bash\npgm node export-context <node-id> --output ./node-context.md\n```\n\nExport full project context only for broad handoffs:\n\n```bash\npgm project export-markdown --output ./project-context.md\n```\n\n## Agent Skill\n\nThe package includes a `product-grid-context` agent skill that teaches agents when and how to use `pgm`.\n\nInstall it for Codex globally:\n\n```bash\npgm skill install --agent codex --global\n```\n\nInstall it into the current project:\n\n```bash\npgm skill install --agent codex\n```\n\nInspect the bundled skill:\n\n```bash\npgm skill path\npgm skill print\n```\n","readmeFilename":"README.md"}