data-vizCreate terminal charts and plots from CSV or JSON data using YouPlot and termgraph without leaving the command line.
Install via ClawdBot CLI:
clawdbot install ianalloway/data-vizCreate terminal-based charts and visualizations from CSV, JSON, or piped data.
YouPlot (uplot) creates Unicode charts in the terminal.
echo -e "Apple,30\nBanana,45\nCherry,20\nDate,35" | uplot bar -d, -t "Fruit Sales"
seq 1 20 | awk '{print $1, sin($1/3)*10+10}' | uplot line -t "Sine Wave"
awk 'BEGIN{for(i=0;i<1000;i++)print rand()}' | uplot hist -t "Random Distribution" -n 20
awk 'BEGIN{for(i=0;i<100;i++)print rand()*100, rand()*100}' | uplot scatter -t "Random Points"
# 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"
# Extract data from JSON and plot
curl -s "https://api.example.com/data" | jq -r '.items[] | "\(.name),\(.value)"' | uplot bar -d,
Simple horizontal bar charts:
echo -e "2020 50\n2021 75\n2022 90\n2023 120" | termgraph
With colors:
echo -e "Sales 150\nCosts 80\nProfit 70" | termgraph --color green
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"
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 ' ' '\n' | sort -n | head -1); max=$(echo $data | tr ' ' '\n' | sort -n | tail -1); for n in $data; do printf "\u258$((7-7*($n-$min)/($max-$min)))"; done; echo
Format data as tables:
# Using column
echo -e "Name,Score,Grade\nAlice,95,A\nBob,82,B\nCarol,78,C" | column -t -s,
# Using csvlook (csvkit)
cat data.csv | csvlook
# 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"
# 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 %"
# Measure and plot response times
for i in {1..10}; do
curl -s -o /dev/null -w "%{time_total}\n" https://example.com
done | uplot line -t "Response Time (s)"
-d, for comma-delimited data, -d'\t' for tabs-H when your data has headershead or tail to limit data pointsjq for JSON data extractionwatch for live updating charts: watch -n1 'command | uplot bar'Generated Mar 1, 2026
DevOps teams can create live terminal dashboards to monitor server metrics like CPU usage, memory consumption, and network traffic. Using watch commands with YouPlot, they can visualize system performance trends without leaving their development environment, enabling quick identification of anomalies during deployments or troubleshooting sessions.
Sales managers can generate quick bar charts from CSV export files to visualize monthly sales figures, regional performance comparisons, or product category breakdowns. The terminal-based approach allows for rapid analysis during meetings or while working with remote teams through SSH sessions, eliminating the need for spreadsheet software.
API developers can measure and visualize response times, error rates, and throughput metrics from their services. By combining curl commands with YouPlot's line charts, they can identify performance degradation patterns, test load scenarios, and present findings to stakeholders directly in terminal outputs during code reviews.
Financial analysts can fetch stock price data from public APIs and create time-series charts to track market trends. Using jq for JSON parsing and YouPlot for visualization, they can quickly generate technical analysis charts for multiple securities without switching between browser tabs or specialized financial software.
Instructors teaching data science or programming can create live demonstrations of statistical concepts like normal distributions, sine waves, or random sampling. Students can follow along in their own terminals, learning both data manipulation commands and visualization principles simultaneously through practical, reproducible examples.
Package the visualization capabilities as a lightweight add-on for existing enterprise monitoring platforms. Companies could offer premium terminal dashboard features that integrate with their larger SaaS monitoring solutions, providing CLI access for power users who prefer working in terminal environments over web interfaces.
Include the visualization tools as part of a comprehensive developer productivity suite. Offer bundled packages that combine data visualization with other terminal utilities, targeting engineering teams who need streamlined workflows for data analysis, debugging, and system monitoring directly from their development environments.
Create interactive learning platforms that teach data visualization concepts using these terminal tools. Offer courses, certifications, and workshops focused on command-line data analysis, with the visualization package serving as the core teaching tool for practical exercises and real-world data manipulation scenarios.
💬 Integration Tip
Combine with existing data pipelines by piping CSV/JSON outputs directly into visualization commands. Use jq for JSON preprocessing and standard Unix tools like awk for data transformation before visualization.
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.
Command-line tool to manage Google Workspace services including Gmail, Calendar, Drive, Sheets, Docs, Slides, Contacts, Tasks, People, Groups, and Keep.
Runs shell commands inside a dedicated tmux session named claw, captures, and returns the output, with safety checks for destructive commands.
A modern text-based browser. Renders web pages in the terminal using headless Firefox.
Write robust, portable shell scripts. Use when parsing arguments, handling errors properly, writing POSIX-compatible scripts, managing temp files, running commands in parallel, managing background processes, or adding --help to scripts.
NotebookLM CLI wrapper via `node {baseDir}/scripts/notebooklm.mjs`. Use for auth, notebooks, chat, sources, notes, sharing, research, and artifact generation/download.