@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, …
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.
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-labeland--y-axis-labelto add axis titles. - Use
--x-labelsfor explicit tick labels. - Use
--series-labelsto replace generic labels likeS1andC1. - Use
--data-labelsto print raw values on or near the plotted data where the renderer supports it. - Use
--first-column-xwhen the first numeric column is a domain likeday,month, oryear.
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
asciisparkbarscolumnsheatmapunicodebraillesvg
Example data files
examples/assets/core-single-series.txtexamples/assets/core-multi-series.txtexamples/assets/image-data.txtexamples/assets/image-single-series.txtexamples/assets/image-columns-variant.txtexamples/assets/weekly-signups.txtexamples/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.txtexamples/assets/core-multi-series.txtexamples/assets/image-data.txtexamples/assets/image-single-series.txtexamples/assets/image-columns-variant.txtexamples/assets/weekly-signups.txtexamples/assets/weekly-metrics.txtexamples/assets/output/
Core commands
pnpm chartli examples/assets/core-single-series.txt -t ascii -w 24 -h 8pnpm chartli examples/assets/core-multi-series.txt -t sparkpnpm chartli examples/assets/core-multi-series.txt -t bars -w 28pnpm chartli examples/assets/core-multi-series.txt -t columns -h 8pnpm chartli examples/assets/core-multi-series.txt -t heatmappnpm chartli examples/assets/core-multi-series.txt -t unicodepnpm chartli examples/assets/core-single-series.txt -t braille -w 16 -h 6pnpm 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 8pnpm chartli examples/assets/image-data.txt -t sparkpnpm chartli examples/assets/image-data.txt -t bars -w 28pnpm chartli examples/assets/image-data.txt -t columns -h 8pnpm chartli examples/assets/image-columns-variant.txt -t columns -h 8pnpm chartli examples/assets/image-data.txt -t heatmappnpm chartli examples/assets/image-data.txt -t unicodepnpm chartli examples/assets/image-data.txt -t braille -w 16 -h 6pnpm 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-labelspnpm chartli examples/assets/weekly-metrics.txt -t columns -h 8 --first-column-x --x-axis-label Metrics --y-axis-label Count --data-labelspnpm 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-sinkpnpm run example:image-set:kitchen-sinkpnpm run example:labeled:kitchen-sinkpnpm 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
@BTCqzy1: Share a super practical open-source project: Next AI Draw io (GitHub 28k+) Generate complex architecture diagrams with just one sentence! No more manual dragging boxes! Chat with AI using natural language to instantly generate professional draw io diagrams: · System architecture diagrams, RAG flows, ...
An AI-based open-source diagram generation tool that creates draw.io diagrams via natural language, supports multiple models, with 28k GitHub stars.
@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/…
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...
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…
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, ...
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.