@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.
@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.
@XAMTO_AI: Can generate architecture diagrams just by speaking? This tool is actually pretty impressive. Speak plain language to Claude, and it directly outputs architecture diagrams, flowcharts, sequence diagrams, data flow diagrams... It also supports one-click switching between dark and light themes, export in multiple formats, all in a single HTML file. Programmers who can't draw are saved, and programmers who don't want to draw are saved too...
Archify is a Claude Skill that allows users to generate architecture diagrams, flowcharts, sequence diagrams, etc. using natural language descriptions, and supports dark/light theme switching and multi-format export.
@0xQiYan: Still drawing architecture diagrams manually? Dragging and tweaking for half a day? Bookmark this! Today I have to recommend this skill—I recently installed `drawio-skill`, and with just one sentence it can generate professional diagrams, no more drawing by hand. The logic is very simple: just speak naturally (e.g., "draw a trading system architecture diagram"), and it generates the diagram directly...
Introducing the drawio-skill tool, which generates professional diagrams such as architecture diagrams, flowcharts, ER diagrams, etc., based on natural language descriptions. It supports multi-round iteration and export to various formats, significantly improving diagramming efficiency.
@VincentLogic: Found a pretty cool CLI tool! OfficeCLI lets you work with Word, Excel, and PPT files right in the terminal — no Office installation needed. Create, read, and modify files with ease, making it super handy for automation scripts. The best part? Once installed, Claude Code, Cursor, and other AI coding assistants can …
OfficeCLI is an open-source command-line tool that lets you create, read, and modify Word, Excel, and PPT files in the terminal without installing Office. It integrates with AI coding assistants like Claude Code and Cursor, making it ideal for automation scripts and batch file processing.