id = "xleak"
name = "xleak"
homepage = "https://github.com/bgreenwell/xleak"
description = "Terminal Excel viewer with an interactive TUI"
executables = ["xleak"]
[dotfiles]
paths = [
"[configHome]/xleak/config.toml",
"[appData]/xleak/config.toml",
"%APPDATA%/xleak/config.toml",
]
secret = []
[commands]
format = 1
label = "View a spreadsheet"
description = "Show an Excel, CSV or TSV file in the terminal, interactively or as a table, or export it. Source: xleak README (usage section). Custom themes and keybindings are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false }
[[commands.source]]
id = "readme"
kind = "help"
url = "https://raw.githubusercontent.com/bgreenwell/xleak/HEAD/README.md"
revision = "2026-10-27"
evidence = """
xleak quarterly-report.xlsx -i
xleak report.xlsx --sheet "Q3 Results" -i
xleak data.xlsx -i --formulas
xleak wide-data.xlsx -i -H
xleak data.csv --csv-delimiter ";"
xleak large-file.xlsx -n 20
xleak data.xlsx --export csv > output.csv
xleak data.xlsx --export json > output.json
xleak data.xlsx --export text > output.txt
xleak data.xlsx --export csv --delimiter ";" > output.csv
xleak data.xlsx --no-color
xleak data.xlsx --no-header
xleak data.xlsx -i --no-column-id
xleak data.xlsx -i --no-row-id
xleak workbook.xlsx --list-tables
xleak workbook.xlsx --table "Sales"
Use --theme <NAME> to select a theme from the command line.
xleak --config /path/to/config.toml file.xlsx -i
"""
[[commands.field]]
id = "file"
label = "Spreadsheet file"
type = "path"
position = 0
min = 1
path = { kind = "file", role = "input", must_exist = true }
sources = ["readme"]
[[commands.field]]
id = "interactive"
label = "Interactive viewer"
type = "boolean"
option = ["-i"]
sources = ["readme"]
[[commands.field]]
id = "sheet"
label = "Sheet"
description = "Sheet name, or a 1-based index."
type = "string"
option = ["--sheet"]
sources = ["readme"]
[[commands.field]]
id = "rows"
label = "Rows to show"
description = "0 shows all rows."
type = "integer"
option = ["-n"]
sources = ["readme"]
[[commands.field]]
id = "formulas"
label = "Show formulas"
type = "boolean"
option = ["--formulas"]
sources = ["readme"]
[[commands.field]]
id = "horizontal"
label = "Horizontal scrolling"
description = "Auto-size columns for wide files."
type = "boolean"
option = ["-H"]
sources = ["readme"]
[[commands.field]]
id = "export"
label = "Export format"
type = "enum"
option = ["--export"]
choices = [{ value = "csv", label = "CSV" }, { value = "json", label = "JSON" }, { value = "text", label = "Text" }]
sources = ["readme"]
[[commands.field]]
id = "no_header"
label = "First row is data"
type = "boolean"
option = ["--no-header"]
sources = ["readme"]
[[commands.field]]
id = "csv_delimiter"
label = "CSV field delimiter"
type = "string"
option = ["--csv-delimiter"]
sources = ["readme"]
[[commands.field]]
id = "table"
label = "Excel table"
type = "string"
option = ["--table"]
sources = ["readme"]
[[commands.field]]
id = "list_tables"
label = "List tables"
type = "boolean"
option = ["--list-tables"]
sources = ["readme"]
[[commands.field]]
id = "theme"
label = "Theme"
type = "string"
option = ["--theme"]
suggestions = [{ value = "Default", label = "Default" }, { value = "Dracula", label = "Dracula" }, { value = "Nord", label = "Nord" }]
sources = ["readme"]
[[commands.task]]
id = "browse"
label = "Browse interactively"
set = { interactive = [true] }
fields = ["file", "interactive", "sheet", "formulas", "horizontal"]
required = ["file"]
[[commands.task]]
id = "export"
label = "Export to stdout"
fields = ["file", "sheet", "export", "rows"]
required = ["file", "export"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["file", "interactive", "sheet", "rows", "export"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["formulas", "horizontal", "no_header", "csv_delimiter", "table", "list_tables", "theme"]