{
  "id": "pspg",
  "name": "pspg",
  "homepage": "https://github.com/okbob/pspg",
  "description": "Unix pager optimized for psql",
  "executables": [
    "pspg"
  ],
  "dotfiles": {
    "paths": [
      "~/.pspgconf",
      "~/.pspg_theme_*"
    ],
    "secret": []
  },
  "commands": {
    "format": 1,
    "label": "View tabular output",
    "description": "Open a file or CSV/TSV data in the pspg pager. Database connection, watch and on-exit options are not covered.",
    "quality": "ai-draft",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": true,
      "short_bundles": false
    },
    "source": [
      {
        "id": "man",
        "kind": "manual",
        "url": "https://manpages.debian.org/testing/pspg/pspg.1.en.html",
        "revision": "2026-10-27",
        "evidence": "-f, --file=FILE open file\n-F, --quit-if-one-screen quit if content is one screen\n-a, --ascii force ascii\n-b, --blackwhite black-white style\n-s, --style=N set color style number (0..24)\n--csv input stream has csv format\n--csv-separator char used as field separator\n--tsv input stream has tsv format\n-c, --freezecols=N freeze N columns (0..9)\n--line-numbers show line number column\n--no-mouse don't use own mouse handling\n-i, --ignore-case ignore case in searches that do not contain uppercase\n-I, --IGNORE-CASE ignore case in all searches\n-X, --reprint-on-exit preserve content after exit\n"
      }
    ],
    "field": [
      {
        "id": "file",
        "label": "File",
        "description": "Data file to open. Leave empty to read standard input.",
        "type": "path",
        "path": {
          "kind": "file",
          "role": "input"
        },
        "option": [
          "--file",
          "-f"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "csv",
        "label": "Input is CSV",
        "type": "boolean",
        "option": [
          "--csv"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "tsv",
        "label": "Input is TSV",
        "type": "boolean",
        "option": [
          "--tsv"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "csv_separator",
        "label": "CSV separator",
        "type": "string",
        "option": [
          "--csv-separator"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "style",
        "label": "Color style (0-24)",
        "type": "integer",
        "option": [
          "--style",
          "-s"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "freezecols",
        "label": "Freeze columns (0-9)",
        "type": "integer",
        "option": [
          "--freezecols",
          "-c"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "line_numbers",
        "label": "Show line numbers",
        "type": "boolean",
        "option": [
          "--line-numbers"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "ascii",
        "label": "Force ASCII borders",
        "type": "boolean",
        "option": [
          "--ascii",
          "-a"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "ignore_case",
        "label": "Ignore case in searches",
        "type": "boolean",
        "option": [
          "--ignore-case",
          "-i"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "quit_one_screen",
        "label": "Quit if one screen",
        "type": "boolean",
        "option": [
          "--quit-if-one-screen",
          "-F"
        ],
        "sources": [
          "man"
        ]
      },
      {
        "id": "reprint",
        "label": "Keep content after exit",
        "type": "boolean",
        "option": [
          "--reprint-on-exit",
          "-X"
        ],
        "sources": [
          "man"
        ]
      }
    ],
    "task": [
      {
        "id": "csv_file",
        "label": "View a CSV file",
        "fields": [
          "file",
          "csv",
          "freezecols"
        ],
        "required": [
          "file"
        ],
        "set": {
          "csv": [
            true
          ]
        }
      },
      {
        "id": "tsv_file",
        "label": "View a TSV file",
        "fields": [
          "file",
          "tsv"
        ],
        "required": [
          "file"
        ],
        "set": {
          "tsv": [
            true
          ]
        }
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "file",
          "csv",
          "tsv",
          "csv_separator",
          "freezecols"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "style",
          "line_numbers",
          "ascii",
          "ignore_case",
          "quit_one_screen",
          "reprint"
        ]
      }
    ]
  }
}
