Skip to content

ahmadawais/chartli

Repository files navigation

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:

pnpm add -g 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 <type>      Chart type: svg, ascii, unicode, braille, spark, bars,
                         columns, heatmap (default: "ascii")
  -w, --width <number>   Chart width
  -h, --height <number>  Chart height
  -m, --mode <mode>      SVG mode: circles or lines (default: "circles")
  --help                 Display help for command

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-columns-variant.txt

Image chart set (text diagrams)

ASCII Line

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

Sparklines

pnpm chartli examples/assets/image-data.txt -t spark
S1 ▁▂▃▄▅▆
S2 ▁▄▂▇▅█
S3 ▁▂▄▃▆▅
S4 ▁▄▂▇▂▇

Horizontal Bars

pnpm chartli examples/assets/image-data.txt -t bars -w 28
S1 |███████████████████         | 0.67
S2 |▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓| 1.00
S3 |▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒             | 0.53
S4 |░░░░░░░░░░░░░░░░░░░░░░░     | 0.83

Columns

pnpm chartli examples/assets/image-data.txt -t columns -h 8
  ▓
  ▓   ░
  ▓   ░
█ ▓   ░
█ ▓ ▒ ░
█ ▓ ▒ ░
█ ▓ ▒ ░
█ ▓ ▒ ░
───────
1 2 3 4

Columns (Variant)

pnpm chartli examples/assets/image-columns-variant.txt -t columns -h 8
  ▓   ░
█ ▓   ░
█ ▓   ░
█ ▓ ▒ ░
█ ▓ ▒ ░
█ ▓ ▒ ░
───────
1 2 3 4

Heatmap

pnpm chartli examples/assets/image-data.txt -t heatmap
    C1 C2 C3 C4
R01
R02 ░ ▒ ░ ▒
R03 ░ ░ ▒ ░
R04 ▒ ▓ ░ ▓
R05 ▒ ▒ ▓ ░
R06 ▓ █ ▒ ▓

Unicode Bars

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

Braille

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

SVG Chart

pnpm chartli examples/assets/image-data.txt -t svg -m lines -w 320 -h 120 | sed -n '/^<?xml/,$p' > examples/assets/output/image-chart.svg
<?xml version='1.0'?>
<svg xmlns='http://www.w3.org/2000/svg' width='650' height='120' version='1.1'>
  <polyline ... />
  <polyline ... />
  <polyline ... />
  <polyline ... />
</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-columns-variant.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 '/^<?xml/,$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 '/^<?xml/,$p' > examples/assets/output/image-chart.svg

Run grouped examples

  • pnpm run example:kitchen-sink
  • pnpm run example:image-set: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

Agent skill install

Install the repository skill for agents:

npx skills add ahmadawais/chartli

License

Apache-2.0 by Ahmad Awais built with Command Code.

About

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

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors