datapilot-cli
Version:
Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform
416 lines (325 loc) • 15.3 kB
Markdown
# DataPilot 🚁📊
[](https://www.npmjs.com/package/datapilot-cli)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
[](https://www.typescriptlang.org/)
[](https://github.com/Mrassimo/datapilot/actions)
> **Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and advanced ML capabilities**
DataPilot is a sophisticated command-line tool that transforms data files into comprehensive statistical reports with advanced machine learning guidance. With universal format support (CSV, JSON, Excel, TSV, Parquet) and memory-efficient streaming processing, it handles datasets of any size while providing deep insights across six analytical dimensions.
## ✨ Key Features
- 📁 **Universal Format Support**: CSV, JSON, Excel (.xlsx/.xls), TSV, Parquet, JSONL with auto-detection
- 🔍 **6-Section Analysis Pipeline**: Overview → Quality → EDA → Visualization → Engineering → Modeling
- 🔗 **Smart Relationship Detection**: Multi-file join analysis with confidence scoring and SQL generation
- 🚀 **Streaming Processing**: Handle files up to 100GB with constant <512MB memory usage
- 📊 **Comprehensive Reports**: Human-readable insights in Markdown, JSON, or YAML formats
- ⚡ **High Performance**: Process 500K-2M rows/minute with automatic optimization
- 🛡️ **Production Ready**: Enterprise security, monitoring, error handling, and proxy support
- 🌍 **Cross-Platform**: Native binaries for Windows, macOS, and Linux
- ♿ **Accessibility First**: WCAG-compliant visualization recommendations
- 🤖 **LLM-Optimized**: Output designed for AI/ML interpretation and prompt engineering
- 🧠 **Advanced ML Guidance**: Intelligent algorithm selection, bias detection, and ethical AI recommendations
## 🚀 Installation
### Option 1: NPM Package (Recommended)
```bash
# Install globally
npm install -g datapilot-cli
# Verify installation (should show v1.3.3 or later)
datapilot --version
```
> ⚠️ **Important**: Install `datapilot-cli`, NOT `datapilot` (which is deprecated)
#### Windows Users - Important Notes 🪟
**If you get `'datapilot' is not recognized` error on Windows**, you have three options:
**🟢 Option A - Use npx (Recommended, no setup needed):**
```bash
npx datapilot-cli --version
npx datapilot-cli all data.csv
```
**🟡 Option B - Add to PATH (One-time setup):**
```bash
# 1. Find your npm global directory
npm config get prefix
# 2. Add the returned path to your Windows PATH environment variable
# Example: Add C:\Users\YourName\AppData\Roaming\npm to PATH
# 3. Restart PowerShell/Command Prompt
# 4. Test it works
datapilot --version
```
**🟠 Option C - Use full path:**
```bash
# Replace [npm-prefix] with the path from 'npm config get prefix'
[npm-prefix]\datapilot --version
```
**Step-by-step PATH setup for Windows:**
1. Run `npm config get prefix` in PowerShell
2. Copy the returned path (e.g., `C:\Users\YourName\AppData\Roaming\npm`)
3. Open System Properties → Advanced → Environment Variables
4. Edit the `PATH` variable and add the npm path
5. Restart PowerShell/Command Prompt
6. Run `datapilot --version` to verify
### Option 2: NPX (No Installation Required)
```bash
# Always gets latest version, no PATH configuration needed
npx datapilot-cli all data.csv
npx datapilot-cli --version
npx datapilot-cli --help
```
> 💡 **Windows users**: npx is often the easiest option as it bypasses PATH issues entirely.
### Option 3: From Source
```bash
git clone https://github.com/Mrassimo/datapilot.git
cd datapilot
npm install
npm run build
npm link
```
## 📋 Quick Start Guide
### Basic Analysis Commands
```bash
# Complete analysis (all 6 sections) - works with any supported format
datapilot all data.csv # CSV files
datapilot all data.json # JSON/JSONL files
datapilot all data.xlsx # Excel files
datapilot all data.tsv # Tab-separated files
# Individual sections (auto-detects format)
datapilot overview data.xlsx # Section 1: File overview & metadata
datapilot quality data.json # Section 2: Data quality assessment
datapilot eda data.tsv # Section 3: Exploratory data analysis
datapilot visualization data.csv # Section 4: Chart recommendations
datapilot engineering data.xlsx # Section 5: ML engineering insights
datapilot modeling data.json # Section 6: Predictive modeling guidance
# Quick file information (universal)
datapilot info data.xlsx # Basic file stats (any format)
datapilot validate data.json # Format validation
```
### Multi-File Join Analysis
```bash
# Analyze relationships between multiple files
datapilot join customers.csv orders.csv products.csv
datapilot engineering customers.csv orders.csv # Engineering + joins
datapilot discover /path/to/csv/directory # Auto-discover all relationships
# Interactive wizards
datapilot join-wizard customers.csv orders.csv # Step-by-step join wizard
datapilot optimize-joins *.csv # Performance optimization
```
### Advanced Options
```bash
# Format-specific options
datapilot all data.xlsx --sheet "Sales Data" # Excel: specific sheet
datapilot all data.json --flatten-objects # JSON: flatten nested objects
datapilot all data.txt --format tsv --delimiter "\\t" # Force format detection
datapilot all data.csv --delimiter ";" --quote "'" # CSV: custom delimiters
# Output control
datapilot all data.json --format json --output report.json
datapilot all data.xlsx --format yaml --output analysis.yaml
datapilot all data.tsv --quiet --output results/
# Performance tuning
datapilot all huge-file.xlsx --verbose --progress
datapilot all data.json --chunk-size 50000 --memory-limit 1gb
```
## 📁 Supported File Formats
| Format | Extensions | Features | Auto-Detection |
|--------|------------|----------|----------------|
| **CSV** | `.csv` | Auto-delimiter detection, custom quotes | ✅ Content analysis |
| **TSV** | `.tsv`, `.tab` | Tab-separated values, inconsistency detection | ✅ Tab structure validation |
| **JSON** | `.json`, `.jsonl`, `.ndjson` | Nested objects, arrays, JSON Lines | ✅ Structure + syntax validation |
| **Excel** | `.xlsx`, `.xls`, `.xlsm` | Multiple sheets, cell formatting | ✅ Binary signature detection |
| **Parquet** | `.parquet` | Columnar storage, schema detection | ✅ Metadata inspection |
### Format Detection Intelligence
DataPilot automatically detects file formats using a multi-layered approach:
- **File extension** analysis with confidence scoring
- **Content structure** validation (JSON syntax, tab consistency, etc.)
- **Binary signature** detection for Excel/Parquet files
- **Confidence thresholds** to prevent false positives
```bash
# Automatic detection (recommended) - works 99%+ of the time
datapilot all my-data.xlsx # Auto-detects Excel
datapilot all logs.jsonl # Auto-detects JSON Lines
datapilot all analytics.parquet # Auto-detects Parquet
# Manual override (when needed for edge cases)
datapilot all ambiguous-file.txt --format tsv # Force TSV parsing
datapilot all data.backup --format json # Force JSON parsing
```
## 📊 Analysis Sections Explained
| Section | Purpose | Key Outputs | Multi-File Support |
|---------|---------|-------------|-------------------|
| **1. Overview** 🗂️ | File metadata, structure analysis | File size, encoding, headers, data types | Single file |
| **2. Quality** 🧐 | Data quality assessment, completeness | Missing patterns, outliers, quality scores | Single file |
| **3. EDA** 📈 | Statistical analysis, distributions | Univariate/bivariate stats, hypothesis tests | Single file |
| **4. Visualization** 📊 | Chart recommendations, accessibility | Chart types, encodings, WCAG compliance | Single file |
| **5. Engineering** 🏗️ | Schema optimization, **relationship detection** | Index recommendations, **join analysis**, SQL generation | **Multi-file** ✅ |
| **6. Modeling** 🧠 | Algorithm selection, ethics, deployment | ML algorithms, bias detection, ethical AI | Single file |
### Multi-File Relationship Analysis (Section 5)
The engineering command now supports advanced multi-file analysis:
```bash
# Single file: traditional feature engineering
datapilot engineering data.csv
# Output: Schema optimization, feature selection, ML readiness
# Multi-file: relationship detection + engineering
datapilot engineering customers.csv orders.csv products.csv
# Output: Join relationships, SQL generation, foreign key detection, schema optimization across all files
# Large-scale discovery (up to 50 files)
datapilot discover /data/warehouse/
# Output: Complete relationship map, join recommendations, data lineage
```
**Key Features:**
- **Smart Join Detection**: Identifies relationships with confidence scoring
- **SQL Generation**: Produces optimized JOIN statements
- **Foreign Key Discovery**: Detects primary/foreign key relationships
- **Performance Analysis**: Join optimization recommendations
- **Batch Processing**: Handles large directories efficiently
## 🎯 Common Use Cases
### Business Intelligence
```bash
# Quarterly sales analysis
datapilot all Q4-sales.xlsx --sheet "Summary"
# Output: Revenue trends, seasonal patterns, forecasting recommendations
# Multi-table business analysis
datapilot engineering customers.csv orders.csv products.csv
# Output: Customer segmentation opportunities, product performance joins
```
### Data Science Workflows
```bash
# Dataset profiling for ML
datapilot all features.csv
# Output: Feature distributions, correlations, encoding recommendations
# Multi-dataset relationship mapping
datapilot discover /ml-datasets/
# Output: Join opportunities, feature engineering across datasets
```
### Data Quality Auditing
```bash
# Comprehensive quality assessment
datapilot quality customer-database.json
# Output: Completeness scores, outlier detection, data consistency issues
# Cross-table integrity checking
datapilot join customers.csv transactions.csv
# Output: Referential integrity, orphaned records, data quality across relationships
```
## 🔧 Configuration & Performance
### Configuration File (.datapilotrc)
```yaml
# Performance settings
performance:
chunkSize: 10000
memoryLimit: "512mb"
parallelProcessing: true
# Analysis preferences
analysis:
sections: [1, 2, 3, 4, 5, 6]
confidenceLevel: 0.95
joinConfidenceThreshold: 0.5
# Output formatting
output:
format: "markdown"
includeRawData: false
verboseLogging: false
```
### Performance Benchmarks
| File Size | Rows | Processing Time | Memory Usage | Join Analysis |
|-----------|------|----------------|--------------|---------------|
| 10 MB | 100K | 5 seconds | 45 MB | 2-3 files: +3s |
| 100 MB | 1M | 30 seconds | 120 MB | 3-5 files: +15s |
| 1 GB | 10M | 4 minutes | 280 MB | 5-10 files: +2m |
| 10 GB | 100M | 35 minutes | 450 MB | 10+ files: batched |
*Benchmarks on MacBook Pro M1, 16GB RAM*
## 🤖 LLM Integration Guide
DataPilot outputs are optimized for Large Language Model interpretation:
```bash
# Generate analysis for LLM consumption
datapilot all data.csv --format json --quiet | llm-tool process
# Multi-file analysis for AI-driven insights
datapilot engineering *.csv --format json > relationships.json
ai-tool analyze --input relationships.json --focus "join-optimization"
```
### Recommended LLM Prompts
```
Analyze this DataPilot report and:
1. Summarize the 3 most important insights
2. Recommend next steps for analysis
3. Identify potential data quality issues
4. Suggest business actions based on findings
5. Evaluate join relationships for business intelligence opportunities
[Paste DataPilot output here]
```
## 🔍 Troubleshooting
### Common Issues
**Installation Problems**
**Windows - `'datapilot' is not recognized` error:**
```bash
# Quick fix: Use npx (recommended)
npx datapilot-cli --version
# OR: Check your npm global directory
npm config get prefix
# Add the returned path to Windows PATH:
# 1. Windows key + R → type "sysdm.cpl" → Enter
# 2. Advanced tab → Environment Variables
# 3. Edit PATH and add your npm prefix path
# 4. Restart PowerShell/CMD
```
**Mac/Linux - `datapilot: command not found` error:**
```bash
# Check if npm global bin is in PATH
npm config get prefix
echo $PATH | grep $(npm config get prefix)
# Add npm global bin to PATH if needed
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Alternative: Always use npx (no PATH required)
npx datapilot-cli --version
```
**Large File Processing**
```bash
# Increase memory for large datasets
datapilot all big-file.csv --memory-limit 2gb --chunk-size 5000
# Use progress monitoring
datapilot all big-file.csv --verbose --progress
```
**Multi-File Analysis**
```bash
# For directories with many files, use discover
datapilot discover /data/directory/
# For specific file relationships
datapilot join file1.csv file2.csv file3.csv
# Debug relationship detection
datapilot join *.csv --verbose --confidence 0.3
```
## 🛡️ Security & Enterprise Features
- **Input Validation**: Comprehensive format and content validation
- **Memory Safety**: Automatic cleanup and resource management
- **Audit Logging**: Detailed operation logs for compliance
- **Data Privacy**: No data transmission, purely local processing
- **Proxy Support**: Corporate firewall compatibility
- **Error Handling**: Graceful degradation and recovery
## 🤝 Contributing
We welcome contributions! See our [Contributing Guide](CONTRIBUTING.md) for details.
### Development Setup
```bash
git clone https://github.com/Mrassimo/datapilot.git
cd datapilot
npm install
npm run build # Build project
npm test # Run test suite
npm run lint # Code quality checks
npm run typecheck # TypeScript validation
```
### Testing Commands
```bash
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:integration # Integration tests
npm test -- --testPathPattern="join" # Test specific features
```
## 📚 Additional Resources
- 📖 [Full Documentation](docs/)
- 🎯 [Command Examples](examples/)
- 🔧 [Configuration Guide](CLAUDE.md)
- 📊 [Sample Outputs](examples/sample-outputs/)
## 📄 License
MIT License - see [LICENSE](LICENSE) for details.
## 📞 Support & Community
- 🐛 [Report Issues](https://github.com/Mrassimo/datapilot/issues)
- 💬 [Discussions](https://github.com/Mrassimo/datapilot/discussions)
- 📧 Email Support: Open an issue for support
**DataPilot v1.3.1** - Transform your data into comprehensive insights with enterprise-grade statistical analysis and intelligent relationship detection. 🚁📊
*Built with ❤️ for data scientists, analysts, and AI practitioners worldwide.*