{
  "slug": "csv-dedupe",
  "name": "gizza-ai/csv-dedupe",
  "version": "0.1.0",
  "title": "CSV Dedupe — Remove Duplicate Rows Online — gizza.ai",
  "description": "Remove duplicate rows from a CSV, keeping the first — optionally keyed on chosen columns. Runs in your browser, nothing is uploaded, free.",
  "tags": [
    "csv dedupe",
    "remove duplicate rows",
    "deduplicate csv",
    "unique rows",
    "csv cleanup"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/csv-dedupe/",
    "markdown": "https://gizza.ai/tools/csv-dedupe/index.md",
    "descriptor": "https://gizza.ai/tools/csv-dedupe/tool.json",
    "deep_link_example": "https://gizza.ai/tools/csv-dedupe/?data=name%2Cage%0AAlice%2C30%0AAlice%2C30%0ABob%2C25&columns=name&header=true&delimiter=%2C"
  },
  "cli": "gizza tool csv-dedupe \"name,age\nAlice,30\nAlice,30\nBob,25\"",
  "tool": {
    "description": "Remove duplicate rows from CSV, keeping the first occurrence. By default a row is a duplicate when the whole row matches; set `columns` (1-based indices or header names) to key the dedup on a subset of columns. `header`=true keeps the first row and lets you name columns. `delimiter` is a char or comma/tab/semicolon/pipe.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "columns": {
          "default": "",
          "description": "Optional comma-separated key columns (1-based indices, or header names when header=true). Empty = match the whole row.",
          "type": "string"
        },
        "data": {
          "description": "The CSV text to de-duplicate.",
          "type": "string"
        },
        "delimiter": {
          "default": ",",
          "description": "Field separator: a single char or 'comma'/'tab'/'semicolon'/'pipe'. Default ','.",
          "type": "string"
        },
        "header": {
          "default": true,
          "description": "Treat the first row as a header (kept, and matchable by name). Default true.",
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}