# Terminal Line Plot

Draw readable ASCII line charts directly in the terminal from numeric series, command...

- Repository: https://github.com/sapientinc/PRAXIST (5536 stars)
- Category: Writing
- License: see repository
- Last updated: 2026-09-23
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add sapientinc/PRAXIST --skill terminal-line-plot -g -a claude-code -y`
Codex: `npx skills add sapientinc/PRAXIST --skill terminal-line-plot -g -a codex -y`
Cursor: `npx skills add sapientinc/PRAXIST --skill terminal-line-plot -g -a cursor -y`
Gemini CLI: `npx skills add sapientinc/PRAXIST --skill terminal-line-plot -g -a gemini-cli -y`

## Description

Draw readable ASCII line charts directly in the terminal from numeric series, command output, CSV, JSON, or manually extracted points. Use when the user asks for a curve, trend line, score progression, leaderboard trend, metric history, or any plot that should be visible in a CLI/chat transcript without opening a GUI or writing image files.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Terminal Line Plot

Use this skill to turn numeric sequences into terminal-readable line charts.
It is task-agnostic: do not assume any domain, metric direction, filtering rule,
or data layout unless the user or artifacts define it.

## Workflow

1. Identify the series to plot:
   - x values are usually ordered steps, dates, versions, generations, epochs, or run ids.
   - y values must be numeric.
   - If multiple plausible metrics exist, choose the one the user asked for; otherwise state the selected metric before plotting.
2. Preserve metric semantics:
   - Use exact metric names from artifacts when available.
   - Label whether higher or lower is better if known.
   - Do not mix partial and complete points silently; mark provisional or incomplete points in the title, notes, or point list.
3. Use `scripts/plot_series.py` for deterministic plotting.
4. Print a compact table or point list when it prevents misreading the curve.
5. Do not write image files unless the user explicitly asks. Prefer stdout.

## Script Usage

Run the bundled script from the skill directory:

```bash
python /path/to/terminal-line-plot/scripts/plot_series.py \
  --points "0:-4.49,1:-4.53,2:-4.87,3:-4.77,4:-3.23" \
  --title "Best future_fitness by generation" \
  --x-label generation \
  --y-label future_fitness \
  --higher-better
```

Input options:

- `--points "x:y,x:y,..."` for quick point lists.
- `--csv FILE --x-field FIELD --y-field FIELD` for CSV.
- `--json FILE --x-field FIELD --y-field FIELD` for JSON arrays of objects, arrays of pairs, or mappings.
- `--stdin csv|json|points` to read data from stdin.

Useful options:

- `--height N` controls chart height.
- `--x-step N` controls horizontal spacing between points.
- `--provisional-x X` may be repeated to mark incomplete points with `○`.
- `--value-table` prints the plotted values below the chart.
- `--invert-y-note` only changes the note; it does not invert the axis.

## Plotting Guidelines

The rest: https://github.com/sapientinc/PRAXIST/blob/HEAD/skills/terminal-line-plot/SKILL.md
