@ai_suxiaole: Numbers are never in short supply in the terminal. What's truly missing is a way to see trends at a glance. There's a small tool called chartli on GitHub that can directly render data from command-line output into charts. Whether it's server monitoring, log analysis, or script statistics, just one command can generate ASCII line charts, bar charts, heat maps, …

X AI KOLs Timeline Tools

Summary

Introduces a command-line tool called chartli that can directly render numeric data from command-line output into ASCII charts (line charts, bar charts, heat maps, etc.), supports pipeline input, file reading, and multiple chart types, suitable for server monitoring, log analysis, etc.

Numbers are never in short supply in the terminal. What's truly missing is a way to see trends at a glance. There's a small tool called chartli on GitHub that can directly render data from command-line output into charts. Whether it's server monitoring, log analysis, or script statistics, just one command can generate ASCII line charts, bar charts, heat maps, Braille dot plots, and even SVG vector graphics. It supports reading from files and pipeline input, and can display multiple series of data, so you don't have to switch back and forth to Excel when analyzing data. GitHub: https://github.com/ahmadawais/chartli…
Original Article
View Cached Full Text

Cached at: 06/18/26, 12:05 AM

In the terminal, numbers are abundant, but what’s truly missing is the ability to grasp trends at a glance. There’s a tool called chartli on GitHub that can directly render data from command-line output into charts. Whether it’s server monitoring, log analysis, or script statistics, just one command generates ASCII line charts, bar charts, heatmaps, Braille dot plots, and even SVG vector graphics. It supports reading from files, piping input, and can display multiple series of data. No more switching back and forth to Excel for data analysis.
GitHub: https://github.com/ahmadawais/chartli…


ahmadawais/chartli

Source: https://github.com/ahmadawais/chartli

npx chartli # chartli CLI for rendering charts in terminals from numeric text data.

chartli turns plain numbers into terminal charts. ascii, spark, bars, columns, heatmap, unicode, braille, svg.

Install

Run instantly:

npx chartli --help

Or install globally:

npm i -g chartli

Agent skill install

Install the repository skill for agents:

npx skills add ahmadawais/chartli

Quick start:

npx chartli
npx chartli --help

Usage

npx chartli [file] [options]
Usage: chartli [options] [file]

Render terminal charts from numeric data

Arguments:
  file                    Input file (reads from stdin if not provided)

Options:
  -v, --version           Output the version number
  -t, --type              Chart type: svg, ascii, unicode, braille, spark, bars, columns, heatmap (default: "ascii")
  -w, --width             Chart width
  -h, --height            Chart height
  -m, --mode              SVG mode: circles or lines (default: "circles")
  --x-axis-label          Title to render for the x-axis
  --y-axis-label          Title to render for the y-axis
  --x-labels              Comma-separated labels for x-axis ticks or row labels
  --series-labels         Comma-separated labels for plotted series or categories
  --data-labels           Show raw values near plotted data when supported
  --first-column-x        Treat the first numeric column as x labels instead of a plotted series
  --help                  Display help for command

Labels and metadata

  • Use --x-axis-label and --y-axis-label to add axis titles.
  • Use --x-labels for explicit tick labels.
  • Use --series-labels to replace generic labels like S1 and C1.
  • Use --data-labels to print raw values on or near the plotted data where the renderer supports it.
  • Use --first-column-x when the first numeric column is a domain like day, month, or year.

With --first-column-x, chartli will:

  • use the first numeric column as x-axis labels
  • use the first header cell as the x-axis title when a header row exists
  • use the remaining header cells as series labels
  • use the second header cell as the y-axis title for common two-column data

Example:

pnpm chartli examples/assets/core-single-series.txt -t ascii -w 24 -h 8 --first-column-x --data-labels
pnpm chartli examples/assets/core-multi-series.txt -t columns -h 8 --first-column-x --series-labels sales,costs,profit --x-axis-label Metrics --y-axis-label Value --data-labels

Labeled chart examples

ASCII line with inferred axis labels and data labels

pnpm chartli examples/assets/weekly-signups.txt -t ascii -w 28 -h 8 --first-column-x --data-labels
signups
 91 │                                            ● 91
    │
 87 │
    │                                     ● 87
 73 │                                ● 73
    │
 68 │                          ● 68                66.5
 58 │                    ● 58
    │
 49 │              ● 49
 42 │        ● 42
    │  ● 42
    └────────────────────────────────────────────
      1    2    3    4    5    6    7
                     day

Columns with explicit axis titles and inferred series names

