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 }
[[commands.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
-F, --quit-if-one-screen quit if content is one screen
-a, --ascii force ascii
-b, --blackwhite black-white style
-s, --style=N set color style number (0..24)
--csv input stream has csv format
--csv-separator char used as field separator
--tsv input stream has tsv format
-c, --freezecols=N freeze N columns (0..9)
--line-numbers show line number column
--no-mouse don't use own mouse handling
-i, --ignore-case ignore case in searches that do not contain uppercase
-I, --IGNORE-CASE ignore case in all searches
-X, --reprint-on-exit preserve content after exit
"""
[[commands.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"]
[[commands.field]]
id = "csv"
label = "Input is CSV"
type = "boolean"
option = ["--csv"]
sources = ["man"]
[[commands.field]]
id = "tsv"
label = "Input is TSV"
type = "boolean"
option = ["--tsv"]
sources = ["man"]
[[commands.field]]
id = "csv_separator"
label = "CSV separator"
type = "string"
option = ["--csv-separator"]
sources = ["man"]
[[commands.field]]
id = "style"
label = "Color style (0-24)"
type = "integer"
option = ["--style", "-s"]
sources = ["man"]
[[commands.field]]
id = "freezecols"
label = "Freeze columns (0-9)"
type = "integer"
option = ["--freezecols", "-c"]
sources = ["man"]
[[commands.field]]
id = "line_numbers"
label = "Show line numbers"
type = "boolean"
option = ["--line-numbers"]
sources = ["man"]
[[commands.field]]
id = "ascii"
label = "Force ASCII borders"
type = "boolean"
option = ["--ascii", "-a"]
sources = ["man"]
[[commands.field]]
id = "ignore_case"
label = "Ignore case in searches"
type = "boolean"
option = ["--ignore-case", "-i"]
sources = ["man"]
[[commands.field]]
id = "quit_one_screen"
label = "Quit if one screen"
type = "boolean"
option = ["--quit-if-one-screen", "-F"]
sources = ["man"]
[[commands.field]]
id = "reprint"
label = "Keep content after exit"
type = "boolean"
option = ["--reprint-on-exit", "-X"]
sources = ["man"]
[[commands.task]]
id = "csv_file"
label = "View a CSV file"
fields = ["file", "csv", "freezecols"]
required = ["file"]
set = { csv = [true] }
[[commands.task]]
id = "tsv_file"
label = "View a TSV file"
fields = ["file", "tsv"]
required = ["file"]
set = { tsv = [true] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["file", "csv", "tsv", "csv_separator", "freezecols"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["style", "line_numbers", "ascii", "ignore_case", "quit_one_screen", "reprint"]