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"