id = "youplot"
name = "YouPlot"
homepage = "https://github.com/red-data-tools/YouPlot"
description = "A command line tool that draws plots on the terminal."
executables = ["uplot", "youplot"]
[dotfiles]
paths = [
"~/.youplotrc",
"~/.youplot.yml",
"~/.config/youplot/youplotrc",
"~/.config/youplot/youplot.yml",
]
secret = []
[commands]
format = 1
label = "Plot data in the terminal"
description = "Draw a bar, histogram, line or scatter plot from files or stdin. Other chart types, colours and progressive mode 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/red-data-tools/YouPlot/HEAD/README.md"
revision = "2026-10-27"
evidence = """
`uplot <command> [options] <data.tsv>`
| barplot | bar | draw a horizontal barplot |
| histogram | hist | draw a horizontal histogram |
| lineplot | line | draw a line chart |
| scatter | s | draw a scatter plot |
curl -sL https://git.io/ISLANDScsv | sort -nk2 -t, | tail -n15 | uplot bar -d, -t "Areas of the World's Major Landmasses"
| uplot hist --nbins 20
| uplot line -d, -w 50 -h 15 -t AirPassengers --xlim 1950,1960 --ylim 0,600
| uplot scatter -H -t IRIS
`-H` If input data contains a header line, you need to specify the `-H` option.
`-d` To specify a blank space, you can use `uplot bar -d ' ' data.txt`.
"""
[[commands.field]]
id = "plot"
label = "Plot type"
type = "enum"
position = 0
choices = [
{ value = "bar", label = "Bar" },
{ value = "hist", label = "Histogram" },
{ value = "line", label = "Line" },
{ value = "scatter", label = "Scatter" },
]
sources = ["readme"]
[[commands.field]]
id = "file"
label = "Data file (stdin if empty)"
type = "path"
path = { kind = "file", role = "input" }
position = 1
sources = ["readme"]
[[commands.field]]
id = "delimiter"
label = "Delimiter"
type = "string"
option = ["-d"]
sources = ["readme"]
[[commands.field]]
id = "header"
label = "Input has a header line"
type = "boolean"
option = ["-H"]
sources = ["readme"]
[[commands.field]]
id = "title"
label = "Title"
type = "string"
option = ["-t"]
sources = ["readme"]
[[commands.field]]
id = "width"
label = "Width"
type = "integer"
option = ["-w"]
sources = ["readme"]
[[commands.field]]
id = "height"
label = "Height"
type = "integer"
option = ["-h"]
sources = ["readme"]
[[commands.field]]
id = "nbins"
label = "Histogram bins"
type = "integer"
option = ["--nbins"]
sources = ["readme"]
[[commands.field]]
id = "xlim"
label = "X range (min,max)"
type = "string"
option = ["--xlim"]
sources = ["readme"]
[[commands.field]]
id = "ylim"
label = "Y range (min,max)"
type = "string"
option = ["--ylim"]
sources = ["readme"]
[[commands.task]]
id = "plot_file"
label = "Plot a file"
fields = ["plot", "file", "delimiter", "header", "title"]
required = ["plot", "file"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["plot", "file", "delimiter", "header", "title"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["width", "height", "nbins", "xlim", "ylim"]