{
  "slug": "yaml-to-csv",
  "name": "gizza-ai/yaml-to-csv",
  "version": "0.1.0",
  "title": "YAML to CSV — Flatten YAML records into a CSV table — gizza.ai",
  "description": "Flatten a YAML list or mapping of records into CSV with a unioned column header. Nested keys become dot-paths. Runs in your browser, no upload.",
  "tags": [
    "yaml to csv",
    "yaml csv converter",
    "flatten yaml",
    "yaml to spreadsheet",
    "convert yaml"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/yaml-to-csv/",
    "markdown": "https://gizza.ai/tools/yaml-to-csv/index.md",
    "descriptor": "https://gizza.ai/tools/yaml-to-csv/tool.json",
    "deep_link_example": "https://gizza.ai/tools/yaml-to-csv/?data=alice%3A%0A%20%20age%3A%2030%0A%20%20city%3A%20Paris%0Abob%3A%0A%20%20age%3A%2040%0A%20%20city%3A%20Berlin&delimiter=comma&header=true&array_mode=json&quote_all=true&key_column=key"
  },
  "cli": "gizza tool yaml-to-csv \"alice:\n  age: 30\n  city: Paris\nbob:\n  age: 40\n  city: Berlin\"",
  "tool": {
    "description": "Flatten a YAML list of records (or a top-level mapping whose values are records) into CSV. Columns are the union of every record's keys in first-seen order; nested mappings flatten to dot-paths (user.name); arrays render per array_mode ('json' compact string, 'joined' comma-joined, or 'columns' dot-indexed). delimiter is comma/tab/semicolon/pipe; header toggles the header row; quote_all forces quoting; key_column names the extra column that keeps a mapping entry's key. Runs locally.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "array_mode": {
          "default": "json",
          "description": "How array fields render: 'json' (default) writes the whole array as a compact JSON string in one cell; 'joined' joins scalar arrays with ', ' in one cell; 'columns' expands each element into its own dot-indexed column (tags.0, tags.1).",
          "enum": [
            "json",
            "joined",
            "columns"
          ],
          "type": "string"
        },
        "data": {
          "description": "The YAML text: a top-level list of records, or a mapping whose values are records (or all scalars = one record).",
          "type": "string"
        },
        "delimiter": {
          "default": "comma",
          "description": "Column separator for the CSV output. Default 'comma'.",
          "enum": [
            "comma",
            "tab",
            "semicolon",
            "pipe"
          ],
          "type": "string"
        },
        "header": {
          "default": true,
          "description": "Emit the column-name header row (default true). false writes data rows only.",
          "type": "boolean"
        },
        "key_column": {
          "default": "key",
          "description": "For a top-level mapping of records, the header of the extra column holding each entry's key (e.g. 'id'). Blank omits it. Ignored for a top-level list. Default 'key'.",
          "type": "string"
        },
        "quote_all": {
          "default": false,
          "description": "Wrap every field in double quotes, not just the ones that need it (commas, quotes, newlines). Default false.",
          "type": "boolean"
        }
      },
      "required": [
        "data"
      ],
      "type": "object"
    }
  }
}