Stop installing twenty packages for twenty jobs. One pip install gives you 261 zero-dependency tools — everything from CSV analysis to port scanning to ASCII art. Pick your role and jump in.
$ pip install evolver-tools
Collecting evolver-tools
Downloading evolver_tools-38.0.21-py3-none-any.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 15.2 MB/s eta 0:00:00
Installing collected packages: evolver-tools
Successfully installed evolver-tools-38.0.21
$ evtool list | wc -l
261
$
📋 Summarize any CSV in seconds
You got a 50MB CSV from a client. What's in it? Instead of opening Excel and waiting 3 minutes, use the terminal.
$ evtool csv-stats sales_2024.csv --all
File: sales_2024.csv
Rows: 94,283 | Columns: 12 | Size: 8.4 MB
Column Type Unique Missing Min Max
──────────────────────────────────────────────────────────────
date date 365 0 2024-01-01 2024-12-31
product string 1,247 0 - -
revenue float 18,392 34 0.99 49,999.00
region string 8 12 - -
...
Instantly know your data shape: outliers in revenue, 12 missing regions, 1,247 products. No pandas, no Jupyter, just a command.
evtool csv-stats →
🔍 Filter, sort, and query CSV data
Find all records where revenue > $10,000 in the APAC region, sorted by date.
$ evtool csv-filter sales_2024.csv --query 'revenue > 10000 and region == "APAC"'
$ evtool csv-sort filtered.csv --by date --desc
$ evtool csv-select filtered.csv --columns date,product,revenue
date,product,revenue
2024-12-30,"Enterprise License",49,999.00
2024-12-28,"Cloud Bundle",32,400.00
...
All pure Python stdlib. Works on anything from a 100-row test file to a million-row dataset. Pipes friendly.
evtool csv-filter →
📈 Chart data in the terminal
You need a quick bar chart of monthly revenue. No dashboard tool needed.
$ evtool csv-chart sales_2024.csv --x month --y revenue --type bar
Monthly Revenue 2024
Jan ████████████████████████████ $412,394
Feb █████████████████████████ $389,201
Mar ██████████████████████████████ $445,812
Apr ████████████████████████████ $428,093
May ███████████████████████████████ $467,214
...
$
$ echo '1,3,2,5,4,7,6,9,8' | evtool chart-cli
🔄 Convert between CSV, JSON, and SQL
Your API returns JSON, but your reporting tool needs CSV. One command.
$ evtool json-to-csv api_response.json > report.csv
$ evtool csv-to-json report.csv > back_to_api.json
$
$ evtool json-validate huge_file.json && evtool csv-validate data.csv
No more copy-pasting through google sheets. Data transformation in one step.
🧹 Clean messy text data
A log file with duplicate lines, mixed whitespace, and ANSI escape codes.
$ evtool dedup-lines messy.log > clean.log
$ evtool ansi-strip clean.log > readable.txt
$ evtool text-stats readable.txt
Lines: 1,204 | Words: 28,491 | Chars: 342,100
Avg line length: 284 chars | Longest line: 2,847 chars
$ evtool grep-pro 'error\|timeout' readable.txt --color
📦 Data analyst tool cheat sheet
🖥️ One-command system health check
Walk up to a server and need to know everything in 10 seconds.
$ evtool system-info && evtool disk-usage && evtool mem-info
Host: web-03 | Uptime: 47d 6h | Load: 0.8, 0.6, 0.4
CPU: Intel Xeon 8-core @ 2.8 GHz | Usage: 34%
RAM: 32 GB total, 18.7 GB used (58%)
Disk /: 47% used (234 GB / 500 GB)
Disk /data: 82% used (1.6 TB / 2.0 TB) ⚠️
No htop, no btm, no ncdu. Three commands, five seconds, full picture.
evtool system-info →
🌐 Network diagnostics in one command
A microservice is unreachable. Is it DNS? SSL? The port? A firewall? Find out fast.
$ evtool dns-lookup api.example.com
api.example.com → 203.0.113.42 (TTL: 300)
$ evtool port-scan api.example.com --ports 443,8443,3000
443: open (TLS handshake OK)
8443: open
3000: closed (connection refused)
$ evtool ssl-check api.example.com
Certificate: OK (expires 2025-12-15, 174 days)
Issuer: Let's Encrypt | Subject: *.example.com
TLS 1.3: ✅ | HSTS: ✅ | Chain: valid
$ evtool http-get https://api.example.com/health --timeout 5
200 OK | 342 bytes | 47ms
Replaces: nmap + openssl + curl + dig + nc. Zero dependencies, works on any server.
🔍 Find and kill a process on a port
Port 3000 is in use but you don't know what's running there. Classic devops moment.
$ evtool port-scan localhost --ports 3000
3000: open (127.0.0.1:3000 — PID: 18342)
$ evtool process-list | grep 18342
18342 node /app/server.js
$ evtool kill-port 3000
Killed process 18342 (node) on port 3000
$
$ evtool port-scan localhost --ports 3000 --kill
📊 Real-time system monitor
You want a live dashboard without installing a heavy monitoring stack.
$ evtool sysmon
┌──────────────────────────────────────────────┐
│ CPU ████████░░░░░░░░░░│ 42% ↑ 2.1 │
│ RAM ██████████████░░░░│ 68% 18.2/26.8 GB │
│ DSK ██████████░░░░░░░░│ 47% 234/500 GB │
│ NET ↑ 1.2 MB/s ↓ 4.7 MB/s │
│ PIDs: 283 │ Uptime: 47d 6h │
└──────────────────────────────────────────────┘
Press Ctrl+C to exit (refreshes every 2s)
🐳 Container and Docker helpers
Clean up stale Docker resources without remembering flags.
$ evtool docker-clean
Removed 12 stopped containers
Removed 8 dangling images (1.2 GB freed)
Removed 34 unused volumes
$ evtool cron-pretty /etc/crontab
Every day at 02:00 — /usr/bin/backup.sh
Every Monday at 09:00 — /usr/bin/clean-logs
Every 15 min — /usr/bin/healthcheck
📁 DevOps tool cheat sheet
🔐 Generate secure secrets instantly
Need a database password, API key, or session secret? Generate one with 256 bits of entropy.
$ evtool passgen 32
aK9$mP2#xR7&vB4@nQ6*wE1%tY3+uF8
$
$ evtool passgen 64 --symbols --entropy
Generated: 64 chars | Entropy: 384 bits
$
$ evtool hash-file release.tar.gz
SHA256: a8f3b2c1d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0
🏷️ Quick Git repo analysis
How healthy is your repository? Who commits the most? Which files change most often?
$ evtool git-stats --top 5
Commits: 847 | Authors: 12 | First commit: 2023-08-14
────────────────────────────────────────────────
alice █████████████████████ 342 commits (40%)
bob ████████████ 189 commits (22%)
charlie ████████ 134 commits (16%)
...
$ evtool git-branch-clean
Branches merged into main (safe to delete):
feature/payments (last commit: 2024-09-12)
fix/login-flow (last commit: 2024-10-01)
8 stale branches found, 2.3 MB of refs
🔧 Code quality and debugging
Find code smells, count lines of code, format JSON, or test an API endpoint — all from the terminal.
$ evtool code-count src/
Language Files Lines Code Comments Blanks
────────── ─────── ─────── ────── ──────── ──────
Python 42 12,847 9,234 2,104 1,509
TypeScript 18 4,291 3,512 240 539
YAML 7 384 384 0 0
$ evtool smellfinder src/ --threshold 50
⚠️ src/api/handler.py:142 — Function too long (84 lines, threshold 50)
⚠️ src/db/query.py:67 — Too many parameters (8, max 5)
⚠️ src/utils.py:23 — Missing docstring
$ evtool api-tester https://api.example.com/users --method POST --body '{"name":"test"}'
201 Created | 143ms | Response: {"id": 42, "name": "test"}
🔗 Developer tool cheat sheet
🔓 Recon a target in minutes
Pen testing engagement? Start with passive recon: DNS, SSL, open ports, WHOIS.
$ evtool dns-lookup example.com --all
A: 93.184.216.34
AAAA: 2606:2800:220:1:248:1893:25c8:1946
MX: alt1.aspmx.l.google.com (priority 5)
MX: aspmx.l.google.com (priority 1)
TXT: v=spf1 include:_spf.google.com ~all
$ evtool ssl-check example.com --details
Certificate issued by: DigiCert TLS RSA SHA256 2020 CA1
Valid: 2024-12-01 to 2025-12-01 (365 days)
SANs: example.com, *.example.com
Key: RSA 2048 | SIG: SHA256-RSA | Grade: A
$ evtool whois example.com --compact
Registrar: Internet Corporation for Assigned Names and Numbers
Created: 1992-12-06 | Expires: 2030-12-05
🛡️ Port scan without compiling nmap
Check which ports are open on a target. Pure Python, no root required for TCP connect scan.
$ evtool port-scan 10.0.0.24 --range 1-1000 --timeout 2
Scanning 10.0.0.24:1-1000 (1000 ports, timeout 2s)...
22: open (SSH)
80: open (HTTP)
443: open (HTTPS)
3306: open (MySQL) ⚠️
8080: open (HTTP-Alt)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5 open | 995 closed | 0 filtered
Duration: 4.2s
No nmap dependency. No root. Works on Windows, Linux, macOS. Perfect for quick security audits.
🔑 Hash, encrypt, and verify files
File integrity checks after download. Generate secure tokens. Base64/hex encoding.
$ evtool hash-file suspicious_binary.bin --all
MD5: d41d8cd98f00b204e9800998ecf8427e
SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
$ evtool b64 --encode secret.txt > secret.b64
$ evtool hex-dump binary.bin | head -5
📋 Security tool cheat sheet
🎨 ASCII art without figlet/boxes
Need a banner for your README, a cow in your terminal, or a matrix rain screensaver? No extra installs.
$ evtool banner 'SHIP IT'
███████╗██╗ ██╗██╗██████╗ ██╗████████╗
██╔════╝██║ ██║██║██╔══██╗██║╚══██╔══╝
███████╗███████║██║██████╔╝██║ ██║
╚════██║██╔══██║██║██╔═══╝ ██║ ██║
███████║██║ ██║██║██║ ██║ ██║
╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ╚═╝
$ evtool cowsay 'Hello, world!'
_________________
< Hello, world! >
-----------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
$ evtool matrix-rain
🎲 CLI games and utilities
Quick fun: countdown timer, dice roll, fortune cookie, pomodoro timer, or a random joke.
$ evtool fortune
"The best way to predict the future is to implement it."
$ evtool dice-roll 6
🎲 4
$ evtool pomodoro --work 25 --break 5
🍅 Work session started (25:00) — focus!
$ evtool weather-cli London
London, UK: 14°C ☁️ Overcast | Humidity: 72% | Wind: 12 km/h
$ evtool crypto-price bitcoin
Bitcoin (BTC): $72,431 ▲ +2.3% (24h)