{
  "slug": "binary-codec",
  "name": "gizza-ai/binary-codec",
  "version": "0.1.0",
  "title": "Binary Encoder & Decoder — Text to Binary & Binary to Text — gizza.ai",
  "description": "Convert text to binary and decode binary back to text instantly — byte delimiters, 0b prefix, hex byte view. Free, private, runs entirely in your browser.",
  "tags": [
    "binary",
    "binary encode",
    "binary decode",
    "text to binary",
    "binary to text",
    "binary translator",
    "encoder",
    "decoder",
    "binary converter",
    "bits"
  ],
  "category": "encoding",
  "urls": {
    "page": "https://gizza.ai/tools/binary-codec/",
    "markdown": "https://gizza.ai/tools/binary-codec/index.md",
    "descriptor": "https://gizza.ai/tools/binary-codec/tool.json",
    "deep_link_example": "https://gizza.ai/tools/binary-codec/?input=Hello%2C%20world%21&mode=encode&format=text&delimiter=space&prefix=none"
  },
  "cli": "gizza tool binary-codec \"Hello, world!\"",
  "tool": {
    "description": "Encode text or bytes to a per-byte binary bit string (eight 0/1 bits per byte), or decode a binary string back to text. Use mode='encode' (default, e.g. 'Hi' -> '01001000 01101001') or mode='decode' (e.g. '01001000 01101001' -> 'Hi'). delimiter sets the separator between bytes when encoding ('space' default, 'none', 'colon', 'dash', 'comma', 'newline'); prefix adds '0b' before each byte. On decode, format='text' (default) renders UTF-8 (errors on non-UTF-8 bytes) and format='bytes' shows the raw bytes as a plain hex string. Decoding ignores whitespace, the common delimiters (: - ,), and the 0b prefix, so any encoded form round-trips back.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "delimiter": {
          "default": "space",
          "description": "Separator placed between bytes when encoding: 'space' (default), 'none', 'colon' (:), 'dash' (-), 'comma', or 'newline'. Decoding ignores any of these.",
          "enum": [
            "none",
            "space",
            "colon",
            "dash",
            "comma",
            "newline"
          ],
          "type": "string"
        },
        "format": {
          "default": "text",
          "description": "On decode, how to render the recovered bytes: 'text' (default) is UTF-8 and errors if the bytes aren't valid UTF-8; 'bytes' shows them as a plain lowercase hex byte string (use for binary data). Ignored on encode.",
          "enum": [
            "text",
            "bytes"
          ],
          "type": "string"
        },
        "input": {
          "description": "The text to encode (read as UTF-8), or the binary bit string to decode.",
          "type": "string"
        },
        "mode": {
          "default": "encode",
          "description": "Direction: 'encode' (default) turns text into a binary bit string, 'decode' turns binary back into text.",
          "enum": [
            "encode",
            "decode"
          ],
          "type": "string"
        },
        "prefix": {
          "default": "none",
          "description": "Marker placed before each byte when encoding: 'none' (default) or '0b' (e.g. 0b01001000). Decoding strips 0b automatically.",
          "enum": [
            "none",
            "0b"
          ],
          "type": "string"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}