While using ⟐ Claude Code today, I watched it programatically update a script in my package.json
file using the npm pkg
subcommand. I hadn’t heard of this before - it’s really neat!
$ npm pkg
npm error code EUSAGE
npm error
npm error Manages your package.json
npm error
npm error Usage:
npm error npm pkg set <key>=<value> [<key>=<value> ...]
npm error npm pkg get [<key> [<key> ...]]
npm error npm pkg delete <key> [<key> ...]
npm error npm pkg set [<array>[<index>].<key>=<value> ...]
npm error npm pkg set [<array>[].<key>=<value> ...]
npm error npm pkg fix
It allows you to set key/value pairs inside of package.json
using a CLI command.
Here’s how Claude Code used it - we were working on a dev:local
script and realized that we needed to run a build
command inside of it. So it updated a nested value in one line:
npm pkg set scripts.dev:local="npm run build && wrangler dev --local"
We can confirm it updated by checking the file ourselves:
$ cat package.json | jq '.scripts["dev:local"]'
"npm run build && wrangler dev --local"