{
  "title": "Fixed width file parser",
  "human_url": "https://happytails.ai/en/data-tools/fixed-width-file-parser/",
  "agent_url": "https://happytails.ai/agents/en/data-tools/fixed-width-file-parser/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/data-tools/fixed-width-file-parser.md",
  "content": "Fixed width file parser\nTurn fixed-width records into a CSV table using explicit field sizes and column names.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Fixed width file parser\nPaste the aligned records, one per line.\nDefine the widths and output headers as JSON arrays.\nChoose whether to trim ASCII padding spaces and download CSV.\nUseful next steps\nCSV type profiler\nData dictionary generator\nPrepare the source\nPaste the aligned records, one per line.\nChoose the matching rules\nDefine the widths and output headers as JSON arrays.\nReview and keep the result\nChoose whether to trim ASCII padding spaces and download CSV. Widths count Unicode code points rather than bytes, grapheme clusters or visual columns. Every record must have exactly the total width. Tabs count as one character. The final newline terminates the preceding record.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "CSV type profiler",
      "url": "https://happytails.ai/en/data-tools/csv-type-profiler/"
    },
    {
      "name": "Data dictionary generator",
      "url": "https://happytails.ai/en/data-tools/data-dictionary-generator/"
    }
  ],
  "tool": {
    "id": "fixed-width-file-parser",
    "category": "data-tools",
    "built": true,
    "requirements": "Widths count Unicode code points rather than bytes, grapheme clusters or visual columns. Every record must have exactly the total width. Tabs count as one character. The final newline terminates the preceding record. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters.",
    "implementation": {
      "fields": [
        {
          "key": "widths",
          "label": "Field widths (JSON)",
          "value": "[4, 8, 5]",
          "type": "textarea",
          "help": "Positive whole-number widths measured in Unicode code points."
        },
        {
          "key": "headers",
          "label": "Output column names (JSON)",
          "value": "[\"id\", \"name\", \"score\"]",
          "type": "textarea",
          "help": "One unique nonempty column name for every field width."
        },
        {
          "key": "trim",
          "label": "Field padding",
          "value": "Trim spaces",
          "type": "select",
          "values": [
            "Trim spaces",
            "Preserve"
          ]
        },
        {
          "key": "outputSafety",
          "label": "CSV output cells",
          "value": "Protect spreadsheet cells",
          "type": "select",
          "values": [
            "Protect spreadsheet cells",
            "Preserve original cells"
          ]
        }
      ],
      "live": true,
      "presentation": "metrics",
      "note": "Runs locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Every line must have exactly the total width. Trim spaces removes only ASCII spaces at each field edge; Preserve retains all padding. Widths are code points, not UTF-8 bytes, visual columns or grapheme clusters. A final newline terminates the previous record. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Fixed-width records",
        "placeholder": "0001Alice   00012\n0002Bob     00009",
        "help": "Paste fixed-width records, one per line. Widths count Unicode code points. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Fixed width file parser\n\n- Human page: https://happytails.ai/en/data-tools/fixed-width-file-parser/\n- Markdown: https://happytails.ai/en/data-tools/fixed-width-file-parser.md\n- Structured JSON: https://happytails.ai/agents/en/data-tools/fixed-width-file-parser/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `fixed-width-file-parser` |\n| Category | data-tools |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nRuns locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Every line must have exactly the total width. Trim spaces removes only ASCII spaces at each field edge; Preserve retains all padding. Widths are code points, not UTF-8 bytes, visual columns or grapheme clusters. A final newline terminates the previous record. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.\n\n### Inputs and settings\n\nText input: Fixed-width records.\n\nExample or placeholder shown in the interface (not a validated fixture):\n\n```text\n0001Alice   00012\n0002Bob     00009\n```\n\nPaste fixed-width records, one per line. Widths count Unicode code points. Results update as you type. Up to 1,000,000 characters.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `widths` | Field widths (JSON) | textarea | \"[4, 8, 5]\" |  |\n| `headers` | Output column names (JSON) | textarea | \"[\\\"id\\\", \\\"name\\\", \\\"score\\\"]\" |  |\n| `trim` | Field padding | select | \"Trim spaces\" | Allowed: Trim spaces, Preserve |\n| `outputSafety` | CSV output cells | select | \"Protect spreadsheet cells\" | Allowed: Protect spreadsheet cells, Preserve original cells |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nWidths count Unicode code points rather than bytes, grapheme clusters or visual columns. Every record must have exactly the total width. Tabs count as one character. The final newline terminates the preceding record. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"fixed-width-file-parser\",\n  \"category\": \"data-tools\",\n  \"built\": true,\n  \"requirements\": \"Widths count Unicode code points rather than bytes, grapheme clusters or visual columns. Every record must have exactly the total width. Tabs count as one character. The final newline terminates the preceding record. Up to 1,000,000 characters, 10,000 data records, 100 columns and 100,000 cells across the sources. Files for multi-source tools are limited to 4,000,000 bytes total. Reports retain at most 500 diagnostic findings and state any omitted count. CSV and JSON outputs are limited to 4,000,000 characters.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"widths\",\n        \"label\": \"Field widths (JSON)\",\n        \"value\": \"[4, 8, 5]\",\n        \"type\": \"textarea\",\n        \"help\": \"Positive whole-number widths measured in Unicode code points.\"\n      },\n      {\n        \"key\": \"headers\",\n        \"label\": \"Output column names (JSON)\",\n        \"value\": \"[\\\"id\\\", \\\"name\\\", \\\"score\\\"]\",\n        \"type\": \"textarea\",\n        \"help\": \"One unique nonempty column name for every field width.\"\n      },\n      {\n        \"key\": \"trim\",\n        \"label\": \"Field padding\",\n        \"value\": \"Trim spaces\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Trim spaces\",\n          \"Preserve\"\n        ]\n      },\n      {\n        \"key\": \"outputSafety\",\n        \"label\": \"CSV output cells\",\n        \"value\": \"Protect spreadsheet cells\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Protect spreadsheet cells\",\n          \"Preserve original cells\"\n        ]\n      }\n    ],\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Runs locally on your device. CSV requires unique nonempty headers. Up to 1,000,000 characters, 10,000 data records and 100,000 cells across inputs, with 100 columns. Quoted multiline cells are supported. Each JSON settings field is limited to 100,000 characters. Output files are bounded to 4,000,000 characters. Diagnostic reports contain at most 500 findings and disclose the omitted count. Every line must have exactly the total width. Trim spaces removes only ASCII spaces at each field edge; Preserve retains all padding. Widths are code points, not UTF-8 bytes, visual columns or grapheme clusters. A final newline terminates the previous record. Protect spreadsheet cells prefixes formula-like values, including negative numbers, with an apostrophe. Choose Preserve original cells only for a trusted import workflow.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Fixed-width records\",\n      \"placeholder\": \"0001Alice   00012\\n0002Bob     00009\",\n      \"help\": \"Paste fixed-width records, one per line. Widths count Unicode code points. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nTurn fixed-width records into a CSV table using explicit field sizes and column names.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Fixed width file parser\n\n1. Paste the aligned records, one per line.\n2. Define the widths and output headers as JSON arrays.\n3. Choose whether to trim ASCII padding spaces and download CSV.\n\n## Useful next steps\n\n- [CSV type profiler](https://happytails.ai/en/data-tools/csv-type-profiler/) ([Markdown](https://happytails.ai/en/data-tools/csv-type-profiler.md))\n\n- [Data dictionary generator](https://happytails.ai/en/data-tools/data-dictionary-generator/) ([Markdown](https://happytails.ai/en/data-tools/data-dictionary-generator.md))\n\n## Prepare the source\n\nPaste the aligned records, one per line.\n\n### Choose the matching rules\n\nDefine the widths and output headers as JSON arrays.\n\n### Review and keep the result\n\nChoose whether to trim ASCII padding spaces and download CSV. Widths count Unicode code points rather than bytes, grapheme clusters or visual columns. Every record must have exactly the total width. Tabs count as one character. The final newline terminates the preceding record.\n"
}