pnpm chartli examples/assets/weekly-metrics.txt -t columns -h 8 --first-column-x --x-axis-label Metrics --y-axis-label Count --data-labels
Count
 176
  29   10
  █    █    █
  █    █    ▓
  ▒    █    ▓
  ▒
  ────────────────────
 visits trials  paid
      Metrics

SVG with axes, x labels, and point labels

pnpm chartli examples/assets/weekly-signups.txt -t svg -m lines -w 320 -h 120 --first-column-x --data-labels | sed -n '/^<svg/,$ p' > examples/assets/output/weekly-signups-chart.svg

This writes examples/assets/output/weekly-signups-chart.svg.

Types

  • ascii
  • spark
  • bars
  • columns
  • heatmap
  • unicode
  • braille
  • svg

Example data files

  • examples/assets/core-single-series.txt
  • examples/assets/core-multi-series.txt
  • examples/assets/image-data.txt
  • examples/assets/image-single-series.txt
  • examples/assets/image-columns-variant.txt
  • examples/assets/weekly-signups.txt
  • examples/assets/weekly-metrics.txt

Image chart set (text diagrams)

ASCII Line

pnpm chartli examples/assets/image-data.txt -t ascii -w 24 -h 8
day=● sales=○ costs=◆ profit=◇
1.00 │         ○
     │
     │              ◇   ◇
     │      ◆        ●
0.50 │     ●        ◆
     │    ◇    ◆     ●
     │   ○          ◆
0.00 │  ◇    ◆     ◇  ◇
     └────────────────────────

Sparklines

pnpm chartli examples/assets/image-data.txt -t spark
day   ▁▂▃▄▅▆
sales ▁▄▂▇▅█
costs ▁▂▄▃▆▅
profit ▁▄▂▇▂▇

Horizontal Bars

pnpm chartli examples/assets/image-data.txt -t bars -w 28
day   |███████████████████           | 0.67
sales |▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓| 1.00
costs |▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒              | 0.53
profit |░░░░░░░░░░░░░░░░░░░░░░░      | 0.83

Columns

pnpm chartli examples/assets/image-data.txt -t columns -h 8
         ▓
         ▓   ░
         ▓   ░   █
         ▓   ░   █
   ▓     ▓   ▒   ░   █
   ▓     ▓   ▒   ░   █
   ▓     ▓   ▒   ░   █
   ▓   ▒ ▓   ▒ ▓ ░   █
   ───────────────────────────
   day sales costs profit

Columns (Variant)

pnpm chartli examples/assets/image-columns-variant.txt -t columns -h 8
         ▓   ░
         ▓   ░   █
   ▓     ▓   ░   █
   ▓     ▓   ▒   ░   █
   ▓     ▓   ▒   ░   █
   ▓     ▓   ▒ ▓ ░   █
   ▓   ▒ ▓   ▒ ▓ ░   █
   ▓   ▒ ▓   ▒ ▓ ░ ▓ █
   ───────────────────────────
   day sales costs profit

Heatmap

pnpm chartli examples/assets/image-data.txt -t heatmap
      day sales costs profit
R01   ░   ▒    ░    ▒
R02   ░   ░    ▒    ░
R03   ▒   ▓    ░    ▓
R04   ▒   ▒    ▓    ░
R05   ▓   █    ▒    ▓

Unicode Bars

pnpm chartli examples/assets/image-data.txt -t unicode
day    sales  costs  profit
█      ▃      █      ▅
█      ▅      ▃      █
█      ▃      █      █
█      ▂█     █▆█    █▂
█      █      ▂██    ▂
███    ▂      ██     ▃
█      █      ▁███   █
███    █▁██   █      █
█▁████ █▅███  ▁████  █▁█▁█
█████  █████  █████  █████

Braille

pnpm chartli examples/assets/image-data.txt -t braille -w 16 -h 6
profit
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠈
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⡀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠁⠀⠀⠀

SVG Chart

pnpm chartli examples/assets/image-data.txt -t svg -m lines -w 320 -h 120 | sed -n '/^<svg/,$ p' > examples/assets/output/image-chart.svg
<svg ...>

Examples

All examples are data-file driven from examples/assets/.

Data files

  • examples/assets/core-single-series.txt
  • examples/assets/core-multi-series.txt
  • examples/assets/image-data.txt
  • examples/assets/image-single-series.txt
  • examples/assets/image-columns-variant.txt
  • examples/assets/weekly-signups.txt
  • examples/assets/weekly-metrics.txt
  • examples/assets/output/

