{
  "slug": "byte-drop",
  "name": "gizza-ai/byte-drop",
  "version": "0.1.0",
  "title": "Byte Drop — Remove a Byte Range from Text, Hex or Base64 — gizza.ai",
  "description": "Delete a range of bytes from text, hex, or Base64 by start offset and length, and view the remainder in any format. Free, private, runs in your browser.",
  "tags": [
    "byte drop",
    "remove bytes",
    "delete byte range",
    "byte editor",
    "hex",
    "base64",
    "trim bytes",
    "byte splice",
    "binary editor",
    "offset length"
  ],
  "category": "encoding",
  "urls": {
    "page": "https://gizza.ai/tools/byte-drop/",
    "markdown": "https://gizza.ai/tools/byte-drop/index.md",
    "descriptor": "https://gizza.ai/tools/byte-drop/tool.json",
    "deep_link_example": "https://gizza.ai/tools/byte-drop/?input=Hello%2C%20World&start=5&length=7&format=text&output=text"
  },
  "cli": "gizza tool byte-drop \"Hello, World\"",
  "tool": {
    "description": "Remove a contiguous range of bytes from data and return the remainder. Decodes 'input' per format ('text' UTF-8, 'hex' byte string, or 'base64'), then deletes 'length' bytes starting at byte offset 'start' (0-based, inclusive). start may be negative to count from the end (-1 is the last byte); start and length are clamped to the buffer, and length=0 removes nothing. The remaining bytes are rendered per 'output' ('text', 'hex', or 'base64'). Offsets and lengths are raw bytes, not characters. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "format": {
          "default": "text",
          "description": "How to interpret 'input'. 'text' (default) is UTF-8; 'hex' is a hex byte string (e.g. '48 65 6c' or '0x48656c'); 'base64' is standard Base64. Offsets and lengths are counted in raw bytes, not characters.",
          "enum": [
            "text",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "input": {
          "description": "The data to remove bytes from — UTF-8 text, a hex byte string, or Base64 (set by 'format').",
          "type": "string"
        },
        "length": {
          "default": 0,
          "description": "How many bytes to remove starting at 'start'. 0 removes nothing; a range past the end is clamped. Must be zero or positive. Default 0.",
          "type": "integer"
        },
        "output": {
          "default": "text",
          "description": "How to render the remaining bytes. 'text' (default) is UTF-8 (errors if the remainder isn't valid UTF-8); 'hex' and 'base64' show the raw bytes — use them for binary data.",
          "enum": [
            "text",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "start": {
          "default": 0,
          "description": "0-based byte offset of the first byte to remove (inclusive). Negative counts from the end (-1 is the last byte). Clamped to the buffer. Default 0.",
          "type": "integer"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}