{
  "slug": "remove-duplicate-lines",
  "name": "gizza-ai/remove-duplicate-lines",
  "version": "0.1.0",
  "title": "Remove Duplicate Lines — online deduplicator — gizza.ai",
  "description": "Remove duplicate lines from text in your browser — keep first or last occurrence, ignore case or whitespace, uniq-style consecutive mode. Free, private.",
  "tags": [
    "remove duplicate lines",
    "delete duplicate lines",
    "deduplicate text",
    "dedupe lines",
    "unique lines"
  ],
  "category": "text",
  "urls": {
    "page": "https://gizza.ai/tools/remove-duplicate-lines/",
    "markdown": "https://gizza.ai/tools/remove-duplicate-lines/index.md",
    "descriptor": "https://gizza.ai/tools/remove-duplicate-lines/tool.json",
    "deep_link_example": "https://gizza.ai/tools/remove-duplicate-lines/?text=Paste%20lines%20to%20remove%20duplicates%20from%E2%80%A6&ignore_case=true&trim=true&adjacent_only=true&keep=first&remove_empty=true"
  },
  "cli": "gizza tool remove-duplicate-lines \"Paste lines to remove duplicates from…\"",
  "tool": {
    "description": "Remove duplicate lines from the text and return the deduplicated text plus total/kept/removed line counts. By default the first occurrence of each line is kept and order is preserved. Set ignore_case=true to compare case-insensitively, trim=true to ignore surrounding whitespace, adjacent_only=true to only collapse consecutive duplicates (like Unix `uniq`), keep=\"last\" to keep the last occurrence instead of the first, and remove_empty=true to also drop blank lines. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "adjacent_only": {
          "default": false,
          "description": "Only collapse runs of consecutive identical lines (like the Unix `uniq` command); a line that reappears later is kept.",
          "type": "boolean"
        },
        "ignore_case": {
          "default": false,
          "description": "Compare lines case-insensitively when detecting duplicates.",
          "type": "boolean"
        },
        "keep": {
          "default": "first",
          "description": "Which occurrence of a duplicated line to keep: the first (default) or the last.",
          "enum": [
            "first",
            "last"
          ],
          "type": "string"
        },
        "remove_empty": {
          "default": false,
          "description": "Also drop empty (or whitespace-only, when trim is on) lines.",
          "type": "boolean"
        },
        "text": {
          "description": "The text whose duplicate lines should be removed.",
          "type": "string"
        },
        "trim": {
          "default": false,
          "description": "Trim leading/trailing whitespace from each line before comparing, and from the kept output.",
          "type": "boolean"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    }
  }
}