Core commands

  • pnpm chartli examples/assets/core-single-series.txt -t ascii -w 24 -h 8
  • pnpm chartli examples/assets/core-multi-series.txt -t spark
  • pnpm chartli examples/assets/core-multi-series.txt -t bars -w 28
  • pnpm chartli examples/assets/core-multi-series.txt -t columns -h 8
  • pnpm chartli examples/assets/core-multi-series.txt -t heatmap
  • pnpm chartli examples/assets/core-multi-series.txt -t unicode
  • pnpm chartli examples/assets/core-single-series.txt -t braille -w 16 -h 6
  • pnpm chartli examples/assets/core-multi-series.txt -t svg -m lines -w 320 -h 120 | sed -n '/^<svg/,$ p' > examples/assets/output/core-chart.svg

Image commands

  • pnpm chartli examples/assets/image-data.txt -t ascii -w 24 -h 8
  • pnpm chartli examples/assets/image-data.txt -t spark
  • pnpm chartli examples/assets/image-data.txt -t bars -w 28
  • pnpm chartli examples/assets/image-data.txt -t columns -h 8
  • pnpm chartli examples/assets/image-columns-variant.txt -t columns -h 8
  • pnpm chartli examples/assets/image-data.txt -t heatmap
  • pnpm chartli examples/assets/image-data.txt -t unicode
  • pnpm chartli examples/assets/image-data.txt -t braille -w 16 -h 6
  • pnpm chartli examples/assets/image-data.txt -t svg -m lines -w 320 -h 120 | sed -n '/^<svg/,$ p' > examples/assets/output/image-chart.svg

Labeled commands

  • pnpm chartli examples/assets/weekly-signups.txt -t ascii -w 28 -h 8 --first-column-x --data-labels
  • pnpm chartli examples/assets/weekly-metrics.txt -t columns -h 8 --first-column-x --x-axis-label Metrics --y-axis-label Count --data-labels
  • pnpm chartli examples/assets/weekly-signups.txt -t svg -m lines -w 320 -h 120 --first-column-x --data-labels | sed -n '/^<svg/,$ p' > examples/assets/output/weekly-signups-chart.svg

Run grouped examples

  • pnpm run example:kitchen-sink
  • pnpm run example:image-set:kitchen-sink
  • pnpm run example:labeled:kitchen-sink
  • pnpm run example:all-kitchen-sink

Run all examples

Image-set chart run:

pnpm run example:image-set:kitchen-sink

Core + image run:

pnpm run example:all-kitchen-sink

License

Apache-2.0 by Ahmad Awais (https://x.com/MrAhmadAwais) built with Command Code (https://commandcode.ai).

Similar Articles

@QingQ77: A command-line CSV processing tool written in Rust ("CSV Magician"), capable of extremely fast, low-memory processing of CSV files of several GB, with built-in expression language, terminal visualization, and social science-oriented extensions such as dictionary statistics, graph theory, and even scraping. https://github.com/medialab/…

X AI KOLs Timeline

A command-line CSV processing tool 'xan' written in Rust, capable of fast, low-memory processing of large CSV files, with built-in expression language, terminal visualization, and social science analysis extensions.

@AYi_AInotes: A Must-Have Tool for Computer Vision Developers, Open-Source with 40k Stars on GitHub! No need to write hundreds of lines of bounding box and tracking code. Get all visualizations with a single command. Supervision, the true Swiss Army knife of CV. How powerful is it? Automatic bounding boxes with labels, supports numbering and custom styles, permanent object tracking for videos, IDs don't jump, trajectories auto-generated...

X AI KOLs Timeline

Supervision is an open-source computer vision visualization tool that enables bounding boxes, tracking, dataset format conversion, heatmaps, etc. with a single command. Used by 6500+ projects, with 40k stars on GitHub.

@GitHub_Daily: Need to explain project system architecture to colleagues. Just talking without diagrams is limited, and drawing manually is time-consuming and often not well-made. archify, an Agent Skill that can be embedded into Claude Code, Codex CLI, and opencode, turns plain language descriptions directly into an architecture diagram…

X AI KOLs Timeline

archify is an Agent Skill that can be embedded into Claude Code, Codex CLI, and opencode, directly generating system architecture diagrams, workflow diagrams, sequence diagrams, data flow diagrams, and lifecycle state diagrams from plain language descriptions. It supports dark/light theme toggling and export in multiple formats.

@CycleDecoded: Programmers and terminal freebie hunters, look here — someone actually built this. In the past, writing code meant opening a bunch of windows, switching back and forth between the black Terminal, VSCode, browser, and ChatGPT until your hands were worn out. The open-source programmer project Wave Terminal (waveterm) directly combines the command line, ...

X AI KOLs Timeline

Introducing the open-source AI terminal Wave Terminal, which integrates the command line, editor, browser, and AI into one terminal, with support for inline previews, persistent SSH sessions, and multi-model access. It has received 22k+ Stars on GitHub.