I spend a lot of time in the terminal. When I need to check a CSV file, explore a JSON API response, or get a quick sense of a dataset, reaching for Python or Jupyter feels heavy.
That's why I built evolver-tools — a collection of 260+ CLI tools that run on pure Python stdlib. No pandas, no numpy, no jq, no external dependencies. Just pip install evolver-tools and you're ready.
Here are five real-world data tasks you can do instantly from the command line.
1. Get Statistics on Any CSV File
You have a CSV. You want to know: how many rows? What are the min/max/mean values? Are there missing values? Normally you'd open it in Excel or write a 10-line Python script.
With evolver-tools, one command:
$ evtool csv-stats sales.csv
Column Type Count Unique Missing Mean Min Max
──────────────────────────────────────────────────────────────────────────
date str 1,000 312 0 — — —
product str 1,000 47 0 — — —
quantity int 998 12 2 3.42 1 99
unit_price float 1,000 89 0 29.99 4.99 499.99
total float 998 — 2 102.41 4.99 49,499.01
region str 1,000 4 0 — — —
sales_rep str 998 23 2 — — —
In one glance you know: 1,000 rows, 2 missing values in quantity, prices range from $4.99 to $499.99, max order is $49,499. That's actionable information in seconds.
--histogram to see distribution of numeric columns. Add --output json to pipe results into another tool.
2. Visualize Data as ASCII Charts
You need a quick bar chart to show your team. Opening Excel or matplotlib feels like overkill for a one-off visualization.
$ evtool csv-chart sales.csv --column total --group product --top 10
Top 10 Products by Total Sales
────────────────────────────────────────────────────────────────────
Laptop Pro ████████████████████████████████ $494,990
Wireless Mouse ██████████████████████ $324,200
USB-C Hub ████████████████ $248,800
Mechanical KB █████████████ $189,600
Monitor 27" ███████████ $167,300
Webcam HD ████████ $124,500
Desk Lamp ██████ $94,200
Headphones █████ $78,900
Standing Desk ████ $62,400
Cable Kit ███ $45,100
Bar charts, line charts, pie charts — all rendered in pure Unicode, no GUI needed. Perfect for embedding in terminal reports, README files, or quick Slack screenshots.
$ evtool csv-chart sales.csv --column total --type line --date column date
$ evtool csv-chart sales.csv --column region --type pie
3. Filter, Sort, and Slice Data
Your CSV has 50,000 rows. You only need the top 10 customers by revenue from the APAC region. Instead of loading it into pandas:
$ evtool csv-filter sales.csv --where "region == 'APAC'" \
| evtool csv-sort --key total --desc \
| evtool csv-select --columns name,total \
| head -11
name,total
Acme Corp,$45,200
Pacific Tech,$38,900
Zenith Ltd,$32,100
...
The Unix pipe philosophy works beautifully here. Each tool does one thing: filter, sort, select columns. Chain them together for complex pipelines.
$ evtool csv-join orders.csv customers.csv --on customer_id > enriched.csv
$ evtool csv-dedup leads.csv --key email > clean_leads.csv
$ evtool csv-sample large.csv --rate 0.1 > sample.csv
--delim '|'), and headers automatically. They're streaming — files of any size work.
4. Query and Transform JSON Data
You fetched an API response and need to extract specific fields. Maybe you need to convert it to CSV for further analysis.
$ curl -s https://api.example.com/users | evtool json-pretty
[
{
"id": 1,
"name": "Alice Chen",
"email": "alice@example.com",
"role": "admin",
"stats": {
"logins": 142,
"last_active": "2026-05-30"
}
},
...
]
Need to flatten nested JSON into a table?
$ curl -s https://api.example.com/users \
| evtool json-select '["id","name","email","stats.logins","stats.last_active"]'
id, name, email, logins, last_active
1, Alice Chen, alice@example.com, 142, 2026-05-30
2, Bob Smith, bob@example.com, 87, 2026-05-28
Convert to CSV, validate, merge, or diff JSON files:
$ evtool json2csv data.json > data.csv
$ evtool json-validate config.json # Silent = valid
$ evtool json-merge base.json patch.json # Deep merge
$ evtool json-diff old.json new.json # Show differences
5. Text Processing Pipelines
Sometimes your data isn't in a neat format. Log files, unstructured exports, messy CSVs. The text processing tools handle the messy reality of data work.
$ evtool text-stats server.log
Lines: 14,832
Words: 128,456
Chars: 982,341
Avg line: 66 chars
Longest: 412 chars (line 4,201)
Find patterns across files:
$ evtool grep "ERROR|CRITICAL" server.log \
| evtool dedup-lines \
| evtool sort \
| evtool csv-chart --type bar
Quick conversions and transformations:
$ evtool case-convert --upper names.txt > names_upper.txt
$ evtool wrap --width 72 long_text.txt # Word-wrap to 72 chars
$ evtool reverse file.txt # Reverse lines
$ evtool shuffle playlist.txt # Randomize order
$ evtool diff file1.txt file2.txt # Line-by-line diff
Why Terminal Data Analysis Works
There's a reason the Unix philosophy has survived 50+ years. When tools are small, focused, and composable, you solve problems faster:
- No context switching — stay in the terminal where your code, git, and servers already are
- Muscle memory — the same pipe syntax works for everything
- Reproducible — a shell one-liner is a perfect audit trail. No "which cell did I run?"
- Scriptable — wrap it in a bash function, add it to your dotfiles, share it with your team
- Lightweight — no Jupyter server, no IDE, no Electron app. Just a terminal and Python
evolver-tools makes this approach practical by providing well-designed tools that handle edge cases — quoted CSV fields, nested JSON, encoding detection — so you don't have to think about them.
Putting It All Together: Real Pipeline
Here's what a complete analysis looks like — from raw data to insights in under 10 seconds:
$ # Ingest, profile, filter, visualize
$ evtool csv-stats massive_export.csv \
&& evtool csv-filter massive_export.csv --where "status == 'active'" > active.csv \
&& evtool csv-chart active.csv --column revenue --group region --top 5 \
&& evtool csv-to-json active.csv --pretty > report.json
Region Revenue Bar
───────────────────────────────
North $1,234,567 ████████████
Europe $987,654 ██████████
APAC $654,321 ██████
LATAM $234,567 ██
Africa $123,456 █
No Python script to write. No notebook to open. No libraries to install. One pip install and you're analyzing data at the speed of thought.
Try It Now — No Installation Required
Run evolver-tools directly in your browser or install it in 3 seconds:
pip install evolver-tools