🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Json Modifier

by @wanng-ide

Safely apply structured JSON patches (RFC 6902) to files. Use this skill when you need to update configuration files, package.json, or memory JSONs without r...

Versionv1.0.0
Downloads1,191
TERMINAL
clawhub install json-modifier

πŸ“– About This Skill


name: json-modifier description: Safely apply structured JSON patches (RFC 6902) to files. Use this skill when you need to update configuration files, package.json, or memory JSONs without rewriting the whole file or using brittle regex.

JSON Modifier

A utility for modifying JSON files using RFC 6902 JSON Patch format. Supports precise additions, removals, replacements, moves, copies, and tests.

Usage

# Modify a file in place
node skills/json-modifier/index.js --file path/to/config.json --patch '[{"op": "replace", "path": "/key", "value": "new_value"}]'

Modify and save to a new file

node skills/json-modifier/index.js --file input.json --patch '[...]' --out output.json

Use a patch file

node skills/json-modifier/index.js --file input.json --patch-file patches/update.json

Patch Format (RFC 6902)

The patch must be a JSON array of operation objects.

Examples

Replace a value:

[
  { "op": "replace", "path": "/version", "value": "2.0.0" }
]

Add a new key:

[
  { "op": "add", "path": "/features/new_feature", "value": true }
]

Remove a key:

[
  { "op": "remove", "path": "/deprecated_key" }
]

Append to an array:

[
  { "op": "add", "path": "/list/-", "value": "item" }
]

Safety

  • Validates patch against document before applying.
  • Atomic write (writes to temporary file, then renames).
  • Preserves indentation (default: 2 spaces).
  • πŸ’‘ Examples

    Replace a value:

    [
      { "op": "replace", "path": "/version", "value": "2.0.0" }
    ]
    

    Add a new key:

    [
      { "op": "add", "path": "/features/new_feature", "value": true }
    ]
    

    Remove a key:

    [
      { "op": "remove", "path": "/deprecated_key" }
    ]
    

    Append to an array:

    [
      { "op": "add", "path": "/list/-", "value": "item" }
    ]