{
  "slug": "cyberchef-pipeline",
  "name": "gizza-ai/cyberchef-pipeline",
  "version": "0.1.0",
  "title": "Recipe Pipeline — chain Base64, hex, gzip, XOR & more — gizza.ai",
  "description": "Chain byte-level decode/transform steps — Base64, hex, URL, gzip/zlib, XOR, ROT13 — into one recipe, applied top to bottom. Free, private, runs entirely in your browser.",
  "tags": [
    "cyberchef alternative",
    "decode pipeline",
    "base64 gunzip xor",
    "xor decoder online",
    "gzip inflate online",
    "rot13 online",
    "hex decode chain",
    "malware string decoder"
  ],
  "category": "utilities",
  "urls": {
    "page": "https://gizza.ai/tools/cyberchef-pipeline/",
    "markdown": "https://gizza.ai/tools/cyberchef-pipeline/index.md",
    "descriptor": "https://gizza.ai/tools/cyberchef-pipeline/tool.json",
    "deep_link_example": "https://gizza.ai/tools/cyberchef-pipeline/?input=Paste%20the%20data%20to%20decode%2Ftransform%E2%80%A6&recipe=from-base64%0Agunzip%0Axor%202a&output_format=auto"
  },
  "cli": "gizza tool cyberchef-pipeline \"Paste the data to decode/transform…\" 'recipe=from-base64\ngunzip\nxor 2a'",
  "tool": {
    "description": "Chain byte-level decode and transform steps into a single client-side recipe, applied top to bottom over a byte buffer — a focused take on the CyberChef recipe model that runs as WASM in the browser (no upload). The 'recipe' is one operation per line: from-base64/to-base64 (tolerant decode), from-hex/to-hex, url-decode/url-encode, rot13, gunzip/gzip, zlib-inflate/zlib-deflate, raw-inflate/raw-deflate, xor KEY [hex|utf8|base64|decimal] (repeating key), add N / sub N (byte arithmetic mod 256), not, reverse, upper, lower. Blank lines and #comments are ignored. output_format = auto|utf8|hex|base64 controls how the final bytes render (auto = UTF-8 if printable else hex). Does NOT execute arbitrary code — only these fixed operations; keyed modern crypto and hashing live in the dedicated cipher/hash blocks.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "input": {
          "description": "The data to transform, fed into the first recipe step as UTF-8 bytes.",
          "type": "string"
        },
        "output_format": {
          "default": "auto",
          "description": "How the final byte buffer is rendered as text. 'auto' (default) shows UTF-8 if the whole result is valid UTF-8, otherwise lowercase hex; 'utf8' forces lossy UTF-8; 'hex' forces lowercase hex; 'base64' forces standard padded Base64. Use hex or base64 when a step produces binary bytes.",
          "enum": [
            "auto",
            "utf8",
            "hex",
            "base64"
          ],
          "type": "string"
        },
        "recipe": {
          "default": "from-base64",
          "description": "The recipe: ONE operation per line, applied top to bottom over the byte buffer. Blank lines and lines starting with '#' are ignored. Operations: 'from-base64' / 'to-base64' (decode tolerates whitespace, URL-safe alphabet and missing padding); 'from-hex' (ignores whitespace, ':' , ',' and a '0x' prefix) / 'to-hex' (lowercase, no separator); 'url-decode' / 'url-encode' (percent-encoding); 'rot13'; 'gunzip' / 'gzip'; 'zlib-inflate' / 'zlib-deflate'; 'raw-inflate' / 'raw-deflate' (raw DEFLATE); 'xor KEY [hex|utf8|base64|decimal]' (repeating-key XOR, key format defaults to hex, e.g. 'xor 2a' or 'xor secret utf8'); 'add N' / 'sub N' (add/subtract a byte mod 256, N decimal or 0x..); 'not' (bitwise NOT); 'reverse' (reverse byte order); 'upper' / 'lower' (ASCII case). Example: from-base64 / gunzip / xor 2a.",
          "type": "string"
        }
      },
      "required": [
        "input",
        "recipe"
      ],
      "type": "object"
    }
  }
}