Data Viz
/install data-viz
Data Visualization
Create terminal-based charts and visualizations from CSV, JSON, or piped data.
Quick Visualizations with YouPlot
YouPlot (uplot) creates Unicode charts in the terminal.
Bar Chart
echo -e "Apple,30\
Banana,45\
Cherry,20\
Date,35" | uplot bar -d, -t "Fruit Sales"
Line Chart
seq 1 20 | awk '{print $1, sin($1/3)*10+10}' | uplot line -t "Sine Wave"
Histogram
awk 'BEGIN{for(i=0;i\x3C1000;i++)print rand()}' | uplot hist -t "Random Distribution" -n 20
Scatter Plot
awk 'BEGIN{for(i=0;i\x3C100;i++)print rand()*100, rand()*100}' | uplot scatter -t "Random Points"
From CSV Files
# Bar chart from CSV
cat sales.csv | uplot bar -d, -H -t "Monthly Sales"
# Line chart with headers
cat timeseries.csv | uplot line -d, -H -t "Stock Price"
From JSON (with jq)
# Extract data from JSON and plot
curl -s "https://api.example.com/data" | jq -r '.items[] | "\(.name),\(.value)"' | uplot bar -d,
Termgraph (Python Alternative)
Simple horizontal bar charts:
echo -e "2020 50\
2021 75\
2022 90\
2023 120" | termgraph
With colors:
echo -e "Sales 150\
Costs 80\
Profit 70" | termgraph --color green
Gnuplot (Advanced)
For publication-quality charts:
# Quick line plot
gnuplot -e "set terminal dumb; plot sin(x)"
# From data file
gnuplot -e "set terminal dumb; plot 'data.txt' with lines"
Sparklines
Inline mini-charts:
# Using spark (if installed)
echo "1 5 22 13 5" | spark
# Output: ▁▂█▅▂
# Pure bash sparkline
data="1 5 22 13 5"; min=$(echo $data | tr ' ' '\
' | sort -n | head -1); max=$(echo $data | tr ' ' '\
' | sort -n | tail -1); for n in $data; do printf "\u258$((7-7*($n-$min)/($max-$min)))"; done; echo
ASCII Tables
Format data as tables:
# Using column
echo -e "Name,Score,Grade\
Alice,95,A\
Bob,82,B\
Carol,78,C" | column -t -s,
# Using csvlook (csvkit)
cat data.csv | csvlook
Real-World Examples
Stock Price Chart
# Fetch and plot stock data (using Alpha Vantage free API)
curl -s "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=AAPL&apikey=demo" | \
jq -r '.["Time Series (Daily)"] | to_entries | .[:20] | reverse | .[] | "\(.key) \(.value["4. close"])"' | \
uplot line -t "AAPL Stock Price"
System Metrics
# CPU usage over time
for i in {1..20}; do
top -bn1 | grep "Cpu(s)" | awk '{print 100-$8}'
sleep 1
done | uplot line -t "CPU Usage %"
API Response Times
# Measure and plot response times
for i in {1..10}; do
curl -s -o /dev/null -w "%{time_total}\
" https://example.com
done | uplot line -t "Response Time (s)"
Tips
- Use
-d,for comma-delimited data,-d' 'for tabs - Use
-Hwhen your data has headers - Pipe through
headortailto limit data points - Combine with
jqfor JSON data extraction - Use
watchfor live updating charts:watch -n1 'command | uplot bar'
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install data-viz - After installation, invoke the skill by name or use
/data-viz - Provide required inputs per the skill's parameter spec and get structured output
What is Data Viz?
Create terminal charts and plots from CSV or JSON data using YouPlot and termgraph without leaving the command line. It is an AI Agent Skill for Claude Code / OpenClaw, with 1422 downloads so far.
How do I install Data Viz?
Run "/install data-viz" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Data Viz free?
Yes, Data Viz is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Data Viz support?
Data Viz is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Data Viz?
It is built and maintained by ianalloway (@ianalloway); the current version is v0.1.0.