{
  "slug": "extract-substring",
  "name": "gizza-ai/extract-substring",
  "version": "0.1.0",
  "title": "Extract Substring — by index or between delimiters — gizza.ai",
  "description": "Pull out a portion of text by start/end character index, or everything between two delimiters — in your browser. Nothing is uploaded.",
  "tags": [
    "substring",
    "extract text",
    "between delimiters",
    "slice string",
    "cut text",
    "string index"
  ],
  "category": "text",
  "urls": {
    "page": "https://gizza.ai/tools/extract-substring/",
    "markdown": "https://gizza.ai/tools/extract-substring/index.md",
    "descriptor": "https://gizza.ai/tools/extract-substring/tool.json",
    "deep_link_example": "https://gizza.ai/tools/extract-substring/?text=The%20source%20text%E2%80%A6&mode=index&start=0&end=5&start_delim=%5B&end_delim=%5D"
  },
  "cli": "gizza tool extract-substring \"The source text…\"",
  "tool": {
    "description": "Pull out a portion of text. mode='index' returns the substring from a 0-based start character (inclusive) to an end character (exclusive); both may be negative to count from the end, and end may be omitted for the rest of the string (indices are character-based and clamped). mode='delimiters' returns every non-overlapping substring found between a start_delim and end_delim. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "end": {
          "description": "index mode: end character (exclusive). Negative counts from the end. Omit for end-of-string.",
          "type": "integer"
        },
        "end_delim": {
          "description": "delimiters mode: the closing delimiter (required in delimiters mode).",
          "type": "string"
        },
        "mode": {
          "default": "index",
          "description": "How to extract: 'index' (by character position) or 'delimiters' (everything between two markers).",
          "enum": [
            "index",
            "delimiters"
          ],
          "type": "string"
        },
        "start": {
          "default": 0,
          "description": "index mode: 0-based start character (inclusive). Negative counts from the end. Default 0.",
          "type": "integer"
        },
        "start_delim": {
          "description": "delimiters mode: the opening delimiter (required in delimiters mode).",
          "type": "string"
        },
        "text": {
          "description": "The source text to extract from.",
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  }
}