id = "tabiew"
name = "Tabiew"
homepage = "https://github.com/shshemi/tabiew"
description = "A lightweight TUI application to view and query tabular data files, such as CSV, TSV, and parquet."
executables = ["tw"]
[dotfiles]
paths = ["[configHome]/tabiew/theme.toml"]
secret = []
[commands]
format = 1
label = "Browse a data file"
description = "Open CSV/TSV/Parquet/logfmt-style data files in the Tabiew table viewer. Only the format, separator, header and row-limit options are covered."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "s"
kind = "help"
url = "https://github.com/shshemi/tabiew"
revision = "2026-10-27"
evidence = """
tw data.csv --separator '|'
tw data.csv --separator ';' --no-header
tw data.txt -f parquet
tw data.txt -f csv --separator '|'
tw data.txt -f tsv
tw data.txt -f dsv --separator '|'
tw big.csv --max-rows 1000
Logfmt has no extension of its own, so it needs an explicit format: `tw app.log -f logfmt`.
"""
[[commands.field]]
id = "format"
label = "Format"
type = "enum"
option = ["-f"]
choices = [{ value = "csv", label = "CSV" }, { value = "tsv", label = "TSV" }, { value = "dsv", label = "DSV (custom delimiter)" }, { value = "parquet", label = "Parquet" }, { value = "logfmt", label = "logfmt" }]
sources = ["s"]
[[commands.field]]
id = "separator"
label = "Separator"
type = "string"
option = ["--separator"]
sources = ["s"]
[[commands.field]]
id = "no_header"
label = "No header row"
type = "boolean"
option = ["--no-header"]
sources = ["s"]
[[commands.field]]
id = "max_rows"
label = "Max rows"
type = "integer"
option = ["--max-rows"]
sources = ["s"]
[[commands.field]]
id = "files"
label = "Data files"
type = "path"
position = 0
multiple = true
path = { kind = "file", role = "input", must_exist = true }
sources = ["s"]
[[commands.task]]
id = "open"
label = "Open files"
fields = ["files", "format", "separator", "no_header"]
required = ["files"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["files", "format", "separator", "no_header", "max_rows"]